diff --git a/CHANGELOG.rst b/CHANGELOG.rst index aed11ae356f8f25e1b616182fbd2eaf6c4fd6a5b..3faa878aab104e4c6980795c8cf4d79f6a69001b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,10 +9,44 @@ and this project adheres to `Semantic Versioning`_. Unreleased ---------- +Changed +~~~~~~~ + +* Make External Link Widget icons clickable + +Fixed +~~~~~ + +* The progress page for background tasks didn't show all status messages. + +`2.10`_ - 2022-06-25 +-------------------- + Added ~~~~~ * Add Ukrainian locale (contributed by Sergiy Gorichenko from Fre(i)e Software GmbH). +* Add third gender to gender choices +* Add DataCheck to validate specific fields of specific models + +Changed +~~~~~~~ + +* Restructure group page and show more information about members. +* django-two-factor-auth >= 1.14.0 is now required due to a + backwards-incompatible breakage in that library + +Fixed +~~~~~~~ + +* Password change view did not redirect to login when accessed unauthenticated. +* Sorting icons were inlined into stylesheet +* iOS devices used the favicon instead of the PWA icon when the PWA was added to the home screen. + +Changed +~~~~~~~ + +* Update icon choices for models to new icon set `2.9`_ - 2022-05-25 ------------------- @@ -29,18 +63,25 @@ Fixed * The menu button used to be displayed twice on smaller screens. * The icons were loaded from external servers instead from local server. * Weekdays were not translated if system locales were missing - + * Added locales-all to base image and note to docs * The icons in the account menu were still the old ones. * Due to a merge error, the once removed account menu in the sidenav appeared again. * Scheduled notifications were shown on dashboard before time. * Remove broken notifications menu item in favor of item next to account menu. -* [OAuth2] Resources which are protected with client credentials - allowed access if no scopes were allowed. +* [OAuth2] Resources which are protected with client credentials + allowed access if no scopes were allowed (CVE-2022-29773). * The site logo could overlap with the menu for logos with an unexpected aspect ratio. * Some OAuth2 views stopped working with long scope names. * Resetting password was impossible due to a missing rule +* Language selection was broken when only one language was enabled in + preferences. + +Removed +~~~~~~~ + +* Remove option to limit available languages in preferences. Changed ~~~~~~~ @@ -83,6 +124,7 @@ Changed Fixed ~~~~~ +* The user handbook was lacking images and instructions on PWA usage with the Safari browser. * The ``reset password`` button on the login site used to overflow the card on smaller devices. Deprecated @@ -837,3 +879,4 @@ Fixed .. _2.8: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.8 .. _2.8.1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.8.1 .. _2.9: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.9 +.. _2.10: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.10 diff --git a/aleksis/core/data_checks.py b/aleksis/core/data_checks.py index d82c30d5ddf0b5ab11e7b1b5f8c2a595838c07e1..47194ece7a30b3bdf6a4fa6fc9624fd9851d2be9 100644 --- a/aleksis/core/data_checks.py +++ b/aleksis/core/data_checks.py @@ -3,8 +3,11 @@ from datetime import timedelta from django.apps import apps from django.contrib.contenttypes.models import ContentType +from django.core.exceptions import ValidationError +from django.db.models import Model from django.db.models.aggregates import Count from django.utils.functional import classproperty +from django.utils.text import slugify from django.utils.translation import gettext as _ import reversion @@ -316,3 +319,31 @@ class BrokenDashboardWidgetDataCheck(DataCheck): for widget in broken_widgets: logging.info("Check DashboardWidget %s", widget) cls.register_result(widget) + + +def field_validation_data_check_factory(app_name: str, model_name: str, field_name: str) -> type: + from django.apps import apps + + class FieldValidationDataCheck(DataCheck): + name = f"field_validation_{slugify(model_name)}_{slugify(field_name)}" + verbose_name = _( + "Validate field %s of model %s." % (field_name, app_name + "." + model_name) + ) + problem_name = _("The field %s couldn't be validated successfully." % field_name) + solve_options = { + IgnoreSolveOption.name: IgnoreSolveOption, + } + + @classmethod + def check_data(cls): + model: Model = apps.get_model(app_name, model_name) + for obj in model.objects.all(): + try: + model._meta.get_field(field_name).validate(getattr(obj, field_name), obj) + except ValidationError as e: + logging.info(f"Check {model_name} {obj}") + cls.register_result(obj) + + FieldValidationDataCheck.__name__ = model_name + "FieldValidationDataCheck" + + return FieldValidationDataCheck diff --git a/aleksis/core/locale/ar/LC_MESSAGES/django.po b/aleksis/core/locale/ar/LC_MESSAGES/django.po index 71b3e82d26258ad34f53d00d6a1b18b6af3a8d24..df6153f7196d2535a19143cb11bfa43a0f831953 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -39,33 +39,43 @@ 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/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:59 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 "" -#: aleksis/core/data_checks.py:291 +#: aleksis/core/data_checks.py:294 msgid "Deactivate DashboardWidget" msgstr "" -#: aleksis/core/data_checks.py:303 +#: aleksis/core/data_checks.py:306 msgid "Ensure that there are no broken DashboardWidgets." msgstr "" -#: aleksis/core/data_checks.py:304 +#: aleksis/core/data_checks.py:307 msgid "The DashboardWidget was reported broken automatically." msgstr "" +#: aleksis/core/data_checks.py:330 +#, python-format +msgid "Validate field %s of model %s." +msgstr "" + +#: aleksis/core/data_checks.py:332 +#, python-format +msgid "The field %s couldn't be validated successfully." +msgstr "" + #: aleksis/core/feeds.py:52 msgid "Birthday Calendar" msgstr "" @@ -109,11 +119,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 "" @@ -121,7 +131,7 @@ msgstr "" msgid "Base data" msgstr "" -#: aleksis/core/forms.py:55 +#: aleksis/core/forms.py:55 aleksis/core/tables.py:47 msgid "Address" msgstr "" @@ -149,7 +159,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 "" @@ -158,7 +168,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/menus.py:160 aleksis/core/models.py:164 #: aleksis/core/templates/core/person/list.html:8 #: aleksis/core/templates/core/person/list.html:9 msgid "Persons" @@ -168,18 +178,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 "" @@ -215,11 +225,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 "" @@ -322,13 +332,13 @@ msgstr "" msgid "Admin" msgstr "" -#: aleksis/core/menus.py:47 aleksis/core/models.py:867 +#: 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:137 +#: 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" @@ -380,7 +390,7 @@ msgstr "" msgid "People" msgstr "" -#: aleksis/core/menus.py:182 aleksis/core/models.py:1101 +#: 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" @@ -390,7 +400,7 @@ msgstr "" msgid "Groups and child groups" msgstr "" -#: aleksis/core/menus.py:204 aleksis/core/models.py:537 +#: 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" @@ -457,581 +467,585 @@ msgstr "" 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 "" -#: 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 "" -#: 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 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:163 aleksis/core/models.py:1024 +#: aleksis/core/models.py:1381 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:1283 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 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 aleksis/core/templates/core/person/full.html:160 msgid "Home phone" msgstr "" -#: aleksis/core/models.py:203 aleksis/core/templates/core/person/full.html:170 +#: aleksis/core/models.py:208 aleksis/core/templates/core/person/full.html:170 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 +#: 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 aleksis/core/templates/core/person/full.html:235 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:839 +#: 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 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 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:723 aleksis/core/models.py:747 +#: aleksis/core/models.py:838 #: 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:751 msgid "Send notification at" msgstr "" -#: aleksis/core/models.py:748 +#: aleksis/core/models.py:753 msgid "Read" msgstr "" -#: aleksis/core/models.py:749 +#: aleksis/core/models.py:754 msgid "Sent" msgstr "" -#: aleksis/core/models.py:766 +#: aleksis/core/models.py:771 msgid "Notification" msgstr "" -#: aleksis/core/models.py:767 aleksis/core/preferences.py:29 +#: 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 msgid "Notifications" msgstr "" -#: aleksis/core/models.py:835 +#: aleksis/core/models.py:840 msgid "Link to detailed view" msgstr "" -#: aleksis/core/models.py:838 +#: aleksis/core/models.py:843 msgid "Date and time from when to show" msgstr "" -#: aleksis/core/models.py:841 +#: aleksis/core/models.py:846 msgid "Date and time until when to show" msgstr "" -#: aleksis/core/models.py:866 +#: aleksis/core/models.py:871 msgid "Announcement" msgstr "" -#: aleksis/core/models.py:904 +#: aleksis/core/models.py:909 msgid "Announcement recipient" msgstr "" -#: aleksis/core/models.py:905 +#: aleksis/core/models.py:910 msgid "Announcement recipients" msgstr "" -#: aleksis/core/models.py:927 +#: aleksis/core/models.py:932 msgid "Widget Title" msgstr "" -#: aleksis/core/models.py:928 +#: aleksis/core/models.py:933 msgid "Activate Widget" msgstr "" -#: aleksis/core/models.py:929 +#: aleksis/core/models.py:934 msgid "Widget is broken" msgstr "" -#: aleksis/core/models.py:932 +#: aleksis/core/models.py:937 msgid "Size on mobile devices" msgstr "" -#: aleksis/core/models.py:933 +#: aleksis/core/models.py:938 msgid "<= 600 px, 12 columns" msgstr "" -#: aleksis/core/models.py:938 +#: aleksis/core/models.py:943 msgid "Size on tablet devices" msgstr "" -#: aleksis/core/models.py:939 +#: aleksis/core/models.py:944 msgid "> 600 px, 12 columns" msgstr "" -#: aleksis/core/models.py:944 +#: aleksis/core/models.py:949 msgid "Size on desktop devices" msgstr "" -#: aleksis/core/models.py:945 +#: aleksis/core/models.py:950 msgid "> 992 px, 12 columns" msgstr "" -#: aleksis/core/models.py:950 +#: aleksis/core/models.py:955 msgid "Size on large desktop devices" msgstr "" -#: aleksis/core/models.py:951 +#: aleksis/core/models.py:956 msgid "> 1200 px>, 12 columns" msgstr "" -#: aleksis/core/models.py:982 +#: aleksis/core/models.py:987 msgid "Can edit default dashboard" msgstr "" -#: aleksis/core/models.py:983 +#: aleksis/core/models.py:988 msgid "Dashboard Widget" msgstr "" -#: aleksis/core/models.py:984 +#: aleksis/core/models.py:989 msgid "Dashboard Widgets" msgstr "" -#: aleksis/core/models.py:990 +#: aleksis/core/models.py:995 msgid "URL" msgstr "" -#: aleksis/core/models.py:991 +#: aleksis/core/models.py:996 msgid "Icon URL" msgstr "" -#: aleksis/core/models.py:997 +#: aleksis/core/models.py:1002 msgid "External link widget" msgstr "" -#: aleksis/core/models.py:998 +#: aleksis/core/models.py:1003 msgid "External link widgets" msgstr "" -#: aleksis/core/models.py:1004 +#: aleksis/core/models.py:1009 msgid "Content" msgstr "" -#: aleksis/core/models.py:1010 +#: aleksis/core/models.py:1015 msgid "Static content widget" msgstr "" -#: aleksis/core/models.py:1011 +#: aleksis/core/models.py:1016 msgid "Static content widgets" msgstr "" -#: aleksis/core/models.py:1016 +#: aleksis/core/models.py:1021 msgid "Dashboard widget" msgstr "" -#: aleksis/core/models.py:1021 +#: aleksis/core/models.py:1026 msgid "Order" msgstr "" -#: aleksis/core/models.py:1022 +#: aleksis/core/models.py:1027 msgid "Part of the default dashboard" msgstr "" -#: aleksis/core/models.py:1037 +#: aleksis/core/models.py:1042 msgid "Dashboard widget order" msgstr "" -#: aleksis/core/models.py:1038 +#: aleksis/core/models.py:1043 msgid "Dashboard widget orders" msgstr "" -#: aleksis/core/models.py:1044 +#: aleksis/core/models.py:1049 msgid "Menu ID" msgstr "" -#: aleksis/core/models.py:1057 +#: aleksis/core/models.py:1062 msgid "Custom menu" msgstr "" -#: aleksis/core/models.py:1058 +#: aleksis/core/models.py:1063 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/models.py:1079 aleksis/core/models.py:1330 #: 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: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 "" -#: 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 msgid "Related data check task" msgstr "" -#: aleksis/core/models.py:1166 +#: aleksis/core/models.py:1176 msgid "Issue solved" msgstr "" -#: aleksis/core/models.py:1167 +#: aleksis/core/models.py:1177 msgid "Notification sent" msgstr "" -#: aleksis/core/models.py:1180 +#: aleksis/core/models.py:1190 msgid "Data check result" msgstr "" -#: aleksis/core/models.py:1181 +#: aleksis/core/models.py:1191 msgid "Data check results" msgstr "" -#: aleksis/core/models.py:1183 +#: aleksis/core/models.py:1193 msgid "Can run data checks" msgstr "" -#: aleksis/core/models.py:1184 +#: aleksis/core/models.py:1194 msgid "Can solve data check problems" msgstr "" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1201 msgid "E-Mail address" msgstr "" -#: aleksis/core/models.py:1223 +#: aleksis/core/models.py:1233 msgid "Owner" msgstr "" -#: aleksis/core/models.py:1227 +#: aleksis/core/models.py:1237 msgid "File expires at" msgstr "" -#: aleksis/core/models.py:1229 +#: aleksis/core/models.py:1239 msgid "Generated HTML file" msgstr "" -#: aleksis/core/models.py:1231 +#: aleksis/core/models.py:1241 msgid "Generated PDF file" msgstr "" -#: aleksis/core/models.py:1238 +#: aleksis/core/models.py:1248 msgid "PDF file" msgstr "" -#: aleksis/core/models.py:1239 +#: aleksis/core/models.py:1249 msgid "PDF files" msgstr "" -#: aleksis/core/models.py:1244 +#: aleksis/core/models.py:1254 msgid "Task result" msgstr "" -#: aleksis/core/models.py:1247 +#: aleksis/core/models.py:1257 msgid "Task user" msgstr "" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1269 msgid "Task user assignment" msgstr "" -#: aleksis/core/models.py:1260 +#: aleksis/core/models.py:1270 msgid "Task user assignments" msgstr "" -#: aleksis/core/models.py:1276 +#: aleksis/core/models.py:1286 msgid "Additional attributes" msgstr "" -#: aleksis/core/models.py:1314 +#: aleksis/core/models.py:1324 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 "" -#: aleksis/core/models.py:1377 +#: aleksis/core/models.py:1387 msgid "Selected ICal feed" msgstr "" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1396 msgid "Personal Calendar URL" msgstr "" -#: aleksis/core/models.py:1387 +#: aleksis/core/models.py:1397 msgid "Personal Calendar URLs" msgstr "" @@ -1179,94 +1193,94 @@ msgstr "" msgid "Allowed Grant Flows for OAuth applications" msgstr "" -#: aleksis/core/preferences.py:344 -msgid "Available languages" -msgstr "" - -#: aleksis/core/preferences.py:357 +#: aleksis/core/preferences.py:343 msgid "Send emails if data checks detect problems" msgstr "" -#: aleksis/core/preferences.py:368 +#: aleksis/core/preferences.py:354 msgid "Email recipients for data checks problem emails" msgstr "" -#: aleksis/core/preferences.py:379 +#: aleksis/core/preferences.py:365 msgid "Email recipient groups for data checks problem emails" msgstr "" -#: aleksis/core/preferences.py:388 +#: aleksis/core/preferences.py:374 msgid "Show dashboard to users without login" msgstr "" -#: aleksis/core/preferences.py:397 +#: aleksis/core/preferences.py:383 msgid "Allow users to edit their dashboard" msgstr "" -#: aleksis/core/preferences.py:408 +#: aleksis/core/preferences.py:394 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:437 +#: aleksis/core/preferences.py:423 msgid "Contact for notification if a person changes their data" msgstr "" -#: aleksis/core/preferences.py:448 +#: aleksis/core/preferences.py:434 msgid "Prefer personal photos over avatars" msgstr "" -#: aleksis/core/preferences.py:458 +#: aleksis/core/preferences.py:444 msgid "PDF file expiration duration" msgstr "" -#: aleksis/core/preferences.py:459 +#: aleksis/core/preferences.py:445 msgid "in minutes" msgstr "" -#: aleksis/core/preferences.py:469 +#: aleksis/core/preferences.py:455 msgid "Automatically update the dashboard and its widgets" msgstr "" -#: aleksis/core/preferences.py:479 +#: aleksis/core/preferences.py:465 msgid "Automatically update the dashboard and its widgets sitewide" msgstr "" -#: aleksis/core/preferences.py:489 +#: aleksis/core/preferences.py:475 msgid "Country for phone number parsing" msgstr "" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:541 msgid "English" msgstr "" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:542 msgid "German" msgstr "" -#: aleksis/core/tables.py:24 +#: aleksis/core/settings.py:543 +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/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 "" -#: 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 @@ -1305,7 +1319,7 @@ msgstr "" #: aleksis/core/templates/500.html:10 msgid "" "An unexpected error has\n" -" occured." +" occurred." msgstr "" #: aleksis/core/templates/500.html:13 @@ -1805,34 +1819,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: aleksis/core/templates/core/group/full.html:38 +#: 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 "" -#: 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 " +#: aleksis/core/templates/core/group/full.html:93 +#, python-format +msgid "" +"\n" +" %(min)s years to %(max)s years\n" +" " msgstr "" #: aleksis/core/templates/core/group/list.html:14 @@ -1884,7 +1898,7 @@ msgstr "" #: aleksis/core/templates/core/ical/ical_list.html:4 #: aleksis/core/templates/core/ical/ical_list.html:5 -msgid "ICal Feeds" +msgid "iCal Feeds" msgstr "" #: aleksis/core/templates/core/ical/ical_list.html:8 @@ -2168,11 +2182,11 @@ 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 "" @@ -3094,168 +3108,168 @@ msgstr "" msgid "Download PDF" msgstr "" -#: aleksis/core/views.py:292 +#: aleksis/core/views.py:294 msgid "The school term has been created." msgstr "" -#: aleksis/core/views.py:304 +#: aleksis/core/views.py:306 msgid "The school term has been saved." msgstr "" -#: aleksis/core/views.py:424 +#: aleksis/core/views.py:426 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 msgid "The person has been saved." msgstr "" -#: aleksis/core/views.py:503 +#: aleksis/core/views.py:505 msgid "The group has been saved." msgstr "" -#: aleksis/core/views.py:600 +#: aleksis/core/views.py:602 msgid "The announcement has been saved." msgstr "" -#: aleksis/core/views.py:616 +#: aleksis/core/views.py:618 msgid "The announcement has been deleted." msgstr "" -#: aleksis/core/views.py:684 +#: aleksis/core/views.py:686 msgid "The requested preference registry does not exist" msgstr "" -#: aleksis/core/views.py:703 +#: aleksis/core/views.py:705 msgid "The preferences have been saved successfully." msgstr "" -#: aleksis/core/views.py:727 +#: aleksis/core/views.py:729 msgid "The person has been deleted." msgstr "" -#: aleksis/core/views.py:741 +#: aleksis/core/views.py:743 msgid "The group has been deleted." msgstr "" -#: aleksis/core/views.py:773 -msgid "The additional_field has been saved." +#: aleksis/core/views.py:775 +msgid "The additional field has been saved." msgstr "" -#: aleksis/core/views.py:807 +#: aleksis/core/views.py:809 msgid "The additional field has been deleted." msgstr "" -#: aleksis/core/views.py:832 +#: aleksis/core/views.py:834 msgid "The group type has been saved." msgstr "" -#: aleksis/core/views.py:862 +#: aleksis/core/views.py:864 msgid "The group type has been deleted." msgstr "" -#: aleksis/core/views.py:895 +#: aleksis/core/views.py:897 msgid "Progress: Run data checks" msgstr "" -#: aleksis/core/views.py:896 +#: aleksis/core/views.py:898 msgid "Run data checks …" msgstr "" -#: aleksis/core/views.py:897 +#: aleksis/core/views.py:899 msgid "The data checks were run successfully." msgstr "" -#: aleksis/core/views.py:898 +#: aleksis/core/views.py:900 msgid "There was a problem while running data checks." msgstr "" -#: aleksis/core/views.py:914 +#: aleksis/core/views.py:916 #, python-brace-format msgid "The solve option '{solve_option_obj.verbose_name}' " msgstr "" -#: aleksis/core/views.py:924 +#: aleksis/core/views.py:926 msgid "The requested solve option does not exist" msgstr "" -#: aleksis/core/views.py:956 +#: aleksis/core/views.py:958 msgid "The dashboard widget has been saved." msgstr "" -#: aleksis/core/views.py:986 +#: aleksis/core/views.py:988 msgid "The dashboard widget has been created." msgstr "" -#: aleksis/core/views.py:996 +#: aleksis/core/views.py:998 msgid "The dashboard widget has been deleted." msgstr "" -#: aleksis/core/views.py:1067 +#: aleksis/core/views.py:1069 msgid "Your dashboard configuration has been saved successfully." msgstr "" -#: aleksis/core/views.py:1069 +#: aleksis/core/views.py:1071 msgid "The configuration of the default dashboard has been saved successfully." msgstr "" -#: aleksis/core/views.py:1145 +#: aleksis/core/views.py:1147 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "" -#: aleksis/core/views.py:1236 +#: aleksis/core/views.py:1238 msgid "We have successfully assigned the permissions." msgstr "" -#: aleksis/core/views.py:1246 +#: aleksis/core/views.py:1248 msgid "The global user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1256 +#: aleksis/core/views.py:1258 msgid "The global group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1266 +#: aleksis/core/views.py:1268 msgid "The object user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1276 +#: aleksis/core/views.py:1278 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 "" -#: 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 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:1498 +#: aleksis/core/views.py:1500 msgid "Person was already invited." msgstr "" -#: aleksis/core/views.py:1598 -msgid "ICal feed updated successfully" +#: aleksis/core/views.py:1600 +msgid "iCal feed updated successfully" msgstr "" -#: aleksis/core/views.py:1608 -msgid "ICal feed deleted successfully" +#: aleksis/core/views.py:1610 +msgid "iCal feed deleted successfully" msgstr "" -#: aleksis/core/views.py:1616 -msgid "ICal feed created successfully" +#: 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 5cc7c348c2ab6303aae0b8d753a8cf07f89fe384..3defb67f9f4129276ebd5b1c61d84a8511b0fabe 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/aleksis/core/locale/de_DE/LC_MESSAGES/django.po b/aleksis/core/locale/de_DE/LC_MESSAGES/django.po index 7656a3fde8cfff230195b6ec413433dc985fdc2d..7f2dcc874f2a27ea8cf2b0d8b7fd681e17e419f8 100644 --- a/aleksis/core/locale/de_DE/LC_MESSAGES/django.po +++ b/aleksis/core/locale/de_DE/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: AlekSIS (School Information System) 0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-05-24 19:37+0200\n" -"PO-Revision-Date: 2022-05-24 17:52+0000\n" +"PO-Revision-Date: 2022-07-24 13:48+0000\n" "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n" "Language-Team: German <https://translate.edugit.org/projects/aleksis/" "aleksis-core/de/>\n" @@ -42,28 +42,28 @@ msgstr "Festnetz- und Mobilfunknummer" #: 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/templates/core/group/list.html:9 -#: aleksis/core/templates/core/person/full.html:246 +#: aleksis/core/templates/core/person/full.html:246 aleksis/core/models.py:494 msgid "Groups" msgstr "Gruppen" -#: aleksis/core/data_checks.py:56 +#: aleksis/core/data_checks.py:56 aleksis/core/data_checks.py:59 msgid "Ignore problem" msgstr "Problem ignorieren" -#: aleksis/core/data_checks.py:185 +#: aleksis/core/data_checks.py:185 aleksis/core/data_checks.py:188 #, python-brace-format 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:291 aleksis/core/data_checks.py:294 msgid "Deactivate DashboardWidget" msgstr "Dashboard-Widget deaktivieren" -#: aleksis/core/data_checks.py:303 +#: aleksis/core/data_checks.py:303 aleksis/core/data_checks.py:306 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:304 aleksis/core/data_checks.py:307 msgid "The DashboardWidget was reported broken automatically." msgstr "Das Dashboard-Widget wurde automatisch als kaputt gemeldet." @@ -83,7 +83,7 @@ msgstr "%(name)ss Geburtstag" #: aleksis/core/feeds.py:71 #, python-format msgid "%(name)s was born on %(birthday)s" -msgstr "%(name)s wurde am %(birthday)s geborgen" +msgstr "%(name)s wurde am %(birthday)s geboren" #: aleksis/core/filters.py:42 aleksis/core/templates/core/base.html:139 #: aleksis/core/templates/core/base.html:140 @@ -111,10 +111,12 @@ msgid "Content type" msgstr "Inhaltstyp" #: aleksis/core/filters.py:113 aleksis/core/models.py:715 +#: aleksis/core/models.py:720 msgid "User" msgstr "Benutzer" #: aleksis/core/filters.py:135 aleksis/core/models.py:488 +#: aleksis/core/models.py:493 msgid "Group" msgstr "Gruppe" @@ -122,7 +124,7 @@ msgstr "Gruppe" msgid "Base data" msgstr "Basisdaten" -#: aleksis/core/forms.py:55 +#: aleksis/core/forms.py:55 aleksis/core/tables.py:47 msgid "Address" msgstr "Adresse" @@ -144,13 +146,16 @@ msgstr "Neues Benutzerkonto erstellen" #: aleksis/core/forms.py:132 msgid "You cannot set a new username when also selecting an existing user." -msgstr "Sie können keine neuen Benutzer erstellen, wenn Sie gleichzeitig einen existierenden Benutzer auswählen." +msgstr "" +"Sie können keine neuen Benutzer erstellen, wenn Sie gleichzeitig einen " +"existierenden Benutzer auswählen." #: aleksis/core/forms.py:136 msgid "This username is already in use." msgstr "Dieser Benutzername wird bereits genutzt." #: aleksis/core/forms.py:153 aleksis/core/models.py:136 +#: aleksis/core/models.py:141 msgid "School term" msgstr "Schuljahr" @@ -161,26 +166,27 @@ msgstr "Allgemeine Daten" #: 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/templates/core/person/list.html:9 aleksis/core/models.py:164 msgid "Persons" msgstr "Personen" #: aleksis/core/forms.py:156 aleksis/core/forms.py:592 msgid "Additional data" -msgstr "Zusätzliche Datne" +msgstr "Zusätzliche Daten" #: aleksis/core/forms.py:157 aleksis/core/models.py:212 -#: aleksis/core/models.py:541 +#: aleksis/core/models.py:541 aleksis/core/models.py:217 +#: aleksis/core/models.py:546 aleksis/core/tables.py:46 msgid "Photo" msgstr "Foto" #: aleksis/core/forms.py:199 aleksis/core/forms.py:202 -#: aleksis/core/models.py:79 +#: aleksis/core/models.py:79 aleksis/core/models.py:84 msgid "Date" msgstr "Datum" #: aleksis/core/forms.py:200 aleksis/core/forms.py:203 -#: aleksis/core/models.py:87 +#: aleksis/core/models.py:87 aleksis/core/models.py:92 msgid "Time" msgstr "Zeit" @@ -197,12 +203,17 @@ msgid "Write your announcement:" msgstr "Schreiben Sie ihre Ankündigung:" #: aleksis/core/forms.py:276 -msgid "You are not allowed to create announcements which are only valid in the past." -msgstr "Sie dürfen keine Ankündigungen erstellen, die nur für die Vergangenheit gültig sind." +msgid "" +"You are not allowed to create announcements which are only valid in the past." +msgstr "" +"Sie dürfen keine Ankündigungen erstellen, die nur für die Vergangenheit " +"gültig sind." #: aleksis/core/forms.py:280 msgid "The from date and time must be earlier then the until date and time." -msgstr "Das Startdatum und die Startzeit müssen vor dem Enddatum und der Endzeit sein." +msgstr "" +"Das Startdatum und die Startzeit müssen vor dem Enddatum und der Endzeit " +"sein." #: aleksis/core/forms.py:289 msgid "You need at least one recipient." @@ -217,10 +228,12 @@ msgid "Please enter your invitation code." msgstr "Bitte geben Sie Ihren Einladungscode ein." #: aleksis/core/forms.py:418 aleksis/core/models.py:187 +#: aleksis/core/models.py:192 msgid "First name" msgstr "Vorname" #: aleksis/core/forms.py:419 aleksis/core/models.py:188 +#: aleksis/core/models.py:193 msgid "Last name" msgstr "Nachname" @@ -238,19 +251,25 @@ msgstr "Auf was?" #: aleksis/core/forms.py:483 msgid "Select objects which the permission should be granted for:" -msgstr "Wählen Sie die Objekte aus, für welche die Berechtigung vergeben werden soll:" +msgstr "" +"Wählen Sie die Objekte aus, für welche die Berechtigung vergeben werden soll:" #: aleksis/core/forms.py:486 msgid "Grant the permission for all objects" msgstr "Vergebe die Berechtigung für alle Objekte" #: aleksis/core/forms.py:494 -msgid "You must select at least one group or person which should get the permission." -msgstr "Sie müssen mindestens eine Gruppe oder Person auswählen, welche die Berechtigung erhalten soll." +msgid "" +"You must select at least one group or person which should get the permission." +msgstr "" +"Sie müssen mindestens eine Gruppe oder Person auswählen, welche die " +"Berechtigung erhalten soll." #: aleksis/core/forms.py:499 msgid "You must grant the permission to all objects and/or to some objects." -msgstr "Sie müssen die Berechtigung auf alle Objekte und/oder für einige Objekte vergeben." +msgstr "" +"Sie müssen die Berechtigung auf alle Objekte und/oder für einige Objekte " +"vergeben." #: aleksis/core/forms.py:586 msgid "Address data" @@ -274,7 +293,9 @@ msgstr "Die ausgewählte Aktion existiert nicht." #: aleksis/core/forms.py:739 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." +msgstr "" +"Sie haben nicht die Berechtigung, {} auf alle ausgewählten Objekte " +"auszuführen." #: aleksis/core/forms.py:795 msgid "No valid selection." @@ -326,12 +347,14 @@ 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 msgid "Announcements" msgstr "Ankündigungen" #: 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 "Schuljahre" @@ -384,6 +407,7 @@ msgstr "Leute" #: 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 "Gruppentypen" @@ -394,6 +418,7 @@ msgstr "Gruppen und Kindgruppen" #: 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 "Zusätzliche Felder" @@ -458,581 +483,611 @@ msgstr "Abmelden" msgid "Linked school term" msgstr "Zugeordnetes Schuljahr" -#: aleksis/core/models.py:77 +#: aleksis/core/models.py:77 aleksis/core/models.py:82 msgid "Boolean (Yes/No)" msgstr "Boolean (Ja/Nein)" -#: aleksis/core/models.py:78 +#: aleksis/core/models.py:78 aleksis/core/models.py:83 msgid "Text (one line)" msgstr "Text (eine Zeile)" -#: aleksis/core/models.py:80 +#: aleksis/core/models.py:80 aleksis/core/models.py:85 msgid "Date and time" msgstr "Datum und Uhrzeit" -#: aleksis/core/models.py:81 +#: aleksis/core/models.py:81 aleksis/core/models.py:86 msgid "Decimal number" msgstr "Dezimalzahl" #: 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 "E-Mail-Adresse" -#: aleksis/core/models.py:83 +#: aleksis/core/models.py:83 aleksis/core/models.py:88 msgid "Integer" msgstr "Ganze Zahl" -#: aleksis/core/models.py:84 +#: aleksis/core/models.py:84 aleksis/core/models.py:89 msgid "IP address" msgstr "IP-Adresse" -#: aleksis/core/models.py:85 +#: aleksis/core/models.py:85 aleksis/core/models.py:90 msgid "Boolean or empty (Yes/No/Neither)" msgstr "Boolean oder leer (Ja/Nein/weder)" -#: aleksis/core/models.py:86 +#: aleksis/core/models.py:86 aleksis/core/models.py:91 msgid "Text (multi-line)" msgstr "Text (mehrzeilig)" -#: aleksis/core/models.py:88 +#: aleksis/core/models.py:88 aleksis/core/models.py:93 msgid "URL / Link" msgstr "URL / Link" #: aleksis/core/models.py:100 aleksis/core/models.py:1070 -#: aleksis/core/models.py:1374 +#: aleksis/core/models.py:1374 aleksis/core/models.py:105 +#: aleksis/core/models.py:1077 aleksis/core/models.py:1384 msgid "Name" msgstr "Name" -#: aleksis/core/models.py:102 +#: aleksis/core/models.py:102 aleksis/core/models.py:107 msgid "Start date" msgstr "Startdatum" -#: aleksis/core/models.py:103 +#: aleksis/core/models.py:103 aleksis/core/models.py:108 msgid "End date" msgstr "Enddatum" -#: aleksis/core/models.py:122 +#: aleksis/core/models.py:122 aleksis/core/models.py:127 msgid "The start date must be earlier than the end date." msgstr "Das Startdatum muss vor dem Enddatum liegen." -#: aleksis/core/models.py:129 +#: 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 "Es gibt bereits ein Schuljahr für diesen Zeitraum oder einen Teilzeitraum." +msgstr "" +"Es gibt bereits ein Schuljahr für diesen Zeitraum oder einen Teilzeitraum." #: aleksis/core/models.py:158 aleksis/core/models.py:1019 -#: aleksis/core/models.py:1371 +#: aleksis/core/models.py:1371 aleksis/core/models.py:163 +#: aleksis/core/models.py:1024 aleksis/core/models.py:1381 msgid "Person" msgstr "Person" -#: aleksis/core/models.py:161 +#: aleksis/core/models.py:161 aleksis/core/models.py:166 msgid "Can view address" msgstr "Kann Adresse sehen" -#: aleksis/core/models.py:162 +#: aleksis/core/models.py:162 aleksis/core/models.py:167 msgid "Can view contact details" msgstr "Kann Kontaktdetails sehen" -#: aleksis/core/models.py:163 +#: aleksis/core/models.py:163 aleksis/core/models.py:168 msgid "Can view photo" msgstr "Kann Foto sehen" -#: aleksis/core/models.py:164 +#: aleksis/core/models.py:164 aleksis/core/models.py:169 msgid "Can view avatar image" msgstr "Kann Avatar-Bild sehen" -#: aleksis/core/models.py:165 +#: aleksis/core/models.py:165 aleksis/core/models.py:170 msgid "Can view persons groups" msgstr "Kann Gruppen einer Person sehen" -#: aleksis/core/models.py:166 +#: aleksis/core/models.py:166 aleksis/core/models.py:171 msgid "Can view personal details" msgstr "Kann persönliche Daten sehen" -#: aleksis/core/models.py:176 +#: aleksis/core/models.py:176 aleksis/core/models.py:181 msgid "female" msgstr "weiblich" -#: aleksis/core/models.py:176 +#: aleksis/core/models.py:176 aleksis/core/models.py:181 msgid "male" msgstr "männlich" #: aleksis/core/models.py:184 aleksis/core/models.py:1273 +#: aleksis/core/models.py:189 aleksis/core/models.py:1283 msgid "Linked user" msgstr "Verknüpfter Benutzer" -#: aleksis/core/models.py:190 +#: aleksis/core/models.py:190 aleksis/core/models.py:195 msgid "Additional name(s)" msgstr "Zusätzliche Namen" #: aleksis/core/models.py:194 aleksis/core/models.py:506 +#: aleksis/core/models.py:199 aleksis/core/models.py:511 msgid "Short name" msgstr "Kurzname" -#: aleksis/core/models.py:197 +#: aleksis/core/models.py:197 aleksis/core/models.py:202 msgid "Street" msgstr "Straße" -#: aleksis/core/models.py:198 +#: aleksis/core/models.py:198 aleksis/core/models.py:203 msgid "Street number" msgstr "Hausnummer" -#: aleksis/core/models.py:199 +#: aleksis/core/models.py:199 aleksis/core/models.py:204 msgid "Postal code" msgstr "Postleitzahl" -#: aleksis/core/models.py:200 +#: aleksis/core/models.py:200 aleksis/core/models.py:205 msgid "Place" msgstr "Ort" #: aleksis/core/models.py:202 aleksis/core/templates/core/person/full.html:160 +#: aleksis/core/models.py:207 msgid "Home phone" msgstr "Festnetz" #: aleksis/core/models.py:203 aleksis/core/templates/core/person/full.html:170 +#: aleksis/core/models.py:208 msgid "Mobile phone" msgstr "Handy" -#: aleksis/core/models.py:207 +#: aleksis/core/models.py:207 aleksis/core/models.py:212 msgid "Date of birth" msgstr "Geburtsdatum" -#: aleksis/core/models.py:208 +#: aleksis/core/models.py:208 aleksis/core/models.py:213 msgid "Place of birth" msgstr "Geburtsort" -#: aleksis/core/models.py:209 +#: aleksis/core/models.py:209 aleksis/core/models.py:214 msgid "Sex" msgstr "Geschlecht" #: 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 "Dies ist ein offizielles Foto, genutzt für offizielle Dokumente und interne Zwecke." +#: 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 "" +"Dies ist ein offizielles Foto, genutzt für offizielle Dokumente und interne " +"Zwecke." #: 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 "Bild/Avatar anzeigen" #: 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 "Dies ist ein Bild oder ein Avatar für die öffentliche Darstellung." #: aleksis/core/models.py:229 aleksis/core/templates/core/person/full.html:235 +#: aleksis/core/models.py:234 msgid "Guardians / Parents" msgstr "Erziehungsberechtigte / Eltern" -#: aleksis/core/models.py:236 +#: aleksis/core/models.py:236 aleksis/core/models.py:241 msgid "Primary group" msgstr "Primärgruppe" #: 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: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 msgid "Description" msgstr "Beschreibung" -#: aleksis/core/models.py:459 +#: aleksis/core/models.py:459 aleksis/core/models.py:464 msgid "Title of field" msgstr "Feldtitel" -#: aleksis/core/models.py:461 +#: aleksis/core/models.py:461 aleksis/core/models.py:466 msgid "Type of field" msgstr "Feldtyp" -#: aleksis/core/models.py:463 +#: aleksis/core/models.py:463 aleksis/core/models.py:468 msgid "Required" msgstr "Pflichtfeld" -#: aleksis/core/models.py:464 +#: aleksis/core/models.py:464 aleksis/core/models.py:469 msgid "Help text / description" msgstr "Hilfetext/Beschreibung" -#: aleksis/core/models.py:470 +#: aleksis/core/models.py:470 aleksis/core/models.py:475 msgid "Addtitional field for groups" msgstr "Zusätzliche Felder für Gruppen" -#: aleksis/core/models.py:471 +#: aleksis/core/models.py:471 aleksis/core/models.py:476 msgid "Addtitional fields for groups" msgstr "Zusätzliche Felder für Gruppen" -#: aleksis/core/models.py:491 +#: aleksis/core/models.py:491 aleksis/core/models.py:496 msgid "Can assign child groups to groups" msgstr "Kann Kindgruppen zu Gruppen zuordnen" -#: aleksis/core/models.py:492 +#: aleksis/core/models.py:492 aleksis/core/models.py:497 msgid "Can view statistics about group." msgstr "Kann Statistiken über Gruppen sehen." -#: aleksis/core/models.py:504 +#: aleksis/core/models.py:504 aleksis/core/models.py:509 msgid "Long name" msgstr "Langname" #: 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 "Mitglieder" #: 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 "Leiter/-innen" #: 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 "Übergeordnete Gruppen" -#: aleksis/core/models.py:532 +#: aleksis/core/models.py:532 aleksis/core/models.py:537 msgid "Type of group" msgstr "Gruppentyp" #: 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:723 aleksis/core/models.py:747 +#: aleksis/core/models.py:838 msgid "Title" msgstr "Titel" -#: aleksis/core/models.py:721 +#: aleksis/core/models.py:721 aleksis/core/models.py:726 msgid "Application" msgstr "Anwendung" -#: aleksis/core/models.py:727 +#: aleksis/core/models.py:727 aleksis/core/models.py:732 msgid "Activity" msgstr "Aktivität" -#: aleksis/core/models.py:728 +#: aleksis/core/models.py:728 aleksis/core/models.py:733 msgid "Activities" msgstr "Aktivitäten" -#: aleksis/core/models.py:734 +#: aleksis/core/models.py:734 aleksis/core/models.py:739 msgid "Sender" msgstr "Absender" -#: aleksis/core/models.py:739 +#: aleksis/core/models.py:739 aleksis/core/models.py:744 msgid "Recipient" msgstr "Empfänger" #: aleksis/core/models.py:744 aleksis/core/models.py:1071 +#: aleksis/core/models.py:749 aleksis/core/models.py:1078 msgid "Link" msgstr "Link" -#: aleksis/core/models.py:746 +#: aleksis/core/models.py:746 aleksis/core/models.py:751 msgid "Send notification at" msgstr "Benachrichtigung schicken am" -#: aleksis/core/models.py:748 +#: aleksis/core/models.py:748 aleksis/core/models.py:753 msgid "Read" msgstr "Gelesen" -#: aleksis/core/models.py:749 +#: aleksis/core/models.py:749 aleksis/core/models.py:754 msgid "Sent" msgstr "Versandt" -#: aleksis/core/models.py:766 +#: aleksis/core/models.py:766 aleksis/core/models.py:771 msgid "Notification" msgstr "Benachrichtigung" #: 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/templates/core/notifications.html:5 aleksis/core/models.py:772 msgid "Notifications" msgstr "Benachrichtigungen" -#: aleksis/core/models.py:835 +#: aleksis/core/models.py:835 aleksis/core/models.py:840 msgid "Link to detailed view" msgstr "Link zur detaillierten Ansicht" -#: aleksis/core/models.py:838 +#: aleksis/core/models.py:838 aleksis/core/models.py:843 msgid "Date and time from when to show" msgstr "Datum und Uhrzeit des Anzeigestarts" -#: aleksis/core/models.py:841 +#: aleksis/core/models.py:841 aleksis/core/models.py:846 msgid "Date and time until when to show" msgstr "Anzeigezeitraum" -#: aleksis/core/models.py:866 +#: aleksis/core/models.py:866 aleksis/core/models.py:871 msgid "Announcement" msgstr "Ankündigung" -#: aleksis/core/models.py:904 +#: aleksis/core/models.py:904 aleksis/core/models.py:909 msgid "Announcement recipient" msgstr "Empfänger der Ankündigung" -#: aleksis/core/models.py:905 +#: aleksis/core/models.py:905 aleksis/core/models.py:910 msgid "Announcement recipients" msgstr "Empfänger der Ankündigung" -#: aleksis/core/models.py:927 +#: aleksis/core/models.py:927 aleksis/core/models.py:932 msgid "Widget Title" msgstr "Widget-Titel" -#: aleksis/core/models.py:928 +#: aleksis/core/models.py:928 aleksis/core/models.py:933 msgid "Activate Widget" msgstr "Widget aktivieren" -#: aleksis/core/models.py:929 +#: aleksis/core/models.py:929 aleksis/core/models.py:934 msgid "Widget is broken" msgstr "Widget ist kaputt" -#: aleksis/core/models.py:932 +#: aleksis/core/models.py:932 aleksis/core/models.py:937 msgid "Size on mobile devices" msgstr "Größe auf Mobilgeräten" -#: aleksis/core/models.py:933 +#: aleksis/core/models.py:933 aleksis/core/models.py:938 msgid "<= 600 px, 12 columns" msgstr "<= 600 px, 12 Spalten" -#: aleksis/core/models.py:938 +#: aleksis/core/models.py:938 aleksis/core/models.py:943 msgid "Size on tablet devices" msgstr "Größe auf Tablets" -#: aleksis/core/models.py:939 +#: aleksis/core/models.py:939 aleksis/core/models.py:944 msgid "> 600 px, 12 columns" msgstr "> 600px, 12 Spalten" -#: aleksis/core/models.py:944 +#: aleksis/core/models.py:944 aleksis/core/models.py:949 msgid "Size on desktop devices" msgstr "Größe auf Desktopgeräten" -#: aleksis/core/models.py:945 +#: aleksis/core/models.py:945 aleksis/core/models.py:950 msgid "> 992 px, 12 columns" msgstr "> 992 px, 12 Spalten" -#: aleksis/core/models.py:950 +#: aleksis/core/models.py:950 aleksis/core/models.py:955 msgid "Size on large desktop devices" msgstr "Größe auf großen Desktopgeräten" -#: aleksis/core/models.py:951 +#: aleksis/core/models.py:951 aleksis/core/models.py:956 msgid "> 1200 px>, 12 columns" msgstr "> 1200 px, 12 Spalten" -#: aleksis/core/models.py:982 +#: aleksis/core/models.py:982 aleksis/core/models.py:987 msgid "Can edit default dashboard" msgstr "Kann Standarddashboard bearbeiten" -#: aleksis/core/models.py:983 +#: aleksis/core/models.py:983 aleksis/core/models.py:988 msgid "Dashboard Widget" msgstr "Dashboard-Widget" -#: aleksis/core/models.py:984 +#: aleksis/core/models.py:984 aleksis/core/models.py:989 msgid "Dashboard Widgets" msgstr "Dashboard-Widgets" -#: aleksis/core/models.py:990 +#: aleksis/core/models.py:990 aleksis/core/models.py:995 msgid "URL" msgstr "URL" -#: aleksis/core/models.py:991 +#: aleksis/core/models.py:991 aleksis/core/models.py:996 msgid "Icon URL" msgstr "Symbol-URL" -#: aleksis/core/models.py:997 +#: aleksis/core/models.py:997 aleksis/core/models.py:1002 msgid "External link widget" msgstr "Externer-Link-Widget" -#: aleksis/core/models.py:998 +#: aleksis/core/models.py:998 aleksis/core/models.py:1003 msgid "External link widgets" msgstr "Externer-Link-Widgets" -#: aleksis/core/models.py:1004 +#: aleksis/core/models.py:1004 aleksis/core/models.py:1009 msgid "Content" msgstr "Inhalt" -#: aleksis/core/models.py:1010 +#: aleksis/core/models.py:1010 aleksis/core/models.py:1015 msgid "Static content widget" msgstr "Statischer-Inhalt-Widget" -#: aleksis/core/models.py:1011 +#: aleksis/core/models.py:1011 aleksis/core/models.py:1016 msgid "Static content widgets" msgstr "Statischer-Inhalt-Widgets" -#: aleksis/core/models.py:1016 +#: aleksis/core/models.py:1016 aleksis/core/models.py:1021 msgid "Dashboard widget" msgstr "Dashboard-Widget" -#: aleksis/core/models.py:1021 +#: aleksis/core/models.py:1021 aleksis/core/models.py:1026 msgid "Order" msgstr "Reihenfolge" -#: aleksis/core/models.py:1022 +#: aleksis/core/models.py:1022 aleksis/core/models.py:1027 msgid "Part of the default dashboard" msgstr "Teil des Standarddashboards" -#: aleksis/core/models.py:1037 +#: aleksis/core/models.py:1037 aleksis/core/models.py:1042 msgid "Dashboard widget order" msgstr "Reihenfolge der Dashboard-Widgets" -#: aleksis/core/models.py:1038 +#: aleksis/core/models.py:1038 aleksis/core/models.py:1043 msgid "Dashboard widget orders" msgstr "Reihenfolgen der Dashboard-Widgets" -#: aleksis/core/models.py:1044 +#: aleksis/core/models.py:1044 aleksis/core/models.py:1049 msgid "Menu ID" msgstr "Menü-ID" -#: aleksis/core/models.py:1057 +#: aleksis/core/models.py:1057 aleksis/core/models.py:1062 msgid "Custom menu" msgstr "Benutzerdefiniertes Menü" -#: aleksis/core/models.py:1058 +#: aleksis/core/models.py:1058 aleksis/core/models.py:1063 msgid "Custom menus" msgstr "Benutzerdefinierte Menüs" -#: aleksis/core/models.py:1068 +#: aleksis/core/models.py:1068 aleksis/core/models.py:1075 msgid "Menu" 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 msgid "Icon" msgstr "Symbol" -#: aleksis/core/models.py:1078 +#: aleksis/core/models.py:1078 aleksis/core/models.py:1085 msgid "Custom menu item" msgstr "Benutzerdefiniertes Menüelement" -#: aleksis/core/models.py:1079 +#: aleksis/core/models.py:1079 aleksis/core/models.py:1086 msgid "Custom menu items" msgstr "Benutzerdefinierte Menüelemente" -#: aleksis/core/models.py:1093 +#: aleksis/core/models.py:1093 aleksis/core/models.py:1103 msgid "Title of type" msgstr "Titel des Typs" #: 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 "Gruppentyp" -#: aleksis/core/models.py:1114 +#: aleksis/core/models.py:1114 aleksis/core/models.py:1124 msgid "Can view system status" msgstr "Kann Systemstatus sehen" -#: aleksis/core/models.py:1115 +#: aleksis/core/models.py:1115 aleksis/core/models.py:1125 msgid "Can manage data" msgstr "Kann Daten verwalten" -#: aleksis/core/models.py:1116 +#: aleksis/core/models.py:1116 aleksis/core/models.py:1126 msgid "Can impersonate" msgstr "Kann sich verkleiden" -#: aleksis/core/models.py:1117 +#: aleksis/core/models.py:1117 aleksis/core/models.py:1127 msgid "Can use search" msgstr "Kann Suche benutzen" -#: aleksis/core/models.py:1118 +#: aleksis/core/models.py:1118 aleksis/core/models.py:1128 msgid "Can change site preferences" msgstr "Kann Konfiguration ändern" -#: aleksis/core/models.py:1119 +#: aleksis/core/models.py:1119 aleksis/core/models.py:1129 msgid "Can change person preferences" msgstr "Kann Einstellungen einer Person verändern" -#: aleksis/core/models.py:1120 +#: aleksis/core/models.py:1120 aleksis/core/models.py:1130 msgid "Can change group preferences" msgstr "Kann Einstellungen einer Gruppe verändern" -#: aleksis/core/models.py:1121 +#: aleksis/core/models.py:1121 aleksis/core/models.py:1131 msgid "Can test PDF generation" msgstr "Kann die PDF-Generierung testen" -#: aleksis/core/models.py:1122 +#: aleksis/core/models.py:1122 aleksis/core/models.py:1132 msgid "Can invite persons" msgstr "Kann Personen einladen" -#: aleksis/core/models.py:1158 +#: aleksis/core/models.py:1158 aleksis/core/models.py:1168 msgid "Related data check task" msgstr "Zugehörige Datenprüfungsaufgabe" -#: aleksis/core/models.py:1166 +#: aleksis/core/models.py:1166 aleksis/core/models.py:1176 msgid "Issue solved" msgstr "Problem gelöst" -#: aleksis/core/models.py:1167 +#: aleksis/core/models.py:1167 aleksis/core/models.py:1177 msgid "Notification sent" msgstr "Benachrichtigung gesendet" -#: aleksis/core/models.py:1180 +#: aleksis/core/models.py:1180 aleksis/core/models.py:1190 msgid "Data check result" msgstr "Datenprüfungsergebnis" -#: aleksis/core/models.py:1181 +#: aleksis/core/models.py:1181 aleksis/core/models.py:1191 msgid "Data check results" msgstr "Datenprüfungsergebnisse" -#: aleksis/core/models.py:1183 +#: aleksis/core/models.py:1183 aleksis/core/models.py:1193 msgid "Can run data checks" msgstr "Kann Datenprüfungen ausführen" -#: aleksis/core/models.py:1184 +#: aleksis/core/models.py:1184 aleksis/core/models.py:1194 msgid "Can solve data check problems" msgstr "Kann Datenprüfungsprobleme lösen" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1191 aleksis/core/models.py:1201 msgid "E-Mail address" msgstr "E-Mail-Adresse" -#: aleksis/core/models.py:1223 +#: aleksis/core/models.py:1223 aleksis/core/models.py:1233 msgid "Owner" msgstr "Leiter" -#: aleksis/core/models.py:1227 +#: aleksis/core/models.py:1227 aleksis/core/models.py:1237 msgid "File expires at" msgstr "Datei abgelaufen am" -#: aleksis/core/models.py:1229 +#: aleksis/core/models.py:1229 aleksis/core/models.py:1239 msgid "Generated HTML file" msgstr "Generierte HTML-Datei" -#: aleksis/core/models.py:1231 +#: aleksis/core/models.py:1231 aleksis/core/models.py:1241 msgid "Generated PDF file" msgstr "Generierte PDF-Datei" -#: aleksis/core/models.py:1238 +#: aleksis/core/models.py:1238 aleksis/core/models.py:1248 msgid "PDF file" msgstr "PDF-Datei" -#: aleksis/core/models.py:1239 +#: aleksis/core/models.py:1239 aleksis/core/models.py:1249 msgid "PDF files" msgstr "PDF-Dateien" -#: aleksis/core/models.py:1244 +#: aleksis/core/models.py:1244 aleksis/core/models.py:1254 msgid "Task result" msgstr "Task-Ergebnis" -#: aleksis/core/models.py:1247 +#: aleksis/core/models.py:1247 aleksis/core/models.py:1257 msgid "Task user" msgstr "Task-Benutzer" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1259 aleksis/core/models.py:1269 msgid "Task user assignment" msgstr "Task-Benutzer-Zuordnung" -#: aleksis/core/models.py:1260 +#: aleksis/core/models.py:1260 aleksis/core/models.py:1270 msgid "Task user assignments" msgstr "Task-Benutzer-Zuordnungen" -#: aleksis/core/models.py:1276 +#: aleksis/core/models.py:1276 aleksis/core/models.py:1286 msgid "Additional attributes" msgstr "Zusätzliche Attribute" -#: aleksis/core/models.py:1314 +#: aleksis/core/models.py:1314 aleksis/core/models.py:1324 msgid "Allowed scopes that clients can request" msgstr "Erlaubte Scopes, die ein Client anfordern kann" -#: aleksis/core/models.py:1324 -msgid "This image will be shown as icon in the authorization flow. It should be squared." -msgstr "Dieses Bild wird im Autorisierungs-Vorgang als Symbol angezeigt werden. Es sollte rechteckig sein." +#: 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 "" +"Dieses Bild wird im Autorisierungs-Vorgang als Symbol angezeigt werden. Es " +"sollte rechteckig sein." -#: aleksis/core/models.py:1373 +#: aleksis/core/models.py:1373 aleksis/core/models.py:1383 msgid "UUID" msgstr "UUID" -#: aleksis/core/models.py:1377 +#: aleksis/core/models.py:1377 aleksis/core/models.py:1387 msgid "Selected ICal feed" msgstr "Ausgewählter iCal-Feed" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1386 aleksis/core/models.py:1396 msgid "Personal Calendar URL" msgstr "Persönliche Kalender-URL" -#: aleksis/core/models.py:1387 +#: aleksis/core/models.py:1387 aleksis/core/models.py:1397 msgid "Personal Calendar URLs" msgstr "Persönliche Kalender-URLs" @@ -1137,8 +1192,11 @@ msgid "Automatically create new persons for new users" msgstr "Erstelle automatisch neue Personen für neue Benutzer" #: aleksis/core/preferences.py:241 -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" +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 msgid "Display name of the school" @@ -1146,7 +1204,8 @@ msgstr "Sichtbarer Name der Schule" #: aleksis/core/preferences.py:263 msgid "Official name of the school, e.g. as given by supervisory authority" -msgstr "Offizieller Name der Schule, wie er z.B. von der Behörde vorgegeben ist" +msgstr "" +"Offizieller Name der Schule, wie er z.B. von der Behörde vorgegeben ist" #: aleksis/core/preferences.py:271 msgid "Allow users to change their passwords" @@ -1184,67 +1243,72 @@ msgstr "Erlaubte Grant Flows für OAuth-Anwendungen" msgid "Available languages" msgstr "Verfügbare Sprachen" -#: aleksis/core/preferences.py:357 +#: aleksis/core/preferences.py:357 aleksis/core/preferences.py:343 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:368 aleksis/core/preferences.py:354 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:379 aleksis/core/preferences.py:365 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:388 aleksis/core/preferences.py:374 msgid "Show dashboard to users without login" msgstr "Zeige Dashboard für Benutzer ohne Login" -#: aleksis/core/preferences.py:397 +#: aleksis/core/preferences.py:397 aleksis/core/preferences.py:383 msgid "Allow users to edit their dashboard" msgstr "Erlaube Benutzern, ihr Dashboard zu bearbeiten" -#: aleksis/core/preferences.py:408 +#: aleksis/core/preferences.py:408 aleksis/core/preferences.py:394 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 -msgid "Editable fields on person model which should trigger a notification on change" -msgstr "Editierbare Felder des Personen-Models welche eine Benachrichtigung für Änderungen auslösen soll" +#: aleksis/core/preferences.py:423 aleksis/core/preferences.py:409 +msgid "" +"Editable fields on person model which should trigger a notification on change" +msgstr "" +"Editierbare Felder des Personen-Models welche eine Benachrichtigung für " +"Änderungen auslösen soll" -#: aleksis/core/preferences.py:437 +#: aleksis/core/preferences.py:437 aleksis/core/preferences.py:423 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:448 aleksis/core/preferences.py:434 msgid "Prefer personal photos over avatars" msgstr "Persönliche Fotos Avataren vorziehen" -#: aleksis/core/preferences.py:458 +#: aleksis/core/preferences.py:458 aleksis/core/preferences.py:444 msgid "PDF file expiration duration" msgstr "PDF-Datei-Ablaufdauer" -#: aleksis/core/preferences.py:459 +#: aleksis/core/preferences.py:459 aleksis/core/preferences.py:445 msgid "in minutes" msgstr "in Minuten" -#: aleksis/core/preferences.py:469 +#: aleksis/core/preferences.py:469 aleksis/core/preferences.py:455 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:479 aleksis/core/preferences.py:465 msgid "Automatically update the dashboard and its widgets sitewide" -msgstr "Automatisch das Dashboard und seine Widgets aktualisieren (auf der ganzen Seite)" +msgstr "" +"Automatisch das Dashboard und seine Widgets aktualisieren (auf der ganzen " +"Seite)" -#: aleksis/core/preferences.py:489 +#: aleksis/core/preferences.py:489 aleksis/core/preferences.py:475 msgid "Country for phone number parsing" msgstr "Land für das Einlesen von Telefonnummern" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:540 aleksis/core/settings.py:541 msgid "English" msgstr "Englisch" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:541 aleksis/core/settings.py:542 msgid "German" msgstr "Deutsch" @@ -1254,12 +1318,15 @@ msgstr "Deutsch" #: 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 +#: aleksis/core/tables.py:25 aleksis/core/templates/core/group/full.html:26 msgid "Edit" msgstr "Bearbeiten" #: 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 msgid "Actions" msgstr "Aktionen" @@ -1272,6 +1339,9 @@ msgstr "Aktionen" #: 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 "Löschen" @@ -1292,12 +1362,14 @@ 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" -" Wenn Sie der Meinung sind, dass es sich um einen Fehler in AlekSIS handelt, kontaktieren Sie bitte einen Ihrer\n" +" Wenn Sie der Meinung sind, dass es sich um einen Fehler in " +"AlekSIS handelt, kontaktieren Sie bitte einen Ihrer\n" " Systemadministratoren:\n" " " @@ -1309,7 +1381,8 @@ msgid "" " " msgstr "" "\n" -" Wenn Sie über einen Link auf einer externen Seite hierher gelangt sind,\n" +" Wenn Sie über einen Link auf einer externen Seite hierher " +"gelangt sind,\n" " ist es möglich, dass dieser veraltet war.\n" " " @@ -1324,12 +1397,14 @@ 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" -" Ihre Administratoren werden automatisch über diesen Fehler informiert.\n" +" Ihre Administratoren werden automatisch über diesen Fehler " +"informiert.\n" " Sie können diese auch direkt kontaktieren:\n" " " @@ -1348,11 +1423,13 @@ 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" -" Diese Seite ist aktuell nicht erreichbar. Wenn dieser Fehler bestehen bleibt, kontaktieren Sie bitte einen Ihrer Systemadministratoren:\n" +" Diese Seite ist aktuell nicht erreichbar. Wenn dieser Fehler " +"bestehen bleibt, kontaktieren Sie bitte einen Ihrer Systemadministratoren:\n" " " #: aleksis/core/templates/account/account_inactive.html:5 @@ -1393,17 +1470,27 @@ msgstr "Bestätigen" #: aleksis/core/templates/account/email_confirm.html:12 #, python-format -msgid "Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an e-mail address for user %(user_display)s." -msgstr "Bitte bestätigen Sie, dass <a href=\"mailto:%(email)s\">%(email)s</a> eine E-Mail-Adresse für den Benutzer %(user_display)s ist." +msgid "" +"Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an e-mail " +"address for user %(user_display)s." +msgstr "" +"Bitte bestätigen Sie, dass <a href=\"mailto:%(email)s\">%(email)s</a> eine E-" +"Mail-Adresse für den Benutzer %(user_display)s ist." #: aleksis/core/templates/account/email_confirm.html:25 #, python-format -msgid "This e-mail confirmation link expired or is invalid. Please <a href=\"%(email_url)s\">issue a new e-mail confirmation request</a>." -msgstr "Dieser E-Mail-Bestätigungslink ist abgelaufen oder nicht gültig. Bitte <a href=\"%(email_url)s\">fragen Sie eine neue E-Mail-Bestätigung an</a>." +msgid "" +"This e-mail confirmation link expired or is invalid. Please <a href=" +"\"%(email_url)s\">issue a new e-mail confirmation request</a>." +msgstr "" +"Dieser E-Mail-Bestätigungslink ist abgelaufen oder nicht gültig. Bitte <a " +"href=\"%(email_url)s\">fragen Sie eine neue E-Mail-Bestätigung an</a>." #: aleksis/core/templates/account/password_change.html:12 msgid "Forgot your current password? Click here to reset it:" -msgstr "Haben Sie Ihr aktuelles Passwort vergessen? Klicken Sie hier, um es zurückzusetzen:" +msgstr "" +"Haben Sie Ihr aktuelles Passwort vergessen? Klicken Sie hier, um es " +"zurückzusetzen:" #: aleksis/core/templates/account/password_change.html:12 msgid "Forgot Password?" @@ -1422,11 +1509,13 @@ msgstr "Passwortänderung deaktiviert." 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" -" Benutzer dürfen ihre eigenen Passwörter nicht ändern. Wenn Sie denken, \n" +" Benutzer dürfen ihre eigenen Passwörter nicht ändern. Wenn Sie " +"denken, \n" "dass dies ein Fehler ist, kontaktieren Sie bitte einen der Administratoren:\n" " " @@ -1441,8 +1530,12 @@ msgid "Reset password" msgstr "Passwort zurücksetzen" #: aleksis/core/templates/account/password_reset.html:17 -msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it." -msgstr "Passwort vergessen? Geben Sie Ihre E-Mail-Adresse hier ein und wir werden Ihnen eine E-Mail zum Zurücksetzen des Passwortes schicken." +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll send you " +"an e-mail allowing you to reset it." +msgstr "" +"Passwort vergessen? Geben Sie Ihre E-Mail-Adresse hier ein und wir werden " +"Ihnen eine E-Mail zum Zurücksetzen des Passwortes schicken." #: aleksis/core/templates/account/password_reset.html:30 msgid "" @@ -1465,7 +1558,8 @@ msgid "" " " msgstr "" "\n" -" Wir haben Ihnen eine E-Mail gesendet. Bitte kontaktieren Sie einen der Administratoren,\n" +" Wir haben Ihnen eine E-Mail gesendet. Bitte kontaktieren Sie " +"einen der Administratoren,\n" "wenn Sie diese nicht innerhalb weniger Minuten erhalten.\n" " " @@ -1477,12 +1571,16 @@ msgstr "Ungültiges Token" #, 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" -" Der Link zum Zurücksetzen des Passwortes war falsch, wahrscheinlich, weil er bereits benutzt wurde. Bitte starten Sie eine neue Anfrage <a href=\"%(passwd_reset_url)s\" class=\"blue-text text-lighten-2\">zum Zurücksetzen des Passwortes</a>.\n" +" Der Link zum Zurücksetzen des Passwortes war falsch, " +"wahrscheinlich, weil er bereits benutzt wurde. Bitte starten Sie eine neue " +"Anfrage <a href=\"%(passwd_reset_url)s\" class=\"blue-text text-" +"lighten-2\">zum Zurücksetzen des Passwortes</a>.\n" " " #: aleksis/core/templates/account/password_reset_from_key.html:25 @@ -1531,8 +1629,11 @@ msgstr "Registrierung" #: aleksis/core/templates/account/signup.html:12 #, python-format -msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>." -msgstr "Haben Sie bereits ein Konto? Dann <a href=\"%(login_url)s\">melden Sie sich bitte an</a>." +msgid "" +"Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>." +msgstr "" +"Haben Sie bereits ein Konto? Dann <a href=\"%(login_url)s\">melden Sie sich " +"bitte an</a>." #: aleksis/core/templates/account/signup_closed.html:5 #: aleksis/core/templates/account/signup_closed.html:6 @@ -1551,7 +1652,8 @@ msgid "" " " msgstr "" "\n" -" Die Registrierung ist aktuell geschlossen. Wenn Sie denken, dass dies ein Fehler ist,\n" +" Die Registrierung ist aktuell geschlossen. Wenn Sie denken, dass " +"dies ein Fehler ist,\n" " kontaktieren Sie bitte einen Ihrer Systemadministratoren.\n" " " @@ -1571,13 +1673,17 @@ msgstr "Verifizieren Sie Ihre E-Mail!" #: 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" -" Dieser Teil der Anwendung setzt voraus, dass wir verifizieren, dass Sie die Person sind, die sie vorgeben, zu sein.\n" -"Zu diesem Zweck setzen wir voraus, dass Sie die Inhaberschaft Ihrer E-Mail-Adresse bestätigen.\n" +" Dieser Teil der Anwendung setzt voraus, dass wir verifizieren, " +"dass Sie die Person sind, die sie vorgeben, zu sein.\n" +"Zu diesem Zweck setzen wir voraus, dass Sie die Inhaberschaft Ihrer E-Mail-" +"Adresse bestätigen.\n" " " #: aleksis/core/templates/account/verification_sent.html:22 @@ -1591,7 +1697,8 @@ msgstr "" "\n" " Wir haben Ihnen eine E-Mail zur Verifizierung geschickt.\n" "Bitte klicken Sie auf den Link in dieser E-Mail.\n" -"Bitte kontaktieren Sie uns, wenn Sie diese nicht binnen weniger Minuten erhalten.\n" +"Bitte kontaktieren Sie uns, wenn Sie diese nicht binnen weniger Minuten " +"erhalten.\n" " " #: aleksis/core/templates/core/additional_field/edit.html:6 @@ -1672,7 +1779,8 @@ msgid "" " " msgstr "" "\n" -" Es ist ein Problem dabei aufgetreten, das Widget \"%(title)s\" zu laden.\n" +" Es ist ein Problem dabei aufgetreten, das Widget \"%(title)s\" " +"zu laden.\n" "Sie brauchen nichts weiter machen.\n" " " @@ -1768,29 +1876,42 @@ msgstr "Dashboard bearbeiten" #: 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" -" Auf dieser Seite können Sie Ihr persönliches Dashboard zusammenstallen. Sie können beliebige Elemente von den \"Verfügbaren Widgets\" \n" -"in \"Ihr Dashboard\" ziehen oder die Reihenfolge verändern, indem Sie die Widgets bewegen. Wenn Sie fertig sind, vergessen Sie bitte nicht, \n" +" Auf dieser Seite können Sie Ihr persönliches Dashboard " +"zusammenstallen. Sie können beliebige Elemente von den \"Verfügbaren Widgets" +"\" \n" +"in \"Ihr Dashboard\" ziehen oder die Reihenfolge verändern, indem Sie die " +"Widgets bewegen. Wenn Sie fertig sind, vergessen Sie bitte nicht, \n" "auf \"Speichern\" zu drücken.\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" -" Auf dieser Seite können Sie Ihr das Standard-Dashboard zusammenstallen, welches angezeigt wird, wenn ein Benutzer kein eigenes definiert. \n" -"Sie können beliebige Elemente von den \"Verfügbaren Widgets\" in \"Standard-Dashboard\" ziehen oder die Reihenfolge verändern, indem Sie die Widgets bewegen. \n" -"Wenn Sie fertig sind, vergessen Sie bitte nicht, auf \"Speichern\" zu drücken.\n" +" Auf dieser Seite können Sie Ihr das Standard-Dashboard " +"zusammenstallen, welches angezeigt wird, wenn ein Benutzer kein eigenes " +"definiert. \n" +"Sie können beliebige Elemente von den \"Verfügbaren Widgets\" in \"Standard-" +"Dashboard\" ziehen oder die Reihenfolge verändern, indem Sie die Widgets " +"bewegen. \n" +"Wenn Sie fertig sind, vergessen Sie bitte nicht, auf \"Speichern\" zu " +"drücken.\n" " " #: aleksis/core/templates/core/edit_dashboard.html:48 @@ -1808,12 +1929,15 @@ msgstr "Standard-Dashboard" #: 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" -" Sie können diese Seite verwenden, um Kindgruppen zu Gruppen zuzuordnen. Bitte nutzen Sie die folgenden Filter, um die Gruppen auszuwählen, die Sie \n" +" Sie können diese Seite verwenden, um Kindgruppen zu Gruppen " +"zuzuordnen. Bitte nutzen Sie die folgenden Filter, um die Gruppen " +"auszuwählen, die Sie \n" " ändern möchten und klicken auf \"Weiter\".\n" " " @@ -1854,14 +1978,18 @@ msgstr "Bitte seien Sie vorsichtig!" #: 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" -" Wenn Sie auf \"Zurück\" oder \"Weiter\" klicken, werden die aktuellen Gruppenzuordnungen nicht gespeichert.\n" -"Wenn Sie auf \"Speichern\" klicken, werden alle existierenden Zuordnungen von Kindgruppen für diese Gruppe\n" +" Wenn Sie auf \"Zurück\" oder \"Weiter\" klicken, werden die " +"aktuellen Gruppenzuordnungen nicht gespeichert.\n" +"Wenn Sie auf \"Speichern\" klicken, werden alle existierenden Zuordnungen " +"von Kindgruppen für diese Gruppe\n" "mit dem überschrieben, was Sie auf dieser Seite ausgewählt haben.\n" " " @@ -1898,22 +2026,27 @@ msgstr "Gruppe editieren" #: 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 "Einstellungen ändern" #: aleksis/core/templates/core/group/full.html:64 +#: aleksis/core/templates/core/group/full.html:68 msgid "Statistics" msgstr "Statistiken" #: aleksis/core/templates/core/group/full.html:67 +#: aleksis/core/templates/core/group/full.html:73 msgid "Count of members" msgstr "Anzahl der Mitglieder" #: aleksis/core/templates/core/group/full.html:71 +#: aleksis/core/templates/core/group/full.html:81 msgid "Average age" msgstr "Durchschnittsalter" #: aleksis/core/templates/core/group/full.html:76 +#: aleksis/core/templates/core/group/full.html:90 msgid "Age range" msgstr "Altersbereich" @@ -1978,7 +2111,9 @@ msgid "ICal Feeds" msgstr "iCal-Feeds" #: 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." +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 "" "Dies sind URLs für verschiedene Kalender-Feeds im iCal-Format (.ics). Sie " "können so viele erstellen, wie sie wollen, und in Ihre Kalender-Software " @@ -1995,13 +2130,16 @@ msgstr "Startseite" #: aleksis/core/templates/core/index.html:49 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" -" Sie haben Ihr Dashboard nicht angepasst, sodass Sie das Standard-Dashboard sehen.\n" -"Bitte klicken Sie auf \"Dashboard bearbeiten\", um Ihr persönliches Dashboard anzupassen.\n" +" Sie haben Ihr Dashboard nicht angepasst, sodass Sie das Standard-" +"Dashboard sehen.\n" +"Bitte klicken Sie auf \"Dashboard bearbeiten\", um Ihr persönliches " +"Dashboard anzupassen.\n" " " #: aleksis/core/templates/core/index.html:59 @@ -2041,25 +2179,31 @@ msgstr "Über 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" +" 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" -" Diese Plattform wird mit AlekSIS®, einem webbasierten Schulinformationssystem (SIS), \n" -"welches für die Verwaltung und/oder Veröffentlichung von Bildungseinrichtungen verwendet werden kann.\n" +" Diese Plattform wird mit AlekSIS®, einem webbasierten " +"Schulinformationssystem (SIS), \n" +"welches für die Verwaltung und/oder Veröffentlichung von " +"Bildungseinrichtungen verwendet werden kann.\n" "AlekSIS ist freie Software und kann von jedem benutzt werden.\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" +" AlekSIS® is a registered trademark of the AlekSIS open source " +"project, represented by Teckids e.V.\n" " " msgstr "" "\n" -" AlekSIS® ist eine eingetragene Wortmarke des Open-Source-Projektes AlekSIS, vertreten durch den Teckids e.V.\n" +" AlekSIS® ist eine eingetragene Wortmarke des Open-Source-" +"Projektes AlekSIS, vertreten durch den Teckids e.V.\n" " " #: aleksis/core/templates/core/pages/about.html:30 @@ -2077,14 +2221,18 @@ msgstr "Lizenzinformationen" #: 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" +" 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" -" Der Core und die offiziellen Apps von AlekSIS sind unter der EUPL, Version 1.2 oder später, lizenziert. Für Lizenzinformationen\n" -"zu Apps von Drittanbietern, wenn installiert, siehe direkt bei der jeweiligen App weiter unten auf dieser Seite. Die Lizenzen\n" +" Der Core und die offiziellen Apps von AlekSIS sind unter der " +"EUPL, Version 1.2 oder später, lizenziert. Für Lizenzinformationen\n" +"zu Apps von Drittanbietern, wenn installiert, siehe direkt bei der " +"jeweiligen App weiter unten auf dieser Seite. Die Lizenzen\n" "sind wie folgt markiert:\n" " " @@ -2134,11 +2282,13 @@ msgstr "" #: aleksis/core/templates/core/pages/progress.html:27 msgid "" "\n" -" Without activated JavaScript the progress status can't be updated.\n" +" Without activated JavaScript the progress status can't be " +"updated.\n" " " msgstr "" "\n" -" Ohne aktiviertes JavaScript kann der Fortschritt leider nicht aktualisiert werden.\n" +" Ohne aktiviertes JavaScript kann der Fortschritt leider nicht " +"aktualisiert werden.\n" " " #: aleksis/core/templates/core/pages/progress.html:47 @@ -2157,11 +2307,13 @@ msgstr "Wartungsmodus aktiviert" #: aleksis/core/templates/core/pages/system_status.html:24 msgid "" "\n" -" Only admin and visitors from internal IPs can access thesite.\n" +" Only admin and visitors from internal IPs can access " +"thesite.\n" " " msgstr "" "\n" -" Nur Administratoren und Besucher von internen IP-Adressen können die Seite aufrufen.\n" +" Nur Administratoren und Besucher von internen IP-Adressen " +"können die Seite aufrufen.\n" " " #: aleksis/core/templates/core/pages/system_status.html:36 @@ -2179,11 +2331,13 @@ msgstr "Debug-Modus aktiviert" #: 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" -" Der Server gibt Debug-Informationen bei Fehlern zurück. Nicht im Produktivbetrieb nutzen!\n" +" Der Server gibt Debug-Informationen bei Fehlern zurück. " +"Nicht im Produktivbetrieb nutzen!\n" " " #: aleksis/core/templates/core/pages/system_status.html:56 @@ -2193,11 +2347,13 @@ msgstr "Debug-Modus deaktivert" #: 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" -" Debug-Modus ist deaktiviert. Standard-Fehlerseiten werden bei Fehlern angezeigt.\n" +" Debug-Modus ist deaktiviert. Standard-Fehlerseiten werden " +"bei Fehlern angezeigt.\n" " " #: aleksis/core/templates/core/pages/system_status.html:71 @@ -2247,11 +2403,13 @@ msgstr "PDF-Generierung testen" #: 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" -" Diese einfache Seite kann genutzt werden, um die korrekte Funktionalität des eingebauten PDF-Generierungssystem zu testen.\n" +" Diese einfache Seite kann genutzt werden, um die korrekte " +"Funktionalität des eingebauten PDF-Generierungssystem zu testen.\n" " " #: aleksis/core/templates/core/partials/announcements.html:8 @@ -2309,22 +2467,26 @@ msgid "Unknown" msgstr "Unbekannt" #: aleksis/core/templates/core/partials/language_form.html:15 +#: aleksis/core/templates/core/partials/language_form.html:17 msgid "Language" msgstr "Sprache" #: aleksis/core/templates/core/partials/language_form.html:27 +#: aleksis/core/templates/core/partials/language_form.html:29 msgid "Select language" msgstr "Sprache auswählen" #: aleksis/core/templates/core/partials/no_person.html:12 msgid "" "\n" -" Your administrator account is not linked to any person. Therefore,\n" +" Your administrator account is not linked to any person. " +"Therefore,\n" " a dummy person has been linked to your account.\n" " " msgstr "" "\n" -" Ihr Administratorenkonto ist mit keiner Person verknüpft. Deshalb\n" +" Ihr Administratorenkonto ist mit keiner Person verknüpft. " +"Deshalb\n" " wurde Ihr Konto mit einer Dummyperson verknüpft.\n" " " @@ -2337,8 +2499,10 @@ msgid "" " " msgstr "" "\n" -" Ihr Benutzerkonto ist nicht mit einer Person verknüpft. Das bedeutet, dass Sie\n" -" keine schulbezogenen Informationen aufrufen können. Bitte wenden Sie sich an\n" +" Ihr Benutzerkonto ist nicht mit einer Person verknüpft. Das " +"bedeutet, dass Sie\n" +" keine schulbezogenen Informationen aufrufen können. Bitte wenden Sie " +"sich an\n" " die Verwaltenden von AlekSIS an Ihrer Schule.\n" " " @@ -2465,8 +2629,12 @@ msgid "The invite feature is disabled." msgstr "Die Einladungsfunktion ist deaktiviert." #: aleksis/core/templates/invitations/disabled.html:15 -msgid "To enable it, switch on the corresponding checkbox in the authentication section of the " -msgstr "Um sie zu aktivieren, nutzen Sie die Checkbox im Abschnitt \"Authentifikation\" der " +msgid "" +"To enable it, switch on the corresponding checkbox in the authentication " +"section of the " +msgstr "" +"Um sie zu aktivieren, nutzen Sie die Checkbox im Abschnitt \"Authentifikation" +"\" der " #: aleksis/core/templates/invitations/disabled.html:16 msgid "site preferences page" @@ -2594,7 +2762,8 @@ msgstr "Erfolg!" #: aleksis/core/templates/oauth2_provider/authorized-oob.html:14 msgid "Please return to your application and enter this code:" -msgstr "Bitte gehen Sie zurück in Ihre Anwendung und geben Sie diesen Code ein:" +msgstr "" +"Bitte gehen Sie zurück in Ihre Anwendung und geben Sie diesen Code ein:" #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6 @@ -2604,7 +2773,9 @@ msgstr "Zugriff zurückziehen" #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:12 msgid "Are you sure to revoke the access for this application?" -msgstr "Sind Sie sicher, dass Sie den Zugriff für diese Anwendung zurückziehen möchten?" +msgstr "" +"Sind Sie sicher, dass Sie den Zugriff für diese Anwendung zurückziehen " +"möchten?" #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:20 msgid "Revoke" @@ -2625,14 +2796,19 @@ msgstr "Keine Internetverbindung." #: 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" -" or mobile data is turned on and try again. If you think you are connected, please contact the system\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" " " 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" +" 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" " " @@ -2668,12 +2844,14 @@ msgstr "Anmeldung über Drittanbieter-Konto fehlgeschlagen." #: 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" -" Beim dem Versuch, die Anmeldung über Ihr Drittanbieter-Konto durchzuführen, ist ein Fehler aufgetreten.\n" +" Beim dem Versuch, die Anmeldung über Ihr Drittanbieter-Konto " +"durchzuführen, ist ein Fehler aufgetreten.\n" " Kontaktieren Sie bitte einen Ihrer Systemadministratoren:\n" " " @@ -2688,7 +2866,8 @@ msgstr "Löschen" #: aleksis/core/templates/socialaccount/connections.html:34 msgid "You currently have no third-party accounts connected to this account." -msgstr "Sie haben aktuell keine Drittanbieter-Konten mit Ihrem Konto verbunden." +msgstr "" +"Sie haben aktuell keine Drittanbieter-Konten mit Ihrem Konto verbunden." #: aleksis/core/templates/socialaccount/connections.html:37 msgid "Add a Third-party Account" @@ -2697,12 +2876,15 @@ msgstr "Ein Drittanbieter-Konto hinzufügen" #: aleksis/core/templates/socialaccount/login.html:12 #, python-format msgid "You are about to connect a new third party account from %(provider)s." -msgstr "Sie sind dabei, ein neues Drittanbieterkonto von %(provider)s zu verbinden." +msgstr "" +"Sie sind dabei, ein neues Drittanbieterkonto von %(provider)s zu verbinden." #: 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 "Sie sind dabei, sich mit einem Drittanbieterkonto von %(provider)s anzumelden." +msgstr "" +"Sie sind dabei, sich mit einem Drittanbieterkonto von %(provider)s " +"anzumelden." #: aleksis/core/templates/socialaccount/login.html:28 msgid "Continue" @@ -2718,11 +2900,15 @@ msgstr "Login abgebrochen" #, 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" -" Sie haben sich entschieden, die Anmeldung mit einem Ihrer bestehenden Konten bei uns abzubrechen. Wenn dies ein Fehler war, <a href=\"%(login_url)s\">fahren Sie bitte mit dem Login fort</a>.\n" +" Sie haben sich entschieden, die Anmeldung mit einem Ihrer " +"bestehenden Konten bei uns abzubrechen. Wenn dies ein Fehler war, <a href=" +"\"%(login_url)s\">fahren Sie bitte mit dem Login fort</a>.\n" " " #: aleksis/core/templates/socialaccount/signup.html:12 @@ -2731,7 +2917,8 @@ msgid "" "You are about to use your %(provider_name)s account to login to\n" " %(site_name)s. As a final step, please complete the following form:" msgstr "" -"Sie sind dabei, Ihr %(provider_name)s-Konto zur Anmeldung bei %(site_name)s zu nutzen. \n" +"Sie sind dabei, Ihr %(provider_name)s-Konto zur Anmeldung bei %(site_name)s " +"zu nutzen. \n" "Als ein letzter Schritt vervollständigen Sie bitte das folgende Formular:" #: aleksis/core/templates/socialaccount/snippets/provider_list.html:12 @@ -2779,7 +2966,9 @@ msgstr "Celery-Task %(task_name)s fehlgeschlagen!" #: aleksis/core/templates/templated_email/celery_failure.email:7 #, python-format msgid "the celery task %(task_name)s failed with following information:" -msgstr "der Celery-Task %(task_name)s ist mit folgenden Informationen fehlgeschlagen:" +msgstr "" +"der Celery-Task %(task_name)s ist mit folgenden Informationen " +"fehlgeschlagen:" #: aleksis/core/templates/templated_email/celery_failure.email:10 #: aleksis/core/templates/templated_email/celery_failure.email:29 @@ -2809,7 +2998,8 @@ msgid "" " " msgstr "" "\n" -" der Celery-Task %(task_name)s ist mit folgenden Informationen fehlgeschlagen:\n" +" der Celery-Task %(task_name)s ist mit folgenden Informationen " +"fehlgeschlagen:\n" " " #: aleksis/core/templates/templated_email/data_checks.email:3 @@ -2819,21 +3009,25 @@ msgstr "Das System hat einige neue Probleme mit Ihren Daten entdeckt." #: 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 "" "das System hat einige neue Probleme mit Ihren Daten entdeckt.\n" -"Bitte nehmen Sie sich etwas Zeit, diese zu überprüfen und sie zu lösen oder als ignoriert zu markieren." +"Bitte nehmen Sie sich etwas Zeit, diese zu überprüfen und sie zu lösen oder " +"als ignoriert zu markieren." #: 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" " das System hat einige neue Probleme mit Ihren Daten entdeckt.\n" -"Bitte nehmen Sie sich etwas Zeit, diese zu überprüfen und sie zu lösen oder als ignoriert zu markieren.\n" +"Bitte nehmen Sie sich etwas Zeit, diese zu überprüfen und sie zu lösen oder " +"als ignoriert zu markieren.\n" " " #: aleksis/core/templates/templated_email/data_checks.email:23 @@ -2919,16 +3113,21 @@ 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" " Backup-Token können genutzt werden, wenn Ihre primären und Backup-\n" -" Telefonnummern nicht verfügbar sind. Die Backup-Tokens unten können für\n" -" die Anmeldungsverifizierung genutzt werden. Wenn Sie alle Backup-Tokens genutzt haben,\n" -" müssen Sie neue generieren. Nur gültige Backup-Tokens werden angezeigt.\n" +" Telefonnummern nicht verfügbar sind. Die Backup-Tokens unten können " +"für\n" +" die Anmeldungsverifizierung genutzt werden. Wenn Sie alle Backup-" +"Tokens genutzt haben,\n" +" müssen Sie neue generieren. Nur gültige Backup-Tokens werden " +"angezeigt.\n" " " #: aleksis/core/templates/two_factor/core/backup_tokens.html:33 @@ -2972,7 +3171,9 @@ msgstr "" #: aleksis/core/templates/two_factor/core/login.html:47 msgid "Please login with your account to use the external application." -msgstr "Bitte melden Sie sich mit Ihrem Konto an, um die externe Anwendung zu benutzen." +msgstr "" +"Bitte melden Sie sich mit Ihrem Konto an, um die externe Anwendung zu " +"benutzen." #: aleksis/core/templates/two_factor/core/login.html:54 msgid "Please login to see this page." @@ -2981,7 +3182,8 @@ msgstr "Bitte melden Sie sich an, um diese Seite zu sehen." #: 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 "" @@ -2993,7 +3195,8 @@ msgstr "" #: 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 "" @@ -3017,14 +3220,19 @@ 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" -" Nutzen Sie dieses Formular um Ihre Backup-Tokens zum Anmelden einzugeben.\n" -" Diese Tokens wurden für Sie generiert, um diese gut aufzubewahren. Bitte\n" +" Nutzen Sie dieses Formular um Ihre Backup-Tokens zum " +"Anmelden einzugeben.\n" +" Diese Tokens wurden für Sie generiert, um diese gut " +"aufzubewahren. Bitte\n" " geben Sie einen dieser Tokens ein, um sich einzuloggen.\n" " " @@ -3055,11 +3263,13 @@ msgstr "Zugriff verwehrt" #: 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 "" "Die von Ihnen gewünschte Seite erfordert aus Sicherheitsgründen\n" -" eine Verifizierung durch Zwei-Faktor-Authentifizierung. Sie müssen diese\n" +" eine Verifizierung durch Zwei-Faktor-Authentifizierung. Sie müssen " +"diese\n" " Sicherheitsfunktion aktivieren, um diese Seite aufzurufen." #: aleksis/core/templates/two_factor/core/otp_required.html:14 @@ -3104,9 +3314,10 @@ msgid "" " " msgstr "" "\n" -" Sie sind dabei, Ihre Accountsicherheit auf das\n" -" nächste Level zu erhöhen. Bitte folgen Sie den Schritten im Wizard um die\n" -" Zwei-Faktor-Authentifizierug zu aktivieren.\n" +" Sie sind dabei, Ihre Account-Sicherheit auf das\n" +" nächste Level zu erhöhen. Bitte folgen Sie den Schritten im " +"Assistenten, um die\n" +" Zwei-Faktor-Authentifizierung zu aktivieren.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:17 @@ -3116,14 +3327,16 @@ msgid "" " " msgstr "" "\n" -" Bitte wählen Sie aus, welche Authentifikationsmethode Sie nutzen wollen:\n" +" Bitte wählen Sie aus, welche Authentifikationsmethode Sie nutzen " +"wollen:\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 "" @@ -3142,7 +3355,8 @@ msgid "" msgstr "" "\n" " Bitte geben Sie die Telefonnummer des Gerätes an,\n" -" an die die SMS-Nachrichten geschickt werden sollen. Diese Nummer wird im nächsten Schritt überprüft.\n" +" an die die SMS-Nachrichten geschickt werden sollen. Diese Nummer " +"wird im nächsten Schritt überprüft.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:41 @@ -3160,11 +3374,13 @@ 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" -" Wir rufen Ihr Telefon jetzt an, bitte geben Sie die Zahlen ein, die Sie hören.\n" +" Wir rufen Ihr Telefon jetzt an, bitte geben Sie die Zahlen ein, " +"die Sie hören.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:56 @@ -3174,23 +3390,30 @@ msgid "" " " msgstr "" "\n" -" Wir haben Ihnen eine SMS geschickt, bitte geben Sie die Tokens ein, die wir geschickt haben.\n" +" Wir haben Ihnen eine SMS geschickt, bitte geben Sie die Tokens " +"ein, die wir geschickt haben.\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" -" Mit der ausgewählten Authentifizierungsmethode ist ein Fehler aufgetreten. \n" -"Bitte gehen Sie zurück und überprüfen, dass Sie die Informationen korrekt eingegeben haben, versuchen Sie es erneut,\n" +" Mit der ausgewählten Authentifizierungsmethode ist ein Fehler " +"aufgetreten. \n" +"Bitte gehen Sie zurück und überprüfen, dass Sie die Informationen korrekt " +"eingegeben haben, versuchen Sie es erneut,\n" "oder benutzen Sie stattdessen eine andere Authentifizierungsmethode. \n" -"Wenn der Fehler bestehen bleibt, kontaktieren Sie bitte einen der Administratoren.\n" +"Wenn der Fehler bestehen bleibt, kontaktieren Sie bitte einen der " +"Administratoren.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:73 @@ -3215,11 +3438,13 @@ msgstr "Zwei-Faktor-Authentifizierung erfolgreich aktiviert" #: 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" -" Gratulation, Sie haben die Zwei-Faktor-Authentifizierung erfolgreich aktiviert.\n" +" Gratulation, Sie haben die Zwei-Faktor-Authentifizierung erfolgreich " +"aktiviert.\n" " " #: aleksis/core/templates/two_factor/core/setup_complete.html:24 @@ -3236,12 +3461,14 @@ msgstr "Backup-Codes generieren" 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" -" Es kann passieren, dass Sie keinen Zugriff auf Ihren Tokengenerator haben. \n" +" Es kann passieren, dass Sie keinen Zugriff auf Ihren " +"Tokengenerator haben. \n" "Um die Wiederherstellung zu aktivieren,\n" "generieren Sie Backupcodes oder fügen eine Telefonnummer hinzu.\n" " " @@ -3259,8 +3486,12 @@ msgid "Disable Two-Factor Authentication" msgstr "Zwei-Faktor-Authentifizierung deaktiveren" #: 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 "Sie sind dabei, Zwei-Faktor-Authentifizierung zu deaktivieren. Das verschlechtert Ihre Kontosicherheit. Sind Sie sicher?" +msgid "" +"You are about to disable two-factor authentication. This weakens your " +"account security, are you sure?" +msgstr "" +"Sie sind dabei, Zwei-Faktor-Authentifizierung zu deaktivieren. Das " +"verschlechtert Ihre Kontosicherheit. Sind Sie sicher?" #: aleksis/core/templates/two_factor/profile/disable.html:26 msgid "Disable" @@ -3340,7 +3571,8 @@ msgid "" msgstr "" "\n" " Wir raten Ihnen jedoch dringend davon ab.\n" -" Sie können jedoch auch die Zwei-Faktor-Authentifizierung für Ihr Konto deaktivieren.\n" +" Sie können jedoch auch die Zwei-Faktor-Authentifizierung für Ihr " +"Konto deaktivieren.\n" " " #: aleksis/core/templates/two_factor/profile/profile.html:78 @@ -3352,7 +3584,8 @@ msgid "" " " msgstr "" "\n" -" Die Zwei-Faktor-Authentifizierung ist nicht für Ihren Account aktiviert.\n" +" Die Zwei-Faktor-Authentifizierung ist nicht für Ihren Account " +"aktiviert.\n" " Aktivieren Sie Zwei-Faktor-Authentifizierung für eine verbesserte\n" " Accountsicherheit.\n" " " @@ -3385,47 +3618,48 @@ msgstr "Es ist ein Fehler beim Generieren der PDF-Datei aufgetreten." msgid "Download PDF" msgstr "PDF herunterladen" -#: aleksis/core/views.py:292 +#: aleksis/core/views.py:292 aleksis/core/views.py:294 msgid "The school term has been created." msgstr "Das Schuljahr wurde erstellt." -#: aleksis/core/views.py:304 +#: aleksis/core/views.py:304 aleksis/core/views.py:306 msgid "The school term has been saved." msgstr "Das Schuljahr wurde gespeichert." -#: aleksis/core/views.py:424 +#: aleksis/core/views.py:424 aleksis/core/views.py:426 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 msgid "The person has been saved." msgstr "Die Person wurde gespeichert." -#: aleksis/core/views.py:503 +#: aleksis/core/views.py:503 aleksis/core/views.py:505 msgid "The group has been saved." msgstr "Die Gruppe wurde gespeichert." -#: aleksis/core/views.py:600 +#: aleksis/core/views.py:600 aleksis/core/views.py:602 msgid "The announcement has been saved." msgstr "Die Ankündigung wurde gespeichert." -#: aleksis/core/views.py:616 +#: aleksis/core/views.py:616 aleksis/core/views.py:618 msgid "The announcement has been deleted." msgstr "Ankündigung wurde gelöscht." -#: aleksis/core/views.py:684 +#: aleksis/core/views.py:684 aleksis/core/views.py:686 msgid "The requested preference registry does not exist" msgstr "Das angeforderte Einstellungsregister existiert nicht" -#: aleksis/core/views.py:703 +#: aleksis/core/views.py:703 aleksis/core/views.py:705 msgid "The preferences have been saved successfully." msgstr "Die Einstellungen wurde gespeichert." -#: aleksis/core/views.py:727 +#: aleksis/core/views.py:727 aleksis/core/views.py:729 msgid "The person has been deleted." msgstr "Die Person wurde gelöscht." -#: aleksis/core/views.py:741 +#: aleksis/core/views.py:741 aleksis/core/views.py:743 msgid "The group has been deleted." msgstr "Die Gruppe wurde gelöscht." @@ -3433,109 +3667,120 @@ msgstr "Die Gruppe wurde gelöscht." msgid "The additional_field has been saved." msgstr "Das zusätzliche Feld wurde gespeichert." -#: aleksis/core/views.py:807 +#: aleksis/core/views.py:807 aleksis/core/views.py:809 msgid "The additional field has been deleted." msgstr "Das zusätzliche Feld wurde gelöscht." -#: aleksis/core/views.py:832 +#: aleksis/core/views.py:832 aleksis/core/views.py:834 msgid "The group type has been saved." msgstr "Der Gruppentyp wurde gespeichert." -#: aleksis/core/views.py:862 +#: aleksis/core/views.py:862 aleksis/core/views.py:864 msgid "The group type has been deleted." msgstr "Der Gruppentyp wurde gelöscht." -#: aleksis/core/views.py:895 +#: aleksis/core/views.py:895 aleksis/core/views.py:897 msgid "Progress: Run data checks" msgstr "Fortschritt: Datenprüfungen ausführen" -#: aleksis/core/views.py:896 +#: aleksis/core/views.py:896 aleksis/core/views.py:898 msgid "Run data checks …" msgstr "Datenprüfungen laufen …" -#: aleksis/core/views.py:897 +#: aleksis/core/views.py:897 aleksis/core/views.py:899 msgid "The data checks were run successfully." msgstr "Die Datenprüfungen wurden erfolgreich ausgeführt." -#: aleksis/core/views.py:898 +#: aleksis/core/views.py:898 aleksis/core/views.py:900 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:914 aleksis/core/views.py:916 #, 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:924 aleksis/core/views.py:926 msgid "The requested solve option does not exist" msgstr "Die angeforderte Lösungsoption existiert nicht" -#: aleksis/core/views.py:956 +#: aleksis/core/views.py:956 aleksis/core/views.py:958 msgid "The dashboard widget has been saved." msgstr "Das Dashboard-Widget wurde gespeichert." -#: aleksis/core/views.py:986 +#: aleksis/core/views.py:986 aleksis/core/views.py:988 msgid "The dashboard widget has been created." msgstr "Das Dashboard-Widget wurde erstellt." -#: aleksis/core/views.py:996 +#: aleksis/core/views.py:996 aleksis/core/views.py:998 msgid "The dashboard widget has been deleted." msgstr "Das Dashboard-Widget wurde gelöscht." -#: aleksis/core/views.py:1067 +#: aleksis/core/views.py:1067 aleksis/core/views.py:1069 msgid "Your dashboard configuration has been saved successfully." msgstr "Ihre Dashboardkonfiguration wurde erfolgreich gespeichert." -#: aleksis/core/views.py:1069 +#: aleksis/core/views.py:1069 aleksis/core/views.py:1071 msgid "The configuration of the default dashboard has been saved successfully." -msgstr "Die Konfiguration des Standard-Dashboardes wurde erfolgreich gespeichert." +msgstr "" +"Die Konfiguration des Standard-Dashboardes wurde erfolgreich gespeichert." -#: aleksis/core/views.py:1145 +#: aleksis/core/views.py:1145 aleksis/core/views.py:1147 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" -msgstr "Die Einladung wurde erfolgreich erstellt. Der Einladungscode ist {code}" +msgstr "" +"Die Einladung wurde erfolgreich erstellt. Der Einladungscode ist {code}" -#: aleksis/core/views.py:1236 +#: aleksis/core/views.py:1236 aleksis/core/views.py:1238 msgid "We have successfully assigned the permissions." msgstr "Wir haben die Berechtigungen erfolgreich zugewiesen." -#: aleksis/core/views.py:1246 +#: aleksis/core/views.py:1246 aleksis/core/views.py:1248 msgid "The global user permission has been deleted." msgstr "Die globale Benutzerberechtigung wurde gelöscht." -#: aleksis/core/views.py:1256 +#: aleksis/core/views.py:1256 aleksis/core/views.py:1258 msgid "The global group permission has been deleted." msgstr "Die globale Gruppenberechtigung wurde gelöscht." -#: aleksis/core/views.py:1266 +#: aleksis/core/views.py:1266 aleksis/core/views.py:1268 msgid "The object user permission has been deleted." msgstr "Die Objekt-Benutzerberechtigung wurde gelöscht." -#: aleksis/core/views.py:1276 +#: aleksis/core/views.py:1276 aleksis/core/views.py:1278 msgid "The object group permission has been deleted." msgstr "Die Objekt-Gruppenberechtigung wurde gelöscht." -#: aleksis/core/views.py:1344 +#: aleksis/core/views.py:1344 aleksis/core/views.py:1346 msgid "The requested PDF file does not exist" msgstr "Die angeforderte PDF-Datei existiert nicht" #: 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 "Der angeforderte Task existiert nicht oder ist nicht abrufbar" -#: aleksis/core/views.py:1409 -msgid "The third-party account could not be disconnected because it is the only login method available." -msgstr "Das Drittanbieter-Konto konnte nicht deaktiviert werden, weil es die einzige verfügbare Anmeldeoption ist." +#: 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 "" +"Das Drittanbieter-Konto konnte nicht deaktiviert werden, weil es die einzige " +"verfügbare Anmeldeoption ist." -#: aleksis/core/views.py:1416 +#: aleksis/core/views.py:1416 aleksis/core/views.py:1418 msgid "The third-party account has been successfully disconnected." msgstr "Das Drittanbieter-Konto wurde erfolgreich getrennt." -#: aleksis/core/views.py:1487 -msgid "Person was invited successfully and an email with further instructions has been send to them." -msgstr "Die Person wurde erfolgreich eingeladen und eine E-Mail mit weiteren Anweisungen wurde an sie verschickt." +#: 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 "" +"Die Person wurde erfolgreich eingeladen und eine E-Mail mit weiteren " +"Anweisungen wurde an sie verschickt." -#: aleksis/core/views.py:1498 +#: aleksis/core/views.py:1498 aleksis/core/views.py:1500 msgid "Person was already invited." msgstr "Person wurde bereits eingeladen." @@ -3551,6 +3796,64 @@ 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 +#, python-format +msgid "Validate field %s of model %s." +msgstr "Feld %s von Model %s validieren." + +#: aleksis/core/data_checks.py:332 +#, python-format +msgid "The field %s couldn't be validated successfully." +msgstr "Das Feld %s konnte nicht erfolgreich validiert werden." + +#: aleksis/core/models.py:181 +msgid "other" +msgstr "andere" + +#: aleksis/core/settings.py:543 +msgid "Ukrainian" +msgstr "Ukrainisch" + +#: aleksis/core/templates/500.html:10 +msgid "" +"An unexpected error has\n" +" occurred." +msgstr "" +"Ein unerwarteter Fehler ist\n" +" aufgetreten." + +#: aleksis/core/templates/core/group/full.html:93 +#, python-format +msgid "" +"\n" +" %(min)s years to %(max)s years\n" +" " +msgstr "" +"\n" +" %(min)s Jahre bis %(max)s Jahre\n" +" " + +#: aleksis/core/templates/core/ical/ical_list.html:4 +#: aleksis/core/templates/core/ical/ical_list.html:5 +msgid "iCal Feeds" +msgstr "iCal-Feeds" + +#: aleksis/core/views.py:775 +msgid "The additional field has been saved." +msgstr "Das zusätzliche Feld wurde gespeichert." + +#: aleksis/core/views.py:1600 +msgid "iCal feed updated successfully" +msgstr "Der iCal-Feed wurde erfolgreich aktualisiert" + +#: aleksis/core/views.py:1610 +msgid "iCal feed deleted successfully" +msgstr "Der iCal-Feed wurde erfolgreich gelöscht" + +#: aleksis/core/views.py:1618 +msgid "iCal feed created successfully" +msgstr "Der iCal-Feed wurde erfolgreich erstellt" + #~ msgid "Me" #~ msgstr "Ich" @@ -3613,7 +3916,8 @@ msgstr "Der iCal-Feed wurde erfolgreich erstellt" #~ " <li>ID des Tasks: %(task_id)s</li>\n" #~ " <li>Aufgetretene Exception: %(exception)s</li>\n" #~ " <li>Argumente, mit denen der Task aufgerufen wurde: %(args)s</li>\n" -#~ " <li>Keyword-Argumente, mit denen der Task aufgerufen wurde: %(kwargs)s</li>\n" +#~ " <li>Keyword-Argumente, mit denen der Task aufgerufen wurde: " +#~ "%(kwargs)s</li>\n" #~ " <li>Stacktrace: %(traceback)s</li>\n" #~ " </ul>\n" #~ " " @@ -3632,8 +3936,12 @@ msgstr "Der iCal-Feed wurde erfolgreich erstellt" #~ msgstr "Zustimmungen" #, python-brace-format -#~ msgid "I have read the <a href='{privacy_policy}'>Privacy policy</a> and agree with them." -#~ msgstr "Ich habe die <a href='{privacy_policy}'>Datenschutzerklärung</a> gelesen und stimme ihr zu." +#~ msgid "" +#~ "I have read the <a href='{privacy_policy}'>Privacy policy</a> and agree " +#~ "with them." +#~ msgstr "" +#~ "Ich habe die <a href='{privacy_policy}'>Datenschutzerklärung</a> gelesen " +#~ "und stimme ihr zu." #~ msgid "You must type the same password each time." #~ msgstr "Sie müssen zweimal das gleiche Passwort eingeben." @@ -3642,8 +3950,12 @@ msgstr "Der iCal-Feed wurde erfolgreich erstellt" #~ msgstr "Verkleidung" #, python-format -#~ msgid "<strong>Note:</strong> you can still <a href=\"%(email_url)s\">change your e-mail address</a>" -#~ msgstr "<strong>Hinweis:</strong> Sie können immer noch <a href=\"%(email_url)s\"> Ihre E-Mail-Adresse ändern</a>" +#~ msgid "" +#~ "<strong>Note:</strong> you can still <a href=\"%(email_url)s\">change " +#~ "your e-mail address</a>" +#~ msgstr "" +#~ "<strong>Hinweis:</strong> Sie können immer noch <a href=\"%(email_url)s" +#~ "\"> Ihre E-Mail-Adresse ändern</a>" #~ msgid "Impress" #~ msgstr "Impressum" @@ -3665,7 +3977,9 @@ msgstr "Der iCal-Feed wurde erfolgreich erstellt" #, python-format #~ msgid "Are you sure to delete the application %(application_name)s?" -#~ msgstr "Sind Sie sicher, dass Sie die Anwendung %(application_name)s löschen möchten?" +#~ msgstr "" +#~ "Sind Sie sicher, dass Sie die Anwendung %(application_name)s löschen " +#~ "möchten?" #~ msgid "Authorization Grant Type" #~ msgstr "Authorization Grant-Typ" @@ -3690,17 +4004,23 @@ msgstr "Der iCal-Feed wurde erfolgreich erstellt" #~ msgid "" #~ "\n" -#~ " You can use this form to assign user accounts to persons. Use the\n" -#~ " dropdowns to select existing accounts; use the text fields to create new\n" -#~ " accounts on-the-fly. The latter will create a new account with the\n" +#~ " You can use this form to assign user accounts to persons. Use " +#~ "the\n" +#~ " dropdowns to select existing accounts; use the text fields to " +#~ "create new\n" +#~ " accounts on-the-fly. The latter will create a new account with " +#~ "the\n" #~ " entered username and copy all other details from the person.\n" #~ " " #~ msgstr "" #~ "\n" -#~ " Sie können dieses Formular nutzen, um Benutzerkonten Personen zuzuweisen. Nutzen Sie das\n" -#~ " Auswahlfeld um ein existierendes Benutzerkonto auszuwählen; nutzen Sie das Textfeld, um einen neuen Benutzer zu\n" +#~ " Sie können dieses Formular nutzen, um Benutzerkonten Personen " +#~ "zuzuweisen. Nutzen Sie das\n" +#~ " Auswahlfeld um ein existierendes Benutzerkonto auszuwählen; nutzen " +#~ "Sie das Textfeld, um einen neuen Benutzer zu\n" #~ " erstellen. Letzteres erstellt ein neues Benutzerkonto mit dem\n" -#~ " eingegebenen Benutzernamen und kopiert alle anderen Daten der Person.\n" +#~ " eingegebenen Benutzernamen und kopiert alle anderen Daten der " +#~ "Person.\n" #~ " " #~ msgid "Existing account" @@ -3726,7 +4046,8 @@ msgstr "Der iCal-Feed wurde erfolgreich erstellt" #~ "We sent you a text message, please enter the tokens we\n" #~ " sent." #~ msgstr "" -#~ "Wir haben Ihnen eine Textnachricht geschickt. Bitte geben Sie die Tokens ein,\n" +#~ "Wir haben Ihnen eine Textnachricht geschickt. Bitte geben Sie die Tokens " +#~ "ein,\n" #~ " die wir Ihnen geschickt haben." #~ msgid "French" @@ -3735,8 +4056,12 @@ msgstr "Der iCal-Feed wurde erfolgreich erstellt" #~ msgid "Norwegian (bokmÃ¥l)" #~ msgstr "Norwegisch (bokmÃ¥l)" -#~ msgid "The data check has been started. Please note that it may take a while before you are able to fetch the data on this page." -#~ msgstr "Die Datenüberprüfung wurde gestartet. Bitte beachten Sie, dass es eine Weile dauern kann, bevor Sie auf dieser Seite Ergebnisse abrufen können." +#~ msgid "" +#~ "The data check has been started. Please note that it may take a while " +#~ "before you are able to fetch the data on this page." +#~ msgstr "" +#~ "Die Datenüberprüfung wurde gestartet. Bitte beachten Sie, dass es eine " +#~ "Weile dauern kann, bevor Sie auf dieser Seite Ergebnisse abrufen können." #~ msgid "The data check has finished." #~ msgstr "Die Datenüberprüfung wurde beendet." @@ -3790,7 +4115,8 @@ msgstr "Der iCal-Feed wurde erfolgreich erstellt" #~ " " #~ msgstr "" #~ "\n" -#~ " Wenn Sie der Meinung sind, dass es sich um einen Fehler in AlekSIS handelt, kontaktieren Sie bitte einen Ihrer\n" +#~ " Wenn Sie der Meinung sind, dass es sich um einen Fehler in AlekSIS " +#~ "handelt, kontaktieren Sie bitte einen Ihrer\n" #~ " Systemadministratoren:\n" #~ " " @@ -3864,10 +4190,11 @@ msgstr "Der iCal-Feed wurde erfolgreich erstellt" #~ msgstr "Markdown-Anleitung (Hilfe)" #~ msgid "You are not allowed to mark notifications from other users as read!" -#~ msgstr "Es ist Ihnen nicht erlaubt, Benachrichtigungen von anderen Benutzern als gelesen zu markieren!" +#~ msgstr "" +#~ "Es ist Ihnen nicht erlaubt, Benachrichtigungen von anderen Benutzern als " +#~ "gelesen zu markieren!" #, fuzzy -#~| msgid "School management" #~ msgid "School name" #~ msgstr "Schulverwaltung" @@ -3925,7 +4252,8 @@ msgstr "Der iCal-Feed wurde erfolgreich erstellt" #~ " " #~ msgstr "" #~ "\n" -#~ " Der Wartungsmodus ist aktuell aktiviert. Bitte versuchen Sie es später erneut.\n" +#~ " Der Wartungsmodus ist aktuell aktiviert. Bitte versuchen Sie es " +#~ "später erneut.\n" #~ " " #~ msgid "Details" diff --git a/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po b/aleksis/core/locale/de_DE/LC_MESSAGES/djangojs.po index 46116e73483b8a4b7af5f566700cd6110f8c29dc..2298f9b2dd0bb495629e9b9174cdeceb7a7159bc 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\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" diff --git a/aleksis/core/locale/fr/LC_MESSAGES/django.po b/aleksis/core/locale/fr/LC_MESSAGES/django.po index 03ca8ed9426a18b415e7ebe22449010c847dd68e..b57a1588c4fb9a13d74200af11aa150a0f7b2c7d 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\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" @@ -41,7 +41,7 @@ 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/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 @@ -49,27 +49,37 @@ msgstr "" msgid "Groups" msgstr "Groupe" -#: aleksis/core/data_checks.py:56 +#: aleksis/core/data_checks.py:59 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 "" -#: aleksis/core/data_checks.py:291 +#: aleksis/core/data_checks.py:294 msgid "Deactivate DashboardWidget" msgstr "" -#: aleksis/core/data_checks.py:303 +#: aleksis/core/data_checks.py:306 msgid "Ensure that there are no broken DashboardWidgets." msgstr "" -#: aleksis/core/data_checks.py:304 +#: aleksis/core/data_checks.py:307 msgid "The DashboardWidget was reported broken automatically." msgstr "" +#: aleksis/core/data_checks.py:330 +#, python-format +msgid "Validate field %s of model %s." +msgstr "" + +#: aleksis/core/data_checks.py:332 +#, python-format +msgid "The field %s couldn't be validated successfully." +msgstr "" + #: aleksis/core/feeds.py:52 msgid "Birthday Calendar" msgstr "" @@ -115,11 +125,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 "groupe" @@ -127,7 +137,7 @@ msgstr "groupe" msgid "Base data" msgstr "" -#: aleksis/core/forms.py:55 +#: aleksis/core/forms.py:55 aleksis/core/tables.py:47 msgid "Address" msgstr "" @@ -159,7 +169,7 @@ msgstr "" msgid "This username is already in use." msgstr "Cet nom est deja en utilisation." -#: aleksis/core/forms.py:153 aleksis/core/models.py:136 +#: aleksis/core/forms.py:153 aleksis/core/models.py:141 msgid "School term" msgstr "" @@ -170,7 +180,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:159 +#: aleksis/core/menus.py:160 aleksis/core/models.py:164 #: aleksis/core/templates/core/person/list.html:8 #: aleksis/core/templates/core/person/list.html:9 #, fuzzy @@ -184,18 +194,18 @@ msgstr "Personne" msgid "Additional data" msgstr "Détails de contact" -#: 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 "Date" #: aleksis/core/forms.py:200 aleksis/core/forms.py:203 -#: aleksis/core/models.py:87 +#: aleksis/core/models.py:92 msgid "Time" msgstr "" @@ -231,11 +241,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 "Prénom" -#: aleksis/core/forms.py:419 aleksis/core/models.py:188 +#: aleksis/core/forms.py:419 aleksis/core/models.py:193 msgid "Last name" msgstr "Nom de famille" @@ -340,13 +350,13 @@ msgstr "" msgid "Admin" msgstr "" -#: aleksis/core/menus.py:47 aleksis/core/models.py:867 +#: 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:137 +#: 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" @@ -398,7 +408,7 @@ msgstr "" msgid "People" msgstr "" -#: aleksis/core/menus.py:182 aleksis/core/models.py:1101 +#: 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 @@ -410,7 +420,7 @@ msgstr "Groupe" msgid "Groups and child groups" msgstr "" -#: aleksis/core/menus.py:204 aleksis/core/models.py:537 +#: 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" @@ -479,619 +489,623 @@ msgstr "" 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 "" -#: 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 "" -#: 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 msgid "Name" msgstr "" -#: aleksis/core/models.py:102 +#: aleksis/core/models.py:107 #, fuzzy #| msgid "Contact details" msgid "Start date" msgstr "Détails de contact" -#: 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:163 aleksis/core/models.py:1024 +#: aleksis/core/models.py:1381 msgid "Person" msgstr "Personne" -#: aleksis/core/models.py:161 +#: aleksis/core/models.py:166 #, fuzzy #| msgid "Contact details" msgid "Can view address" msgstr "Détails de contact" -#: aleksis/core/models.py:162 +#: aleksis/core/models.py:167 #, fuzzy #| msgid "Contact details" msgid "Can view contact details" msgstr "Détails de contact" -#: aleksis/core/models.py:163 +#: aleksis/core/models.py:168 #, fuzzy #| msgid "Contact details" msgid "Can view photo" msgstr "Détails de contact" -#: aleksis/core/models.py:164 +#: aleksis/core/models.py:169 #, fuzzy #| msgid "Contact details" msgid "Can view avatar image" msgstr "Détails de contact" -#: aleksis/core/models.py:165 +#: aleksis/core/models.py:170 #, fuzzy #| msgid "Contact details" msgid "Can view persons groups" msgstr "Détails de contact" -#: aleksis/core/models.py:166 +#: aleksis/core/models.py:171 #, fuzzy #| msgid "Contact details" msgid "Can view personal details" msgstr "Détails de contact" -#: 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:1283 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 #, fuzzy #| msgid "First name" msgid "Short name" msgstr "Prénom" -#: 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 aleksis/core/templates/core/person/full.html:160 msgid "Home phone" msgstr "" -#: aleksis/core/models.py:203 aleksis/core/templates/core/person/full.html:170 +#: aleksis/core/models.py:208 aleksis/core/templates/core/person/full.html:170 msgid "Mobile phone" msgstr "" -#: aleksis/core/models.py:207 +#: aleksis/core/models.py:212 msgid "Date of birth" msgstr "Date d'anniversaire" -#: aleksis/core/models.py:208 +#: aleksis/core/models.py:213 #, fuzzy #| msgid "Date of birth" msgid "Place of birth" msgstr "Date d'anniversaire" -#: aleksis/core/models.py:209 +#: aleksis/core/models.py:214 msgid "Sex" msgstr "Sexe" -#: 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 "" -#: 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 aleksis/core/templates/core/person/full.html:235 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:839 +#: aleksis/core/models.py:1104 msgid "Description" msgstr "Description" -#: 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 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 #, fuzzy #| msgid "Description" msgid "Help text / description" msgstr "Description" -#: 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 #, fuzzy #| msgid "Contact details" msgid "Can view statistics about group." msgstr "Détails de contact" -#: aleksis/core/models.py:504 +#: aleksis/core/models.py:509 #, fuzzy #| msgid "Last name" msgid "Long name" msgstr "Nom de famille" -#: 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 "Propriétaires" -#: 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:723 aleksis/core/models.py:747 +#: aleksis/core/models.py:838 #: 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:751 msgid "Send notification at" msgstr "" -#: aleksis/core/models.py:748 +#: aleksis/core/models.py:753 msgid "Read" msgstr "" -#: aleksis/core/models.py:749 +#: aleksis/core/models.py:754 msgid "Sent" msgstr "" -#: aleksis/core/models.py:766 +#: aleksis/core/models.py:771 msgid "Notification" msgstr "" -#: aleksis/core/models.py:767 aleksis/core/preferences.py:29 +#: 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 msgid "Notifications" msgstr "" -#: aleksis/core/models.py:835 +#: aleksis/core/models.py:840 msgid "Link to detailed view" msgstr "" -#: aleksis/core/models.py:838 +#: aleksis/core/models.py:843 msgid "Date and time from when to show" msgstr "" -#: aleksis/core/models.py:841 +#: aleksis/core/models.py:846 msgid "Date and time until when to show" msgstr "" -#: aleksis/core/models.py:866 +#: aleksis/core/models.py:871 msgid "Announcement" msgstr "" -#: aleksis/core/models.py:904 +#: aleksis/core/models.py:909 msgid "Announcement recipient" msgstr "" -#: aleksis/core/models.py:905 +#: aleksis/core/models.py:910 msgid "Announcement recipients" msgstr "" -#: aleksis/core/models.py:927 +#: aleksis/core/models.py:932 msgid "Widget Title" msgstr "" -#: aleksis/core/models.py:928 +#: aleksis/core/models.py:933 msgid "Activate Widget" msgstr "" -#: aleksis/core/models.py:929 +#: aleksis/core/models.py:934 msgid "Widget is broken" msgstr "" -#: aleksis/core/models.py:932 +#: aleksis/core/models.py:937 msgid "Size on mobile devices" msgstr "" -#: aleksis/core/models.py:933 +#: aleksis/core/models.py:938 msgid "<= 600 px, 12 columns" msgstr "" -#: aleksis/core/models.py:938 +#: aleksis/core/models.py:943 msgid "Size on tablet devices" msgstr "" -#: aleksis/core/models.py:939 +#: aleksis/core/models.py:944 msgid "> 600 px, 12 columns" msgstr "" -#: aleksis/core/models.py:944 +#: aleksis/core/models.py:949 msgid "Size on desktop devices" msgstr "" -#: aleksis/core/models.py:945 +#: aleksis/core/models.py:950 msgid "> 992 px, 12 columns" msgstr "" -#: aleksis/core/models.py:950 +#: aleksis/core/models.py:955 msgid "Size on large desktop devices" msgstr "" -#: aleksis/core/models.py:951 +#: aleksis/core/models.py:956 msgid "> 1200 px>, 12 columns" msgstr "" -#: aleksis/core/models.py:982 +#: aleksis/core/models.py:987 msgid "Can edit default dashboard" msgstr "" -#: aleksis/core/models.py:983 +#: aleksis/core/models.py:988 msgid "Dashboard Widget" msgstr "" -#: aleksis/core/models.py:984 +#: aleksis/core/models.py:989 msgid "Dashboard Widgets" msgstr "" -#: aleksis/core/models.py:990 +#: aleksis/core/models.py:995 msgid "URL" msgstr "" -#: aleksis/core/models.py:991 +#: aleksis/core/models.py:996 msgid "Icon URL" msgstr "" -#: aleksis/core/models.py:997 +#: aleksis/core/models.py:1002 msgid "External link widget" msgstr "" -#: aleksis/core/models.py:998 +#: aleksis/core/models.py:1003 msgid "External link widgets" msgstr "" -#: aleksis/core/models.py:1004 +#: aleksis/core/models.py:1009 msgid "Content" msgstr "" -#: aleksis/core/models.py:1010 +#: aleksis/core/models.py:1015 msgid "Static content widget" msgstr "" -#: aleksis/core/models.py:1011 +#: aleksis/core/models.py:1016 msgid "Static content widgets" msgstr "" -#: aleksis/core/models.py:1016 +#: aleksis/core/models.py:1021 msgid "Dashboard widget" msgstr "" -#: aleksis/core/models.py:1021 +#: aleksis/core/models.py:1026 msgid "Order" msgstr "" -#: aleksis/core/models.py:1022 +#: aleksis/core/models.py:1027 msgid "Part of the default dashboard" msgstr "" -#: aleksis/core/models.py:1037 +#: aleksis/core/models.py:1042 msgid "Dashboard widget order" msgstr "" -#: aleksis/core/models.py:1038 +#: aleksis/core/models.py:1043 msgid "Dashboard widget orders" msgstr "" -#: aleksis/core/models.py:1044 +#: aleksis/core/models.py:1049 msgid "Menu ID" msgstr "" -#: aleksis/core/models.py:1057 +#: aleksis/core/models.py:1062 msgid "Custom menu" msgstr "" -#: aleksis/core/models.py:1058 +#: aleksis/core/models.py:1063 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/models.py:1079 aleksis/core/models.py:1330 #: 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 #, fuzzy #| msgid "Group" msgid "Group type" msgstr "Groupe" -#: aleksis/core/models.py:1114 +#: aleksis/core/models.py:1124 #, fuzzy #| msgid "Contact details" msgid "Can view system status" msgstr "Détails de contact" -#: 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 #, fuzzy #| msgid "Contact details" msgid "Can impersonate" msgstr "Détails de contact" -#: 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 "" -#: aleksis/core/models.py:1122 +#: aleksis/core/models.py:1132 #, fuzzy #| msgid "Contact details" msgid "Can invite persons" msgstr "Détails de contact" -#: aleksis/core/models.py:1158 +#: aleksis/core/models.py:1168 msgid "Related data check task" msgstr "" -#: aleksis/core/models.py:1166 +#: aleksis/core/models.py:1176 msgid "Issue solved" msgstr "" -#: aleksis/core/models.py:1167 +#: aleksis/core/models.py:1177 msgid "Notification sent" msgstr "" -#: aleksis/core/models.py:1180 +#: aleksis/core/models.py:1190 msgid "Data check result" msgstr "" -#: aleksis/core/models.py:1181 +#: aleksis/core/models.py:1191 msgid "Data check results" msgstr "" -#: aleksis/core/models.py:1183 +#: aleksis/core/models.py:1193 msgid "Can run data checks" msgstr "" -#: aleksis/core/models.py:1184 +#: aleksis/core/models.py:1194 msgid "Can solve data check problems" msgstr "" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1201 #, fuzzy #| msgid "Contact details" msgid "E-Mail address" msgstr "Détails de contact" -#: aleksis/core/models.py:1223 +#: aleksis/core/models.py:1233 #, fuzzy #| msgid "Owners" msgid "Owner" msgstr "Propriétaires" -#: aleksis/core/models.py:1227 +#: aleksis/core/models.py:1237 msgid "File expires at" msgstr "" -#: aleksis/core/models.py:1229 +#: aleksis/core/models.py:1239 msgid "Generated HTML file" msgstr "" -#: aleksis/core/models.py:1231 +#: aleksis/core/models.py:1241 msgid "Generated PDF file" msgstr "" -#: aleksis/core/models.py:1238 +#: aleksis/core/models.py:1248 msgid "PDF file" msgstr "" -#: aleksis/core/models.py:1239 +#: aleksis/core/models.py:1249 msgid "PDF files" msgstr "" -#: aleksis/core/models.py:1244 +#: aleksis/core/models.py:1254 msgid "Task result" msgstr "" -#: aleksis/core/models.py:1247 +#: aleksis/core/models.py:1257 msgid "Task user" msgstr "" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1269 msgid "Task user assignment" msgstr "" -#: aleksis/core/models.py:1260 +#: aleksis/core/models.py:1270 msgid "Task user assignments" msgstr "" -#: aleksis/core/models.py:1276 +#: aleksis/core/models.py:1286 #, fuzzy #| msgid "Contact details" msgid "Additional attributes" msgstr "Détails de contact" -#: aleksis/core/models.py:1314 +#: aleksis/core/models.py:1324 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 "" -#: aleksis/core/models.py:1377 +#: aleksis/core/models.py:1387 msgid "Selected ICal feed" msgstr "" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1396 msgid "Personal Calendar URL" msgstr "" -#: aleksis/core/models.py:1387 +#: aleksis/core/models.py:1397 msgid "Personal Calendar URLs" msgstr "" @@ -1247,94 +1261,94 @@ msgstr "" msgid "Allowed Grant Flows for OAuth applications" msgstr "Détails de contact" -#: aleksis/core/preferences.py:344 -msgid "Available languages" -msgstr "" - -#: aleksis/core/preferences.py:357 +#: aleksis/core/preferences.py:343 msgid "Send emails if data checks detect problems" msgstr "" -#: aleksis/core/preferences.py:368 +#: aleksis/core/preferences.py:354 msgid "Email recipients for data checks problem emails" msgstr "" -#: aleksis/core/preferences.py:379 +#: aleksis/core/preferences.py:365 msgid "Email recipient groups for data checks problem emails" msgstr "" -#: aleksis/core/preferences.py:388 +#: aleksis/core/preferences.py:374 msgid "Show dashboard to users without login" msgstr "" -#: aleksis/core/preferences.py:397 +#: aleksis/core/preferences.py:383 msgid "Allow users to edit their dashboard" msgstr "" -#: aleksis/core/preferences.py:408 +#: aleksis/core/preferences.py:394 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:437 +#: aleksis/core/preferences.py:423 msgid "Contact for notification if a person changes their data" msgstr "" -#: aleksis/core/preferences.py:448 +#: aleksis/core/preferences.py:434 msgid "Prefer personal photos over avatars" msgstr "" -#: aleksis/core/preferences.py:458 +#: aleksis/core/preferences.py:444 msgid "PDF file expiration duration" msgstr "" -#: aleksis/core/preferences.py:459 +#: aleksis/core/preferences.py:445 msgid "in minutes" msgstr "" -#: aleksis/core/preferences.py:469 +#: aleksis/core/preferences.py:455 msgid "Automatically update the dashboard and its widgets" msgstr "" -#: aleksis/core/preferences.py:479 +#: aleksis/core/preferences.py:465 msgid "Automatically update the dashboard and its widgets sitewide" msgstr "" -#: aleksis/core/preferences.py:489 +#: aleksis/core/preferences.py:475 msgid "Country for phone number parsing" msgstr "" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:541 msgid "English" msgstr "" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:542 msgid "German" msgstr "" -#: aleksis/core/tables.py:24 +#: aleksis/core/settings.py:543 +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/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 "" -#: 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 @@ -1373,7 +1387,7 @@ msgstr "" #: aleksis/core/templates/500.html:10 msgid "" "An unexpected error has\n" -" occured." +" occurred." msgstr "" #: aleksis/core/templates/500.html:13 @@ -1879,34 +1893,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: aleksis/core/templates/core/group/full.html:38 +#: 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 "" -#: 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 " +#: aleksis/core/templates/core/group/full.html:93 +#, python-format +msgid "" +"\n" +" %(min)s years to %(max)s years\n" +" " msgstr "" #: aleksis/core/templates/core/group/list.html:14 @@ -1962,7 +1976,7 @@ msgstr "" #: aleksis/core/templates/core/ical/ical_list.html:4 #: aleksis/core/templates/core/ical/ical_list.html:5 -msgid "ICal Feeds" +msgid "iCal Feeds" msgstr "" #: aleksis/core/templates/core/ical/ical_list.html:8 @@ -2248,11 +2262,11 @@ 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 "" @@ -3194,172 +3208,172 @@ msgstr "" msgid "Download PDF" msgstr "" -#: aleksis/core/views.py:292 +#: aleksis/core/views.py:294 msgid "The school term has been created." msgstr "" -#: aleksis/core/views.py:304 +#: aleksis/core/views.py:306 msgid "The school term has been saved." msgstr "" -#: aleksis/core/views.py:424 +#: aleksis/core/views.py:426 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 msgid "The person has been saved." msgstr "" -#: aleksis/core/views.py:503 +#: aleksis/core/views.py:505 msgid "The group has been saved." msgstr "" -#: aleksis/core/views.py:600 +#: aleksis/core/views.py:602 msgid "The announcement has been saved." msgstr "" -#: aleksis/core/views.py:616 +#: aleksis/core/views.py:618 msgid "The announcement has been deleted." msgstr "" -#: aleksis/core/views.py:684 +#: aleksis/core/views.py:686 msgid "The requested preference registry does not exist" msgstr "" -#: aleksis/core/views.py:703 +#: aleksis/core/views.py:705 msgid "The preferences have been saved successfully." msgstr "" -#: aleksis/core/views.py:727 +#: aleksis/core/views.py:729 msgid "The person has been deleted." msgstr "" -#: aleksis/core/views.py:741 +#: aleksis/core/views.py:743 msgid "The group has been deleted." msgstr "" -#: aleksis/core/views.py:773 -msgid "The additional_field has been saved." +#: aleksis/core/views.py:775 +msgid "The additional field has been saved." msgstr "" -#: aleksis/core/views.py:807 +#: aleksis/core/views.py:809 msgid "The additional field has been deleted." msgstr "" -#: aleksis/core/views.py:832 +#: aleksis/core/views.py:834 msgid "The group type has been saved." msgstr "" -#: aleksis/core/views.py:862 +#: aleksis/core/views.py:864 msgid "The group type has been deleted." msgstr "" -#: aleksis/core/views.py:895 +#: aleksis/core/views.py:897 msgid "Progress: Run data checks" msgstr "" -#: aleksis/core/views.py:896 +#: aleksis/core/views.py:898 msgid "Run data checks …" msgstr "" -#: aleksis/core/views.py:897 +#: aleksis/core/views.py:899 msgid "The data checks were run successfully." msgstr "" -#: aleksis/core/views.py:898 +#: aleksis/core/views.py:900 msgid "There was a problem while running data checks." msgstr "" -#: aleksis/core/views.py:914 +#: aleksis/core/views.py:916 #, python-brace-format msgid "The solve option '{solve_option_obj.verbose_name}' " msgstr "" -#: aleksis/core/views.py:924 +#: aleksis/core/views.py:926 msgid "The requested solve option does not exist" msgstr "" -#: aleksis/core/views.py:956 +#: aleksis/core/views.py:958 msgid "The dashboard widget has been saved." msgstr "" -#: aleksis/core/views.py:986 +#: aleksis/core/views.py:988 msgid "The dashboard widget has been created." msgstr "" -#: aleksis/core/views.py:996 +#: aleksis/core/views.py:998 msgid "The dashboard widget has been deleted." msgstr "" -#: aleksis/core/views.py:1067 +#: aleksis/core/views.py:1069 msgid "Your dashboard configuration has been saved successfully." msgstr "" -#: aleksis/core/views.py:1069 +#: aleksis/core/views.py:1071 msgid "The configuration of the default dashboard has been saved successfully." msgstr "" -#: aleksis/core/views.py:1145 +#: aleksis/core/views.py:1147 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "" -#: aleksis/core/views.py:1236 +#: aleksis/core/views.py:1238 msgid "We have successfully assigned the permissions." msgstr "" -#: aleksis/core/views.py:1246 +#: aleksis/core/views.py:1248 msgid "The global user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1256 +#: aleksis/core/views.py:1258 msgid "The global group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1266 +#: aleksis/core/views.py:1268 msgid "The object user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1276 +#: aleksis/core/views.py:1278 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 "" -#: 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 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:1498 +#: aleksis/core/views.py:1500 #, fuzzy #| msgid "This username is already in use." msgid "Person was already invited." msgstr "Cet nom est deja en utilisation." -#: aleksis/core/views.py:1598 -msgid "ICal feed updated successfully" +#: aleksis/core/views.py:1600 +msgid "iCal feed updated successfully" msgstr "" -#: aleksis/core/views.py:1608 -msgid "ICal feed deleted successfully" +#: aleksis/core/views.py:1610 +msgid "iCal feed deleted successfully" msgstr "" -#: aleksis/core/views.py:1616 -msgid "ICal feed created successfully" +#: aleksis/core/views.py:1618 +msgid "iCal feed created successfully" msgstr "" #, fuzzy diff --git a/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po b/aleksis/core/locale/fr/LC_MESSAGES/djangojs.po index 8b09ccccb99d662228f56e974bfc374c48e225fa..8b1f39f46181c3eb157a2316413bca33ad16015a 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/aleksis/core/locale/la/LC_MESSAGES/django.po b/aleksis/core/locale/la/LC_MESSAGES/django.po index 2d18ad75e75b9e8c18abb297f12c14b2ba21088d..b75d5e04731de1445f993badba1509a713f9e474 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\n" "PO-Revision-Date: 2020-12-19 12:57+0000\n" "Last-Translator: Julian <leuckerj@gmail.com>\n" "Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis/la/>\n" @@ -45,35 +45,45 @@ 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/models.py:489 aleksis/core/templates/core/group/list.html:8 +#: 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:56 +#: aleksis/core/data_checks.py:59 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 "" -#: aleksis/core/data_checks.py:291 +#: aleksis/core/data_checks.py:294 #, fuzzy #| msgid "Dashboard" msgid "Deactivate DashboardWidget" msgstr "Forum" -#: aleksis/core/data_checks.py:303 +#: aleksis/core/data_checks.py:306 msgid "Ensure that there are no broken DashboardWidgets." msgstr "" -#: aleksis/core/data_checks.py:304 +#: aleksis/core/data_checks.py:307 msgid "The DashboardWidget was reported broken automatically." msgstr "" +#: aleksis/core/data_checks.py:330 +#, python-format +msgid "Validate field %s of model %s." +msgstr "" + +#: aleksis/core/data_checks.py:332 +#, python-format +msgid "The field %s couldn't be validated successfully." +msgstr "" + #: aleksis/core/feeds.py:52 msgid "Birthday Calendar" msgstr "" @@ -119,11 +129,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 "Grex" @@ -131,7 +141,7 @@ msgstr "Grex" msgid "Base data" msgstr "" -#: aleksis/core/forms.py:55 +#: aleksis/core/forms.py:55 aleksis/core/tables.py:47 #, fuzzy #| msgid "E-mail address" msgid "Address" @@ -163,7 +173,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 "Anus scolae" @@ -174,7 +184,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:159 +#: aleksis/core/menus.py:160 aleksis/core/models.py:164 #: aleksis/core/templates/core/person/list.html:8 #: aleksis/core/templates/core/person/list.html:9 msgid "Persons" @@ -186,18 +196,18 @@ msgstr "personae" msgid "Additional data" msgstr "addita nomines" -#: 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 "Photographia" #: aleksis/core/forms.py:199 aleksis/core/forms.py:202 -#: aleksis/core/models.py:79 +#: aleksis/core/models.py:84 msgid "Date" msgstr "dies" #: aleksis/core/forms.py:200 aleksis/core/forms.py:203 -#: aleksis/core/models.py:87 +#: aleksis/core/models.py:92 msgid "Time" msgstr "tempus" @@ -233,11 +243,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 "Primus nomen" -#: aleksis/core/forms.py:419 aleksis/core/models.py:188 +#: aleksis/core/forms.py:419 aleksis/core/models.py:193 msgid "Last name" msgstr "Secondus nomen" @@ -352,13 +362,13 @@ msgstr "Forum" msgid "Admin" msgstr "Administratio" -#: aleksis/core/menus.py:47 aleksis/core/models.py:867 +#: 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:137 +#: 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" @@ -418,7 +428,7 @@ msgstr "Nuntii" msgid "People" msgstr "Personae" -#: aleksis/core/menus.py:182 aleksis/core/models.py:1101 +#: 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 @@ -430,7 +440,7 @@ msgstr "Greges" msgid "Groups and child groups" msgstr "" -#: aleksis/core/menus.py:204 aleksis/core/models.py:537 +#: 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 @@ -507,651 +517,655 @@ msgstr "nomen retractare" msgid "Linked school term" msgstr "Muta anum scolae" -#: 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 "Dies et hora" -#: 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 "Inscriptio electronica" -#: aleksis/core/models.py:83 +#: aleksis/core/models.py:88 msgid "Integer" msgstr "" -#: aleksis/core/models.py:84 +#: aleksis/core/models.py:89 #, fuzzy #| msgid "E-mail address" msgid "IP address" msgstr "Inscriptio electronica" -#: 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 "" -#: 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 msgid "Name" msgstr "Nomen" -#: 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:163 aleksis/core/models.py:1024 +#: aleksis/core/models.py:1381 msgid "Person" msgstr "Persona" -#: aleksis/core/models.py:161 +#: aleksis/core/models.py:166 #, fuzzy #| msgid "E-mail address" msgid "Can view address" msgstr "Inscriptio electronica" -#: aleksis/core/models.py:162 +#: aleksis/core/models.py:167 #, fuzzy #| msgid "E-mail address" msgid "Can view contact details" msgstr "Inscriptio electronica" -#: aleksis/core/models.py:163 +#: aleksis/core/models.py:168 #, fuzzy #| msgid "E-mail address" msgid "Can view photo" msgstr "Inscriptio electronica" -#: aleksis/core/models.py:164 +#: aleksis/core/models.py:169 #, fuzzy #| msgid "E-mail address" msgid "Can view avatar image" msgstr "Inscriptio electronica" -#: aleksis/core/models.py:165 +#: aleksis/core/models.py:170 #, fuzzy #| msgid "Persons and accounts" msgid "Can view persons groups" msgstr "Personae et computi" -#: aleksis/core/models.py:166 +#: aleksis/core/models.py:171 #, fuzzy #| msgid "Stop impersonation" msgid "Can view personal details" msgstr "Simulandum aliquem finire" -#: aleksis/core/models.py:176 +#: aleksis/core/models.py:181 msgid "female" msgstr "femininum" -#: aleksis/core/models.py:176 +#: aleksis/core/models.py:181 msgid "male" msgstr "maskulinum" -#: 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:1283 msgid "Linked user" msgstr "" -#: aleksis/core/models.py:190 +#: aleksis/core/models.py:195 msgid "Additional name(s)" msgstr "addita nomines" -#: aleksis/core/models.py:194 aleksis/core/models.py:506 +#: aleksis/core/models.py:199 aleksis/core/models.py:511 msgid "Short name" msgstr "Breve nomen" -#: aleksis/core/models.py:197 +#: aleksis/core/models.py:202 msgid "Street" msgstr "Via" -#: aleksis/core/models.py:198 +#: aleksis/core/models.py:203 msgid "Street number" msgstr "Numerus domini" -#: aleksis/core/models.py:199 +#: aleksis/core/models.py:204 msgid "Postal code" msgstr "Numerus directorius" -#: aleksis/core/models.py:200 +#: aleksis/core/models.py:205 msgid "Place" msgstr "Urbs" -#: aleksis/core/models.py:202 aleksis/core/templates/core/person/full.html:160 +#: aleksis/core/models.py:207 aleksis/core/templates/core/person/full.html:160 msgid "Home phone" msgstr "Numerus telephoni domi" -#: aleksis/core/models.py:203 aleksis/core/templates/core/person/full.html:170 +#: aleksis/core/models.py:208 aleksis/core/templates/core/person/full.html:170 msgid "Mobile phone" msgstr "Numerus telephoni mobilis" -#: aleksis/core/models.py:207 +#: aleksis/core/models.py:212 msgid "Date of birth" msgstr "Dies natalis" -#: aleksis/core/models.py:208 +#: aleksis/core/models.py:213 #, fuzzy #| msgid "Date of birth" msgid "Place of birth" msgstr "Dies natalis" -#: aleksis/core/models.py:209 +#: aleksis/core/models.py:214 msgid "Sex" msgstr "Genus" -#: 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 "" -#: 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 aleksis/core/templates/core/person/full.html:235 msgid "Guardians / Parents" msgstr "Parentes" -#: 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:839 +#: aleksis/core/models.py:1104 msgid "Description" msgstr "Descriptio" -#: 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 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 #, fuzzy #| msgid "Site description" msgid "Help text / description" msgstr "Descriptio paginae" -#: aleksis/core/models.py:470 +#: aleksis/core/models.py:475 #, fuzzy #| msgid "Additional name(s)" msgid "Addtitional field for groups" msgstr "addita nomines" -#: aleksis/core/models.py:471 +#: aleksis/core/models.py:476 #, fuzzy #| msgid "Additional name(s)" msgid "Addtitional fields for groups" msgstr "addita nomines" -#: 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 #, fuzzy #| msgid "Persons and accounts" msgid "Can view statistics about group." msgstr "Personae et computi" -#: aleksis/core/models.py:504 +#: aleksis/core/models.py:509 #, fuzzy #| msgid "Last name" msgid "Long name" msgstr "Secondus nomen" -#: 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:723 aleksis/core/models.py:747 +#: aleksis/core/models.py:838 #: aleksis/core/templates/core/announcement/list.html:18 msgid "Title" msgstr "Titulus" -#: 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 "Mittens" -#: 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:751 #, fuzzy #| msgid "Notification" msgid "Send notification at" msgstr "Nuntius" -#: aleksis/core/models.py:748 +#: aleksis/core/models.py:753 msgid "Read" msgstr "" -#: aleksis/core/models.py:749 +#: aleksis/core/models.py:754 msgid "Sent" msgstr "" -#: aleksis/core/models.py:766 +#: aleksis/core/models.py:771 #, fuzzy #| msgid "Notifications" msgid "Notification" msgstr "Nuntii" -#: aleksis/core/models.py:767 aleksis/core/preferences.py:29 +#: 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 msgid "Notifications" msgstr "Nuntii" -#: aleksis/core/models.py:835 +#: aleksis/core/models.py:840 msgid "Link to detailed view" msgstr "" -#: aleksis/core/models.py:838 +#: aleksis/core/models.py:843 msgid "Date and time from when to show" msgstr "" -#: aleksis/core/models.py:841 +#: aleksis/core/models.py:846 msgid "Date and time until when to show" msgstr "" -#: aleksis/core/models.py:866 +#: aleksis/core/models.py:871 #, fuzzy #| msgid "Announcements" msgid "Announcement" msgstr "Nuntii" -#: aleksis/core/models.py:904 +#: aleksis/core/models.py:909 #, fuzzy #| msgid "Announcements" msgid "Announcement recipient" msgstr "Nuntii" -#: aleksis/core/models.py:905 +#: aleksis/core/models.py:910 #, fuzzy #| msgid "Announcements" msgid "Announcement recipients" msgstr "Nuntii" -#: aleksis/core/models.py:927 +#: aleksis/core/models.py:932 #, fuzzy #| msgid "Site title" msgid "Widget Title" msgstr "Titulus paginae" -#: aleksis/core/models.py:928 +#: aleksis/core/models.py:933 msgid "Activate Widget" msgstr "" -#: aleksis/core/models.py:929 +#: aleksis/core/models.py:934 #, fuzzy #| msgid "Site title" msgid "Widget is broken" msgstr "Titulus paginae" -#: aleksis/core/models.py:932 +#: aleksis/core/models.py:937 msgid "Size on mobile devices" msgstr "" -#: aleksis/core/models.py:933 +#: aleksis/core/models.py:938 msgid "<= 600 px, 12 columns" msgstr "" -#: aleksis/core/models.py:938 +#: aleksis/core/models.py:943 msgid "Size on tablet devices" msgstr "" -#: aleksis/core/models.py:939 +#: aleksis/core/models.py:944 msgid "> 600 px, 12 columns" msgstr "" -#: aleksis/core/models.py:944 +#: aleksis/core/models.py:949 msgid "Size on desktop devices" msgstr "" -#: aleksis/core/models.py:945 +#: aleksis/core/models.py:950 msgid "> 992 px, 12 columns" msgstr "" -#: aleksis/core/models.py:950 +#: aleksis/core/models.py:955 msgid "Size on large desktop devices" msgstr "" -#: aleksis/core/models.py:951 +#: aleksis/core/models.py:956 msgid "> 1200 px>, 12 columns" msgstr "" -#: aleksis/core/models.py:982 +#: aleksis/core/models.py:987 #, fuzzy #| msgid "Dashboard" msgid "Can edit default dashboard" msgstr "Forum" -#: aleksis/core/models.py:983 +#: aleksis/core/models.py:988 #, fuzzy #| msgid "Dashboard" msgid "Dashboard Widget" msgstr "Forum" -#: aleksis/core/models.py:984 +#: aleksis/core/models.py:989 #, fuzzy #| msgid "Dashboard" msgid "Dashboard Widgets" msgstr "Forum" -#: aleksis/core/models.py:990 +#: aleksis/core/models.py:995 msgid "URL" msgstr "" -#: aleksis/core/models.py:991 +#: aleksis/core/models.py:996 #, fuzzy #| msgid "Icon" msgid "Icon URL" msgstr "Nota" -#: aleksis/core/models.py:997 +#: aleksis/core/models.py:1002 msgid "External link widget" msgstr "" -#: aleksis/core/models.py:998 +#: aleksis/core/models.py:1003 msgid "External link widgets" msgstr "" -#: aleksis/core/models.py:1004 +#: aleksis/core/models.py:1009 msgid "Content" msgstr "" -#: aleksis/core/models.py:1010 +#: aleksis/core/models.py:1015 msgid "Static content widget" msgstr "" -#: aleksis/core/models.py:1011 +#: aleksis/core/models.py:1016 msgid "Static content widgets" msgstr "" -#: aleksis/core/models.py:1016 +#: aleksis/core/models.py:1021 #, fuzzy #| msgid "Dashboard" msgid "Dashboard widget" msgstr "Forum" -#: aleksis/core/models.py:1021 +#: aleksis/core/models.py:1026 msgid "Order" msgstr "" -#: aleksis/core/models.py:1022 +#: aleksis/core/models.py:1027 msgid "Part of the default dashboard" msgstr "" -#: aleksis/core/models.py:1037 +#: aleksis/core/models.py:1042 #, fuzzy #| msgid "Dashboard" msgid "Dashboard widget order" msgstr "Forum" -#: aleksis/core/models.py:1038 +#: aleksis/core/models.py:1043 #, fuzzy #| msgid "Dashboard" msgid "Dashboard widget orders" msgstr "Forum" -#: aleksis/core/models.py:1044 +#: aleksis/core/models.py:1049 msgid "Menu ID" msgstr "" -#: aleksis/core/models.py:1057 +#: aleksis/core/models.py:1062 msgid "Custom menu" msgstr "" -#: aleksis/core/models.py:1058 +#: aleksis/core/models.py:1063 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/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: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 #, fuzzy #| msgid "Group" msgid "Group type" msgstr "Grex" -#: aleksis/core/models.py:1114 +#: aleksis/core/models.py:1124 #, fuzzy #| msgid "System status" msgid "Can view system status" msgstr "Status systemae" -#: aleksis/core/models.py:1115 +#: aleksis/core/models.py:1125 #, fuzzy #| msgid "Data management" msgid "Can manage data" msgstr "Adminstratio datarum" -#: aleksis/core/models.py:1116 +#: aleksis/core/models.py:1126 #, fuzzy #| msgid "Stop impersonation" msgid "Can impersonate" msgstr "Simulandum aliquem finire" -#: 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 "" -#: aleksis/core/models.py:1122 +#: aleksis/core/models.py:1132 #, fuzzy #| msgid "Stop impersonation" msgid "Can invite persons" msgstr "Simulandum aliquem finire" -#: aleksis/core/models.py:1158 +#: aleksis/core/models.py:1168 msgid "Related data check task" msgstr "" -#: aleksis/core/models.py:1166 +#: aleksis/core/models.py:1176 msgid "Issue solved" msgstr "" -#: aleksis/core/models.py:1167 +#: aleksis/core/models.py:1177 #, fuzzy #| msgid "Notifications" msgid "Notification sent" msgstr "Nuntii" -#: aleksis/core/models.py:1180 +#: aleksis/core/models.py:1190 msgid "Data check result" msgstr "" -#: aleksis/core/models.py:1181 +#: aleksis/core/models.py:1191 msgid "Data check results" msgstr "" -#: aleksis/core/models.py:1183 +#: aleksis/core/models.py:1193 msgid "Can run data checks" msgstr "" -#: aleksis/core/models.py:1184 +#: aleksis/core/models.py:1194 msgid "Can solve data check problems" msgstr "" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1201 #, fuzzy #| msgid "E-mail address" msgid "E-Mail address" msgstr "Inscriptio electronica" -#: aleksis/core/models.py:1223 +#: aleksis/core/models.py:1233 msgid "Owner" msgstr "" -#: aleksis/core/models.py:1227 +#: aleksis/core/models.py:1237 msgid "File expires at" msgstr "" -#: aleksis/core/models.py:1229 +#: aleksis/core/models.py:1239 msgid "Generated HTML file" msgstr "" -#: aleksis/core/models.py:1231 +#: aleksis/core/models.py:1241 msgid "Generated PDF file" msgstr "" -#: aleksis/core/models.py:1238 +#: aleksis/core/models.py:1248 msgid "PDF file" msgstr "" -#: aleksis/core/models.py:1239 +#: aleksis/core/models.py:1249 msgid "PDF files" msgstr "" -#: aleksis/core/models.py:1244 +#: aleksis/core/models.py:1254 msgid "Task result" msgstr "" -#: aleksis/core/models.py:1247 +#: aleksis/core/models.py:1257 msgid "Task user" msgstr "" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1269 msgid "Task user assignment" msgstr "" -#: aleksis/core/models.py:1260 +#: aleksis/core/models.py:1270 msgid "Task user assignments" msgstr "" -#: aleksis/core/models.py:1276 +#: aleksis/core/models.py:1286 #, fuzzy #| msgid "Additional name(s)" msgid "Additional attributes" msgstr "addita nomines" -#: aleksis/core/models.py:1314 +#: aleksis/core/models.py:1324 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 "" -#: aleksis/core/models.py:1377 +#: aleksis/core/models.py:1387 msgid "Selected ICal feed" msgstr "" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1396 msgid "Personal Calendar URL" msgstr "" -#: aleksis/core/models.py:1387 +#: aleksis/core/models.py:1397 msgid "Personal Calendar URLs" msgstr "" @@ -1315,96 +1329,96 @@ msgstr "" msgid "Allowed Grant Flows for OAuth applications" msgstr "Inscriptio electronica" -#: aleksis/core/preferences.py:344 -msgid "Available languages" -msgstr "" - -#: aleksis/core/preferences.py:357 +#: aleksis/core/preferences.py:343 msgid "Send emails if data checks detect problems" msgstr "" -#: aleksis/core/preferences.py:368 +#: aleksis/core/preferences.py:354 msgid "Email recipients for data checks problem emails" msgstr "" -#: aleksis/core/preferences.py:379 +#: aleksis/core/preferences.py:365 msgid "Email recipient groups for data checks problem emails" msgstr "" -#: aleksis/core/preferences.py:388 +#: aleksis/core/preferences.py:374 msgid "Show dashboard to users without login" msgstr "" -#: aleksis/core/preferences.py:397 +#: aleksis/core/preferences.py:383 msgid "Allow users to edit their dashboard" msgstr "" -#: aleksis/core/preferences.py:408 +#: aleksis/core/preferences.py:394 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:437 +#: aleksis/core/preferences.py:423 msgid "Contact for notification if a person changes their data" msgstr "" -#: aleksis/core/preferences.py:448 +#: aleksis/core/preferences.py:434 msgid "Prefer personal photos over avatars" msgstr "" -#: aleksis/core/preferences.py:458 +#: aleksis/core/preferences.py:444 msgid "PDF file expiration duration" msgstr "" -#: aleksis/core/preferences.py:459 +#: aleksis/core/preferences.py:445 msgid "in minutes" msgstr "" -#: aleksis/core/preferences.py:469 +#: aleksis/core/preferences.py:455 msgid "Automatically update the dashboard and its widgets" msgstr "" -#: aleksis/core/preferences.py:479 +#: aleksis/core/preferences.py:465 msgid "Automatically update the dashboard and its widgets sitewide" msgstr "" -#: aleksis/core/preferences.py:489 +#: aleksis/core/preferences.py:475 msgid "Country for phone number parsing" msgstr "" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:541 msgid "English" msgstr "Britannicus" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:542 msgid "German" msgstr "Germanus" -#: aleksis/core/tables.py:24 +#: aleksis/core/settings.py:543 +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/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 "" -#: 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 #, fuzzy #| msgid "Notifications" msgid "Actions" msgstr "Nuntii" -#: 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 @@ -1443,7 +1457,7 @@ msgstr "" #: aleksis/core/templates/500.html:10 msgid "" "An unexpected error has\n" -" occured." +" occurred." msgstr "" #: aleksis/core/templates/500.html:13 @@ -1975,36 +1989,36 @@ msgstr "" msgid "Edit group" msgstr "" -#: aleksis/core/templates/core/group/full.html:38 +#: 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 "" -#: aleksis/core/templates/core/group/full.html:64 +#: aleksis/core/templates/core/group/full.html:68 #, fuzzy #| msgid "System status" msgid "Statistics" msgstr "Status systemae" -#: 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 " +#: aleksis/core/templates/core/group/full.html:93 +#, python-format +msgid "" +"\n" +" %(min)s years to %(max)s years\n" +" " msgstr "" #: aleksis/core/templates/core/group/list.html:14 @@ -2060,7 +2074,7 @@ msgstr "" #: aleksis/core/templates/core/ical/ical_list.html:4 #: aleksis/core/templates/core/ical/ical_list.html:5 -msgid "ICal Feeds" +msgid "iCal Feeds" msgstr "" #: aleksis/core/templates/core/ical/ical_list.html:8 @@ -2362,11 +2376,11 @@ 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 "" @@ -3325,172 +3339,174 @@ msgstr "" msgid "Download PDF" msgstr "" -#: aleksis/core/views.py:292 +#: aleksis/core/views.py:294 msgid "The school term has been created." msgstr "" -#: aleksis/core/views.py:304 +#: aleksis/core/views.py:306 msgid "The school term has been saved." msgstr "" -#: aleksis/core/views.py:424 +#: aleksis/core/views.py:426 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 msgid "The person has been saved." msgstr "" -#: aleksis/core/views.py:503 +#: aleksis/core/views.py:505 msgid "The group has been saved." msgstr "" -#: aleksis/core/views.py:600 +#: aleksis/core/views.py:602 msgid "The announcement has been saved." msgstr "" -#: aleksis/core/views.py:616 +#: aleksis/core/views.py:618 msgid "The announcement has been deleted." msgstr "" -#: aleksis/core/views.py:684 +#: aleksis/core/views.py:686 msgid "The requested preference registry does not exist" msgstr "" -#: aleksis/core/views.py:703 +#: aleksis/core/views.py:705 msgid "The preferences have been saved successfully." msgstr "" -#: aleksis/core/views.py:727 +#: aleksis/core/views.py:729 msgid "The person has been deleted." msgstr "" -#: aleksis/core/views.py:741 +#: aleksis/core/views.py:743 msgid "The group has been deleted." msgstr "" -#: aleksis/core/views.py:773 -msgid "The additional_field has been saved." -msgstr "" +#: aleksis/core/views.py:775 +#, fuzzy +#| msgid "Additional name(s)" +msgid "The additional field has been saved." +msgstr "addita nomines" -#: aleksis/core/views.py:807 +#: aleksis/core/views.py:809 msgid "The additional field has been deleted." msgstr "" -#: aleksis/core/views.py:832 +#: aleksis/core/views.py:834 msgid "The group type has been saved." msgstr "" -#: aleksis/core/views.py:862 +#: aleksis/core/views.py:864 msgid "The group type has been deleted." msgstr "" -#: aleksis/core/views.py:895 +#: aleksis/core/views.py:897 msgid "Progress: Run data checks" msgstr "" -#: aleksis/core/views.py:896 +#: aleksis/core/views.py:898 #, fuzzy #| msgid "System status" msgid "Run data checks …" msgstr "Status systemae" -#: aleksis/core/views.py:897 +#: aleksis/core/views.py:899 msgid "The data checks were run successfully." msgstr "" -#: aleksis/core/views.py:898 +#: aleksis/core/views.py:900 msgid "There was a problem while running data checks." msgstr "" -#: aleksis/core/views.py:914 +#: aleksis/core/views.py:916 #, python-brace-format msgid "The solve option '{solve_option_obj.verbose_name}' " msgstr "" -#: aleksis/core/views.py:924 +#: aleksis/core/views.py:926 msgid "The requested solve option does not exist" msgstr "" -#: aleksis/core/views.py:956 +#: aleksis/core/views.py:958 msgid "The dashboard widget has been saved." msgstr "" -#: aleksis/core/views.py:986 +#: aleksis/core/views.py:988 msgid "The dashboard widget has been created." msgstr "" -#: aleksis/core/views.py:996 +#: aleksis/core/views.py:998 msgid "The dashboard widget has been deleted." msgstr "" -#: aleksis/core/views.py:1067 +#: aleksis/core/views.py:1069 msgid "Your dashboard configuration has been saved successfully." msgstr "" -#: aleksis/core/views.py:1069 +#: aleksis/core/views.py:1071 msgid "The configuration of the default dashboard has been saved successfully." msgstr "" -#: aleksis/core/views.py:1145 +#: aleksis/core/views.py:1147 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "" -#: aleksis/core/views.py:1236 +#: aleksis/core/views.py:1238 msgid "We have successfully assigned the permissions." msgstr "" -#: aleksis/core/views.py:1246 +#: aleksis/core/views.py:1248 msgid "The global user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1256 +#: aleksis/core/views.py:1258 msgid "The global group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1266 +#: aleksis/core/views.py:1268 msgid "The object user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1276 +#: aleksis/core/views.py:1278 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 "" -#: 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 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:1498 +#: aleksis/core/views.py:1500 msgid "Person was already invited." msgstr "" -#: aleksis/core/views.py:1598 -msgid "ICal feed updated successfully" +#: aleksis/core/views.py:1600 +msgid "iCal feed updated successfully" msgstr "" -#: aleksis/core/views.py:1608 -msgid "ICal feed deleted successfully" +#: aleksis/core/views.py:1610 +msgid "iCal feed deleted successfully" msgstr "" -#: aleksis/core/views.py:1616 -msgid "ICal feed created successfully" +#: aleksis/core/views.py:1618 +msgid "iCal feed created successfully" msgstr "" #, fuzzy diff --git a/aleksis/core/locale/la/LC_MESSAGES/djangojs.po b/aleksis/core/locale/la/LC_MESSAGES/djangojs.po index 509b8a65f4bdbc6ac9c1ec0282c1ff99b6f1f8c1..26f9dbd80e1c93710efaf2abf60ffd0754e043b6 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po index 9f0be4386a3358d3d0594f80838759c88c9c6c08..c5d7f44167fc0d9207afcc857d56d3fecb23e834 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -38,33 +38,43 @@ 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/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:59 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 "" -#: aleksis/core/data_checks.py:291 +#: aleksis/core/data_checks.py:294 msgid "Deactivate DashboardWidget" msgstr "" -#: aleksis/core/data_checks.py:303 +#: aleksis/core/data_checks.py:306 msgid "Ensure that there are no broken DashboardWidgets." msgstr "" -#: aleksis/core/data_checks.py:304 +#: aleksis/core/data_checks.py:307 msgid "The DashboardWidget was reported broken automatically." msgstr "" +#: aleksis/core/data_checks.py:330 +#, python-format +msgid "Validate field %s of model %s." +msgstr "" + +#: aleksis/core/data_checks.py:332 +#, python-format +msgid "The field %s couldn't be validated successfully." +msgstr "" + #: aleksis/core/feeds.py:52 msgid "Birthday Calendar" msgstr "" @@ -108,11 +118,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 "" @@ -120,7 +130,7 @@ msgstr "" msgid "Base data" msgstr "" -#: aleksis/core/forms.py:55 +#: aleksis/core/forms.py:55 aleksis/core/tables.py:47 msgid "Address" msgstr "" @@ -148,7 +158,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 "" @@ -157,7 +167,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/menus.py:160 aleksis/core/models.py:164 #: aleksis/core/templates/core/person/list.html:8 #: aleksis/core/templates/core/person/list.html:9 msgid "Persons" @@ -167,18 +177,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 "" @@ -214,11 +224,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 "" @@ -321,13 +331,13 @@ msgstr "" msgid "Admin" msgstr "" -#: aleksis/core/menus.py:47 aleksis/core/models.py:867 +#: 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:137 +#: 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" @@ -379,7 +389,7 @@ msgstr "" msgid "People" msgstr "" -#: aleksis/core/menus.py:182 aleksis/core/models.py:1101 +#: 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" @@ -389,7 +399,7 @@ msgstr "" msgid "Groups and child groups" msgstr "" -#: aleksis/core/menus.py:204 aleksis/core/models.py:537 +#: 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" @@ -456,581 +466,585 @@ msgstr "" 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 "" -#: 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 "" -#: 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 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:163 aleksis/core/models.py:1024 +#: aleksis/core/models.py:1381 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:1283 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 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 aleksis/core/templates/core/person/full.html:160 msgid "Home phone" msgstr "" -#: aleksis/core/models.py:203 aleksis/core/templates/core/person/full.html:170 +#: aleksis/core/models.py:208 aleksis/core/templates/core/person/full.html:170 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 +#: 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 aleksis/core/templates/core/person/full.html:235 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:839 +#: 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 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 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:723 aleksis/core/models.py:747 +#: aleksis/core/models.py:838 #: 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:751 msgid "Send notification at" msgstr "" -#: aleksis/core/models.py:748 +#: aleksis/core/models.py:753 msgid "Read" msgstr "" -#: aleksis/core/models.py:749 +#: aleksis/core/models.py:754 msgid "Sent" msgstr "" -#: aleksis/core/models.py:766 +#: aleksis/core/models.py:771 msgid "Notification" msgstr "" -#: aleksis/core/models.py:767 aleksis/core/preferences.py:29 +#: 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 msgid "Notifications" msgstr "" -#: aleksis/core/models.py:835 +#: aleksis/core/models.py:840 msgid "Link to detailed view" msgstr "" -#: aleksis/core/models.py:838 +#: aleksis/core/models.py:843 msgid "Date and time from when to show" msgstr "" -#: aleksis/core/models.py:841 +#: aleksis/core/models.py:846 msgid "Date and time until when to show" msgstr "" -#: aleksis/core/models.py:866 +#: aleksis/core/models.py:871 msgid "Announcement" msgstr "" -#: aleksis/core/models.py:904 +#: aleksis/core/models.py:909 msgid "Announcement recipient" msgstr "" -#: aleksis/core/models.py:905 +#: aleksis/core/models.py:910 msgid "Announcement recipients" msgstr "" -#: aleksis/core/models.py:927 +#: aleksis/core/models.py:932 msgid "Widget Title" msgstr "" -#: aleksis/core/models.py:928 +#: aleksis/core/models.py:933 msgid "Activate Widget" msgstr "" -#: aleksis/core/models.py:929 +#: aleksis/core/models.py:934 msgid "Widget is broken" msgstr "" -#: aleksis/core/models.py:932 +#: aleksis/core/models.py:937 msgid "Size on mobile devices" msgstr "" -#: aleksis/core/models.py:933 +#: aleksis/core/models.py:938 msgid "<= 600 px, 12 columns" msgstr "" -#: aleksis/core/models.py:938 +#: aleksis/core/models.py:943 msgid "Size on tablet devices" msgstr "" -#: aleksis/core/models.py:939 +#: aleksis/core/models.py:944 msgid "> 600 px, 12 columns" msgstr "" -#: aleksis/core/models.py:944 +#: aleksis/core/models.py:949 msgid "Size on desktop devices" msgstr "" -#: aleksis/core/models.py:945 +#: aleksis/core/models.py:950 msgid "> 992 px, 12 columns" msgstr "" -#: aleksis/core/models.py:950 +#: aleksis/core/models.py:955 msgid "Size on large desktop devices" msgstr "" -#: aleksis/core/models.py:951 +#: aleksis/core/models.py:956 msgid "> 1200 px>, 12 columns" msgstr "" -#: aleksis/core/models.py:982 +#: aleksis/core/models.py:987 msgid "Can edit default dashboard" msgstr "" -#: aleksis/core/models.py:983 +#: aleksis/core/models.py:988 msgid "Dashboard Widget" msgstr "" -#: aleksis/core/models.py:984 +#: aleksis/core/models.py:989 msgid "Dashboard Widgets" msgstr "" -#: aleksis/core/models.py:990 +#: aleksis/core/models.py:995 msgid "URL" msgstr "" -#: aleksis/core/models.py:991 +#: aleksis/core/models.py:996 msgid "Icon URL" msgstr "" -#: aleksis/core/models.py:997 +#: aleksis/core/models.py:1002 msgid "External link widget" msgstr "" -#: aleksis/core/models.py:998 +#: aleksis/core/models.py:1003 msgid "External link widgets" msgstr "" -#: aleksis/core/models.py:1004 +#: aleksis/core/models.py:1009 msgid "Content" msgstr "" -#: aleksis/core/models.py:1010 +#: aleksis/core/models.py:1015 msgid "Static content widget" msgstr "" -#: aleksis/core/models.py:1011 +#: aleksis/core/models.py:1016 msgid "Static content widgets" msgstr "" -#: aleksis/core/models.py:1016 +#: aleksis/core/models.py:1021 msgid "Dashboard widget" msgstr "" -#: aleksis/core/models.py:1021 +#: aleksis/core/models.py:1026 msgid "Order" msgstr "" -#: aleksis/core/models.py:1022 +#: aleksis/core/models.py:1027 msgid "Part of the default dashboard" msgstr "" -#: aleksis/core/models.py:1037 +#: aleksis/core/models.py:1042 msgid "Dashboard widget order" msgstr "" -#: aleksis/core/models.py:1038 +#: aleksis/core/models.py:1043 msgid "Dashboard widget orders" msgstr "" -#: aleksis/core/models.py:1044 +#: aleksis/core/models.py:1049 msgid "Menu ID" msgstr "" -#: aleksis/core/models.py:1057 +#: aleksis/core/models.py:1062 msgid "Custom menu" msgstr "" -#: aleksis/core/models.py:1058 +#: aleksis/core/models.py:1063 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/models.py:1079 aleksis/core/models.py:1330 #: 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: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 "" -#: 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 msgid "Related data check task" msgstr "" -#: aleksis/core/models.py:1166 +#: aleksis/core/models.py:1176 msgid "Issue solved" msgstr "" -#: aleksis/core/models.py:1167 +#: aleksis/core/models.py:1177 msgid "Notification sent" msgstr "" -#: aleksis/core/models.py:1180 +#: aleksis/core/models.py:1190 msgid "Data check result" msgstr "" -#: aleksis/core/models.py:1181 +#: aleksis/core/models.py:1191 msgid "Data check results" msgstr "" -#: aleksis/core/models.py:1183 +#: aleksis/core/models.py:1193 msgid "Can run data checks" msgstr "" -#: aleksis/core/models.py:1184 +#: aleksis/core/models.py:1194 msgid "Can solve data check problems" msgstr "" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1201 msgid "E-Mail address" msgstr "" -#: aleksis/core/models.py:1223 +#: aleksis/core/models.py:1233 msgid "Owner" msgstr "" -#: aleksis/core/models.py:1227 +#: aleksis/core/models.py:1237 msgid "File expires at" msgstr "" -#: aleksis/core/models.py:1229 +#: aleksis/core/models.py:1239 msgid "Generated HTML file" msgstr "" -#: aleksis/core/models.py:1231 +#: aleksis/core/models.py:1241 msgid "Generated PDF file" msgstr "" -#: aleksis/core/models.py:1238 +#: aleksis/core/models.py:1248 msgid "PDF file" msgstr "" -#: aleksis/core/models.py:1239 +#: aleksis/core/models.py:1249 msgid "PDF files" msgstr "" -#: aleksis/core/models.py:1244 +#: aleksis/core/models.py:1254 msgid "Task result" msgstr "" -#: aleksis/core/models.py:1247 +#: aleksis/core/models.py:1257 msgid "Task user" msgstr "" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1269 msgid "Task user assignment" msgstr "" -#: aleksis/core/models.py:1260 +#: aleksis/core/models.py:1270 msgid "Task user assignments" msgstr "" -#: aleksis/core/models.py:1276 +#: aleksis/core/models.py:1286 msgid "Additional attributes" msgstr "" -#: aleksis/core/models.py:1314 +#: aleksis/core/models.py:1324 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 "" -#: aleksis/core/models.py:1377 +#: aleksis/core/models.py:1387 msgid "Selected ICal feed" msgstr "" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1396 msgid "Personal Calendar URL" msgstr "" -#: aleksis/core/models.py:1387 +#: aleksis/core/models.py:1397 msgid "Personal Calendar URLs" msgstr "" @@ -1178,94 +1192,94 @@ msgstr "" msgid "Allowed Grant Flows for OAuth applications" msgstr "" -#: aleksis/core/preferences.py:344 -msgid "Available languages" -msgstr "" - -#: aleksis/core/preferences.py:357 +#: aleksis/core/preferences.py:343 msgid "Send emails if data checks detect problems" msgstr "" -#: aleksis/core/preferences.py:368 +#: aleksis/core/preferences.py:354 msgid "Email recipients for data checks problem emails" msgstr "" -#: aleksis/core/preferences.py:379 +#: aleksis/core/preferences.py:365 msgid "Email recipient groups for data checks problem emails" msgstr "" -#: aleksis/core/preferences.py:388 +#: aleksis/core/preferences.py:374 msgid "Show dashboard to users without login" msgstr "" -#: aleksis/core/preferences.py:397 +#: aleksis/core/preferences.py:383 msgid "Allow users to edit their dashboard" msgstr "" -#: aleksis/core/preferences.py:408 +#: aleksis/core/preferences.py:394 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:437 +#: aleksis/core/preferences.py:423 msgid "Contact for notification if a person changes their data" msgstr "" -#: aleksis/core/preferences.py:448 +#: aleksis/core/preferences.py:434 msgid "Prefer personal photos over avatars" msgstr "" -#: aleksis/core/preferences.py:458 +#: aleksis/core/preferences.py:444 msgid "PDF file expiration duration" msgstr "" -#: aleksis/core/preferences.py:459 +#: aleksis/core/preferences.py:445 msgid "in minutes" msgstr "" -#: aleksis/core/preferences.py:469 +#: aleksis/core/preferences.py:455 msgid "Automatically update the dashboard and its widgets" msgstr "" -#: aleksis/core/preferences.py:479 +#: aleksis/core/preferences.py:465 msgid "Automatically update the dashboard and its widgets sitewide" msgstr "" -#: aleksis/core/preferences.py:489 +#: aleksis/core/preferences.py:475 msgid "Country for phone number parsing" msgstr "" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:541 msgid "English" msgstr "" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:542 msgid "German" msgstr "" -#: aleksis/core/tables.py:24 +#: aleksis/core/settings.py:543 +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/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 "" -#: 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 @@ -1304,7 +1318,7 @@ msgstr "" #: aleksis/core/templates/500.html:10 msgid "" "An unexpected error has\n" -" occured." +" occurred." msgstr "" #: aleksis/core/templates/500.html:13 @@ -1804,34 +1818,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: aleksis/core/templates/core/group/full.html:38 +#: 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 "" -#: 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 " +#: aleksis/core/templates/core/group/full.html:93 +#, python-format +msgid "" +"\n" +" %(min)s years to %(max)s years\n" +" " msgstr "" #: aleksis/core/templates/core/group/list.html:14 @@ -1883,7 +1897,7 @@ msgstr "" #: aleksis/core/templates/core/ical/ical_list.html:4 #: aleksis/core/templates/core/ical/ical_list.html:5 -msgid "ICal Feeds" +msgid "iCal Feeds" msgstr "" #: aleksis/core/templates/core/ical/ical_list.html:8 @@ -2167,11 +2181,11 @@ 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 "" @@ -3089,170 +3103,170 @@ msgstr "" msgid "Download PDF" msgstr "" -#: aleksis/core/views.py:292 +#: aleksis/core/views.py:294 msgid "The school term has been created." msgstr "" -#: aleksis/core/views.py:304 +#: aleksis/core/views.py:306 msgid "The school term has been saved." msgstr "" -#: aleksis/core/views.py:424 +#: aleksis/core/views.py:426 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 msgid "The person has been saved." msgstr "" -#: aleksis/core/views.py:503 +#: aleksis/core/views.py:505 msgid "The group has been saved." msgstr "" -#: aleksis/core/views.py:600 +#: aleksis/core/views.py:602 msgid "The announcement has been saved." msgstr "" -#: aleksis/core/views.py:616 +#: aleksis/core/views.py:618 msgid "The announcement has been deleted." msgstr "" -#: aleksis/core/views.py:684 +#: aleksis/core/views.py:686 msgid "The requested preference registry does not exist" msgstr "" -#: aleksis/core/views.py:703 +#: aleksis/core/views.py:705 msgid "The preferences have been saved successfully." msgstr "" -#: aleksis/core/views.py:727 +#: aleksis/core/views.py:729 msgid "The person has been deleted." msgstr "" -#: aleksis/core/views.py:741 +#: aleksis/core/views.py:743 msgid "The group has been deleted." msgstr "" -#: aleksis/core/views.py:773 -msgid "The additional_field has been saved." +#: aleksis/core/views.py:775 +msgid "The additional field has been saved." msgstr "" -#: aleksis/core/views.py:807 +#: aleksis/core/views.py:809 msgid "The additional field has been deleted." msgstr "" -#: aleksis/core/views.py:832 +#: aleksis/core/views.py:834 msgid "The group type has been saved." msgstr "" -#: aleksis/core/views.py:862 +#: aleksis/core/views.py:864 msgid "The group type has been deleted." msgstr "" -#: aleksis/core/views.py:895 +#: aleksis/core/views.py:897 msgid "Progress: Run data checks" msgstr "" -#: aleksis/core/views.py:896 +#: aleksis/core/views.py:898 msgid "Run data checks …" msgstr "" -#: aleksis/core/views.py:897 +#: aleksis/core/views.py:899 msgid "The data checks were run successfully." msgstr "" -#: aleksis/core/views.py:898 +#: aleksis/core/views.py:900 msgid "There was a problem while running data checks." msgstr "" -#: aleksis/core/views.py:914 +#: aleksis/core/views.py:916 #, python-brace-format msgid "The solve option '{solve_option_obj.verbose_name}' " msgstr "" -#: aleksis/core/views.py:924 +#: aleksis/core/views.py:926 msgid "The requested solve option does not exist" msgstr "" -#: aleksis/core/views.py:956 +#: aleksis/core/views.py:958 msgid "The dashboard widget has been saved." msgstr "" -#: aleksis/core/views.py:986 +#: aleksis/core/views.py:988 msgid "The dashboard widget has been created." msgstr "" -#: aleksis/core/views.py:996 +#: aleksis/core/views.py:998 msgid "The dashboard widget has been deleted." msgstr "" -#: aleksis/core/views.py:1067 +#: aleksis/core/views.py:1069 msgid "Your dashboard configuration has been saved successfully." msgstr "" -#: aleksis/core/views.py:1069 +#: aleksis/core/views.py:1071 msgid "The configuration of the default dashboard has been saved successfully." msgstr "" -#: aleksis/core/views.py:1145 +#: aleksis/core/views.py:1147 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "" -#: aleksis/core/views.py:1236 +#: aleksis/core/views.py:1238 msgid "We have successfully assigned the permissions." msgstr "" -#: aleksis/core/views.py:1246 +#: aleksis/core/views.py:1248 msgid "The global user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1256 +#: aleksis/core/views.py:1258 msgid "The global group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1266 +#: aleksis/core/views.py:1268 msgid "The object user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1276 +#: aleksis/core/views.py:1278 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 "" -#: 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 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:1498 +#: aleksis/core/views.py:1500 msgid "Person was already invited." msgstr "" -#: aleksis/core/views.py:1598 -msgid "ICal feed updated successfully" +#: aleksis/core/views.py:1600 +msgid "iCal feed updated successfully" msgstr "" -#: aleksis/core/views.py:1608 -msgid "ICal feed deleted successfully" +#: aleksis/core/views.py:1610 +msgid "iCal feed deleted successfully" msgstr "" -#: aleksis/core/views.py:1616 -msgid "ICal feed created successfully" +#: aleksis/core/views.py:1618 +msgid "iCal feed created successfully" msgstr "" #~ msgid "Norwegian (bokmÃ¥l)" diff --git a/aleksis/core/locale/nb_NO/LC_MESSAGES/djangojs.po b/aleksis/core/locale/nb_NO/LC_MESSAGES/djangojs.po index 509b8a65f4bdbc6ac9c1ec0282c1ff99b6f1f8c1..26f9dbd80e1c93710efaf2abf60ffd0754e043b6 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/aleksis/core/locale/ru/LC_MESSAGES/django.po b/aleksis/core/locale/ru/LC_MESSAGES/django.po index d71890f30d63586d52c2df9eeef982226dc4b8d5..722b473df4cad72ab8b7988d21325946bc6db3ee 100644 --- a/aleksis/core/locale/ru/LC_MESSAGES/django.po +++ b/aleksis/core/locale/ru/LC_MESSAGES/django.po @@ -3,86 +3,89 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-05-24 19:37+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"Language: \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: 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 msgid "OpenID Connect scope" -msgstr "" +msgstr "Граница дейÑÑ‚Ð²Ð¸Ñ OpenID Connect" #: aleksis/core/apps.py:167 msgid "Given name, family name, link to profile and picture if existing." -msgstr "" +msgstr "ИмÑ, фамилиÑ, ÑÑылка на профиль и фото, еÑли еÑть." #: aleksis/core/apps.py:168 msgid "Full home postal address" -msgstr "" +msgstr "Полный домашний почтовый адреÑ" #: aleksis/core/apps.py:169 msgid "Email address" -msgstr "" +msgstr "ÐÐ´Ñ€ÐµÑ Ñл.почты" #: aleksis/core/apps.py:170 msgid "Home and mobile phone" -msgstr "" +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/templates/core/group/list.html:9 #: aleksis/core/templates/core/person/full.html:246 msgid "Groups" -msgstr "" +msgstr "Группы" #: aleksis/core/data_checks.py:56 msgid "Ignore problem" -msgstr "" +msgstr "Игнорировать проблему" #: aleksis/core/data_checks.py:185 #, python-brace-format msgid "Solve option '{solve_option_obj.verbose_name}' " -msgstr "" +msgstr "Вариант Ñ€ÐµÑˆÐµÐ½Ð¸Ñ '{solve_option_obj.verbose_name}' " #: aleksis/core/data_checks.py:291 msgid "Deactivate DashboardWidget" -msgstr "" +msgstr "Отключить виджет информпанели" #: aleksis/core/data_checks.py:303 msgid "Ensure that there are no broken DashboardWidgets." -msgstr "" +msgstr "УбедитеÑÑŒ в отÑутÑтвии Ñбойных виджетов на информапанели." #: aleksis/core/data_checks.py:304 msgid "The DashboardWidget was reported broken automatically." -msgstr "" +msgstr "Виджет информпанели Ñообщил о Ñбое в автоматичеÑком режиме." #: aleksis/core/feeds.py:52 msgid "Birthday Calendar" -msgstr "" +msgstr "Календарь Дней РождениÑ" #: aleksis/core/feeds.py:53 msgid "A Calendar of Birthdays" -msgstr "" +msgstr "Календарь Дней РождениÑ" #: aleksis/core/feeds.py:66 #, python-format msgid "%(name)s's birthday" -msgstr "" +msgstr "%(name)s отмечает День РождениÑ" #: aleksis/core/feeds.py:71 #, python-format msgid "%(name)s was born on %(birthday)s" -msgstr "" +msgstr "%(name)s родилÑÑ(-лаÑÑŒ) %(birthday)s" #: aleksis/core/filters.py:42 aleksis/core/templates/core/base.html:139 #: aleksis/core/templates/core/base.html:140 @@ -91,337 +94,339 @@ msgstr "" #: aleksis/core/templates/search/search.html:7 #: aleksis/core/templates/search/search.html:22 msgid "Search" -msgstr "" +msgstr "ПоиÑк" #: aleksis/core/filters.py:59 msgid "Search by name" -msgstr "" +msgstr "ПоиÑк по имени" #: aleksis/core/filters.py:71 msgid "Search by contact details" -msgstr "" +msgstr "ПоиÑк по контактным данным" #: aleksis/core/filters.py:92 msgid "Permission" -msgstr "" +msgstr "Разрешение" #: aleksis/core/filters.py:100 msgid "Content type" -msgstr "" +msgstr "Тип Ñодержимого" #: aleksis/core/filters.py:113 aleksis/core/models.py:715 msgid "User" -msgstr "" +msgstr "Пользователь" #: aleksis/core/filters.py:135 aleksis/core/models.py:488 msgid "Group" -msgstr "" +msgstr "Группа" #: aleksis/core/forms.py:50 aleksis/core/forms.py:581 msgid "Base data" -msgstr "" +msgstr "ОÑновные данные" #: aleksis/core/forms.py:55 msgid "Address" -msgstr "" +msgstr "ÐдреÑ" #: aleksis/core/forms.py:56 aleksis/core/forms.py:590 msgid "Contact data" -msgstr "" +msgstr "Контактные данные" #: aleksis/core/forms.py:58 msgid "Advanced personal data" -msgstr "" +msgstr "Дополнительные личные данные" #: aleksis/core/forms.py:106 msgid "New user" -msgstr "" +msgstr "Ðовый пользователь" #: aleksis/core/forms.py:106 msgid "Create a new account" -msgstr "" +msgstr "Создать новую учётную запиÑÑŒ" #: aleksis/core/forms.py:132 msgid "You cannot set a new username when also selecting an existing user." -msgstr "" +msgstr "ПоÑле выбора ÑущеÑтвующего Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñоздать новый логин нельзÑ." #: aleksis/core/forms.py:136 msgid "This username is already in use." -msgstr "" +msgstr "Ðтот логин уже занÑÑ‚." #: aleksis/core/forms.py:153 aleksis/core/models.py:136 msgid "School term" -msgstr "" +msgstr "Учебный год" #: aleksis/core/forms.py:154 msgid "Common data" -msgstr "" +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 msgid "Persons" -msgstr "" +msgstr "Люди" #: aleksis/core/forms.py:156 aleksis/core/forms.py:592 msgid "Additional data" -msgstr "" +msgstr "Дополнительные данные" #: aleksis/core/forms.py:157 aleksis/core/models.py:212 #: aleksis/core/models.py:541 msgid "Photo" -msgstr "" +msgstr "Фото" #: aleksis/core/forms.py:199 aleksis/core/forms.py:202 #: aleksis/core/models.py:79 msgid "Date" -msgstr "" +msgstr "Дата" #: aleksis/core/forms.py:200 aleksis/core/forms.py:203 #: aleksis/core/models.py:87 msgid "Time" -msgstr "" +msgstr "ВремÑ" #: aleksis/core/forms.py:233 msgid "From when until when should the announcement be displayed?" -msgstr "" +msgstr "С какого и по какое Ð²Ñ€ÐµÐ¼Ñ Ñто объÑвление должно отображатьÑÑ?" #: aleksis/core/forms.py:236 msgid "Who should see the announcement?" -msgstr "" +msgstr "Кто должен видеть Ñто объÑвление?" #: aleksis/core/forms.py:237 msgid "Write your announcement:" -msgstr "" +msgstr "Ðапишите Ñвое объÑвление:" #: aleksis/core/forms.py:276 -msgid "You are not allowed to create announcements which are only valid in the past." -msgstr "" +msgid "" +"You are not allowed to create announcements which are only valid in the past." +msgstr "ОбъÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ Вам Ñоздавать не разрешено." #: aleksis/core/forms.py:280 msgid "The from date and time must be earlier then the until date and time." -msgstr "" +msgstr "Дата и Ð²Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° должны быть до даты и времени окончаниÑ." #: aleksis/core/forms.py:289 msgid "You need at least one recipient." -msgstr "" +msgstr "Ðужен Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один получатель." #: aleksis/core/forms.py:398 msgid "Invitation code" -msgstr "" +msgstr "Код приглашениÑ" #: aleksis/core/forms.py:399 msgid "Please enter your invitation code." -msgstr "" +msgstr "Укажите, пожалуйÑта, код приглашениÑ." #: aleksis/core/forms.py:418 aleksis/core/models.py:187 msgid "First name" -msgstr "" +msgstr "ИмÑ" #: aleksis/core/forms.py:419 aleksis/core/models.py:188 msgid "Last name" -msgstr "" +msgstr "ФамилиÑ" #: aleksis/core/forms.py:428 msgid "A person is using this e-mail address" -msgstr "" +msgstr "Ðтот Ñл.Ð°Ð´Ñ€ÐµÑ ÐºÐµÐ¼-то иÑпользуетÑÑ" #: aleksis/core/forms.py:456 msgid "Who should get the permission?" -msgstr "" +msgstr "Кто должен получить такое разрешение?" #: aleksis/core/forms.py:457 msgid "On what?" -msgstr "" +msgstr "Ð’ Ñлучае чего?" #: aleksis/core/forms.py:483 msgid "Select objects which the permission should be granted for:" -msgstr "" +msgstr "Отметьте объекты, к которым будет предоÑтавлен доÑтуп:" #: aleksis/core/forms.py:486 msgid "Grant the permission for all objects" -msgstr "" +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." -msgstr "" +msgstr "Ð’Ñ‹ должны предоÑтавить доÑтуп ко вÑем и/или к некоторым объектам." #: aleksis/core/forms.py:586 msgid "Address data" -msgstr "" +msgstr "ПодробноÑти адреÑа" #: aleksis/core/forms.py:598 msgid "Account data" -msgstr "" +msgstr "Данные учётной запиÑи" #: aleksis/core/forms.py:605 msgid "Password" -msgstr "" +msgstr "Пароль" #: aleksis/core/forms.py:608 msgid "Password (again)" -msgstr "" +msgstr "Пароль (ещё раз)" #: aleksis/core/forms.py:728 msgid "The selected action does not exist." -msgstr "" +msgstr "Выбранное дейÑтвие не ÑущеÑтвует." #: aleksis/core/forms.py:739 msgid "You do not have permission to run {} on all selected objects." -msgstr "" +msgstr "У Ð’Ð°Ñ Ð½ÐµÑ‚ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° запуÑк {} на вÑех выбранных объектах." #: aleksis/core/forms.py:795 msgid "No valid selection." -msgstr "" +msgstr "Ðеправильный выбор." #: aleksis/core/health_checks.py:21 msgid "There are unresolved data problems." -msgstr "" +msgstr "ИмеютÑÑ Ð½ÐµÑ€ÐµÑˆÑ‘Ð½Ð½Ñ‹Ðµ проблемы Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸." #: aleksis/core/health_checks.py:40 msgid "Error accessing backup storage: {}" -msgstr "" +msgstr "Ошибка доÑтупа к резервному хранилищу: {}" #: aleksis/core/health_checks.py:50 msgid "Last backup {}!" -msgstr "" +msgstr "ПоÑледнÑÑ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ {}!" #: aleksis/core/health_checks.py:52 msgid "No backup found!" -msgstr "" +msgstr "Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð½Ðµ найдена!" #: aleksis/core/health_checks.py:79 msgid "No backup result found!" -msgstr "" +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 "" +msgstr "Войти" #: aleksis/core/menus.py:13 aleksis/core/templates/account/signup.html:22 #: aleksis/core/templates/socialaccount/signup.html:23 msgid "Sign up" -msgstr "" +msgstr "ЗарегиÑтрироватьÑÑ" #: aleksis/core/menus.py:22 aleksis/core/templates/invitations/enter.html:7 msgid "Accept invitation" -msgstr "" +msgstr "ПринÑть приглашение" #: aleksis/core/menus.py:31 msgid "Dashboard" -msgstr "" +msgstr "Информпанель" #: aleksis/core/menus.py:39 msgid "Admin" -msgstr "" +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 "" +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 "" +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 "" +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 "" +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 "" +msgstr "СоÑтоÑние ÑиÑтемы" #: aleksis/core/menus.py:102 msgid "Configuration" -msgstr "" +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 "" +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 "" +msgstr "Управление разрешениÑми" #: aleksis/core/menus.py:130 msgid "Backend Admin" -msgstr "" +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 "" +msgstr "ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ OAuth2" #: aleksis/core/menus.py:151 msgid "People" -msgstr "" +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 "" +msgstr "Типы групп" #: aleksis/core/menus.py:193 msgid "Groups and child groups" -msgstr "" +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 "" +msgstr "Дополнительные полÑ" #: aleksis/core/menus.py:215 msgid "Invite person" -msgstr "" +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 "" +msgstr "Определить дочерние группы к группе" #: aleksis/core/menus.py:240 msgid "Stop impersonation" -msgstr "" +msgstr "ОÑтановить прикрытие" #: aleksis/core/menus.py:249 msgid "Account" -msgstr "" +msgstr "Ð£Ñ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ" #: aleksis/core/menus.py:258 #: aleksis/core/templates/dynamic_preferences/form.html:5 msgid "Preferences" -msgstr "" +msgstr "СвойÑтва" #: aleksis/core/menus.py:267 msgid "2FA" -msgstr "" +msgstr "2FA" #: aleksis/core/menus.py:275 #: aleksis/core/templates/account/password_change.html:5 @@ -433,819 +438,834 @@ msgstr "" #: 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 "" +msgstr "Сменить пароль" #: aleksis/core/menus.py:287 msgid "Third-party accounts" -msgstr "" +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 "" +msgstr "Ðвторизованные приложениÑ" #: aleksis/core/menus.py:305 msgid "Calendar Feeds" -msgstr "" +msgstr "Ленты календарей" #: aleksis/core/menus.py:318 msgid "Logout" -msgstr "" +msgstr "Выйти" #: aleksis/core/mixins.py:511 msgid "Linked school term" -msgstr "" +msgstr "СвÑзанный учебный год" #: aleksis/core/models.py:77 msgid "Boolean (Yes/No)" -msgstr "" +msgstr "Булево (Да/Ðет)" #: aleksis/core/models.py:78 msgid "Text (one line)" -msgstr "" +msgstr "ТекÑÑ‚ (одна Ñтрока)" #: aleksis/core/models.py:80 msgid "Date and time" -msgstr "" +msgstr "Дата и времÑ" #: aleksis/core/models.py:81 msgid "Decimal number" -msgstr "" +msgstr "ДеÑÑтичное чиÑло" #: aleksis/core/models.py:82 aleksis/core/models.py:205 msgid "E-mail address" -msgstr "" +msgstr "ÐÐ´Ñ€ÐµÑ Ñл.почты" #: aleksis/core/models.py:83 msgid "Integer" -msgstr "" +msgstr "Целое" #: aleksis/core/models.py:84 msgid "IP address" -msgstr "" +msgstr "IP адреÑ" #: aleksis/core/models.py:85 msgid "Boolean or empty (Yes/No/Neither)" -msgstr "" +msgstr "Булево или пуÑтое (Да/Ðет/Ðичего)" #: aleksis/core/models.py:86 msgid "Text (multi-line)" -msgstr "" +msgstr "ТекÑÑ‚ (многоÑтрочный)" #: aleksis/core/models.py:88 msgid "URL / Link" -msgstr "" +msgstr "URL / СÑылка" #: aleksis/core/models.py:100 aleksis/core/models.py:1070 #: aleksis/core/models.py:1374 msgid "Name" -msgstr "" +msgstr "ИмÑ" #: aleksis/core/models.py:102 msgid "Start date" -msgstr "" +msgstr "Дата начала" #: aleksis/core/models.py:103 msgid "End date" -msgstr "" +msgstr "Дата окончаниÑ" #: aleksis/core/models.py:122 msgid "The start date must be earlier than the end date." -msgstr "" +msgstr "Дата начала должна быть ранее даты окончаниÑ." #: aleksis/core/models.py:129 msgid "There is already a school term for this time or a part of this time." -msgstr "" +msgstr "Ðа Ñто Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð»Ð¸ на его чаÑть уже запланирован учебный год." #: aleksis/core/models.py:158 aleksis/core/models.py:1019 #: aleksis/core/models.py:1371 msgid "Person" -msgstr "" +msgstr "Физлицо" #: aleksis/core/models.py:161 msgid "Can view address" -msgstr "" +msgstr "Может видеть адреÑ" #: aleksis/core/models.py:162 msgid "Can view contact details" -msgstr "" +msgstr "Может видеть контактные данные" #: aleksis/core/models.py:163 msgid "Can view photo" -msgstr "" +msgstr "Может видеть фото" #: aleksis/core/models.py:164 msgid "Can view avatar image" -msgstr "" +msgstr "Может видеть аватар" #: aleksis/core/models.py:165 msgid "Can view persons groups" -msgstr "" +msgstr "Может видеть группы лиц" #: aleksis/core/models.py:166 msgid "Can view personal details" -msgstr "" +msgstr "Может видеть личные данные" #: aleksis/core/models.py:176 msgid "female" -msgstr "" +msgstr "жен" #: aleksis/core/models.py:176 msgid "male" -msgstr "" +msgstr "муж" #: aleksis/core/models.py:184 aleksis/core/models.py:1273 msgid "Linked user" -msgstr "" +msgstr "СвÑзанный пользователь" #: aleksis/core/models.py:190 msgid "Additional name(s)" -msgstr "" +msgstr "Дополнительные имена" #: aleksis/core/models.py:194 aleksis/core/models.py:506 msgid "Short name" -msgstr "" +msgstr "Короткое имÑ" #: aleksis/core/models.py:197 msgid "Street" -msgstr "" +msgstr "Улица" #: aleksis/core/models.py:198 msgid "Street number" -msgstr "" +msgstr "Ðомер дома" #: aleksis/core/models.py:199 msgid "Postal code" -msgstr "" +msgstr "Почтовый индекÑ" #: aleksis/core/models.py:200 msgid "Place" -msgstr "" +msgstr "Город/меÑто" #: aleksis/core/models.py:202 aleksis/core/templates/core/person/full.html:160 msgid "Home phone" -msgstr "" +msgstr "Домашний телефон" #: aleksis/core/models.py:203 aleksis/core/templates/core/person/full.html:170 msgid "Mobile phone" -msgstr "" +msgstr "Мобильный телефон" #: aleksis/core/models.py:207 msgid "Date of birth" -msgstr "" +msgstr "Дата рождениÑ" #: aleksis/core/models.py:208 msgid "Place of birth" -msgstr "" +msgstr "МеÑто рождениÑ" #: aleksis/core/models.py:209 msgid "Sex" -msgstr "" +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." +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 msgid "Display picture / Avatar" -msgstr "" +msgstr "Отобразить фото/аватар" #: aleksis/core/models.py:224 aleksis/core/models.py:552 msgid "This is a picture or an avatar for public display." -msgstr "" +msgstr "Ðто фото или аватар Ð´Ð»Ñ Ð¾Ð±Ñ‰ÐµÐ³Ð¾ отображениÑ." #: aleksis/core/models.py:229 aleksis/core/templates/core/person/full.html:235 msgid "Guardians / Parents" -msgstr "" +msgstr "Опекуны / Родители" #: aleksis/core/models.py:236 msgid "Primary group" -msgstr "" +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 msgid "Description" -msgstr "" +msgstr "ОпиÑание" #: aleksis/core/models.py:459 msgid "Title of field" -msgstr "" +msgstr "Ðазвание полÑ" -#: aleksis/core/models.py:461 +#: aleksis/core/models.py:461 aleksis/core/models.py:466 msgid "Type of field" -msgstr "" +msgstr "Тип полÑ" #: aleksis/core/models.py:463 msgid "Required" -msgstr "" +msgstr "Ðеобходимое" #: aleksis/core/models.py:464 msgid "Help text / description" -msgstr "" +msgstr "Ð’Ñпомогательный текÑÑ‚ / опиÑание" #: aleksis/core/models.py:470 msgid "Addtitional field for groups" -msgstr "" +msgstr "Дополнительное поле Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿" #: aleksis/core/models.py:471 msgid "Addtitional fields for groups" -msgstr "" +msgstr "Дополнительные Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿" #: aleksis/core/models.py:491 msgid "Can assign child groups to groups" -msgstr "" +msgstr "Может определÑть дочерние группы в группы" #: aleksis/core/models.py:492 msgid "Can view statistics about group." -msgstr "" +msgstr "Может видеть ÑтатиÑтику группы." #: aleksis/core/models.py:504 msgid "Long name" -msgstr "" +msgstr "Длинное имÑ" #: aleksis/core/models.py:514 aleksis/core/templates/core/group/full.html:85 msgid "Members" -msgstr "" +msgstr "УчаÑтники" #: aleksis/core/models.py:517 aleksis/core/templates/core/group/full.html:82 msgid "Owners" -msgstr "" +msgstr "Владельцы" #: aleksis/core/models.py:524 aleksis/core/templates/core/group/full.html:55 msgid "Parent groups" -msgstr "" +msgstr "РодительÑкие группы" #: aleksis/core/models.py:532 msgid "Type of group" -msgstr "" +msgstr "Тип группы" #: aleksis/core/models.py:718 aleksis/core/models.py:742 #: aleksis/core/models.py:833 #: aleksis/core/templates/core/announcement/list.html:18 msgid "Title" -msgstr "" +msgstr "Ðазвание" #: aleksis/core/models.py:721 msgid "Application" -msgstr "" +msgstr "Приложение" #: aleksis/core/models.py:727 msgid "Activity" -msgstr "" +msgstr "ÐктивноÑть" #: aleksis/core/models.py:728 msgid "Activities" -msgstr "" +msgstr "ÐктивноÑти" #: aleksis/core/models.py:734 msgid "Sender" -msgstr "" +msgstr "Отправитель" #: aleksis/core/models.py:739 msgid "Recipient" -msgstr "" +msgstr "Получатель" #: aleksis/core/models.py:744 aleksis/core/models.py:1071 msgid "Link" -msgstr "" +msgstr "СÑылка" #: aleksis/core/models.py:746 msgid "Send notification at" -msgstr "" +msgstr "Отправить уведомление в" #: aleksis/core/models.py:748 msgid "Read" -msgstr "" +msgstr "Читать" #: aleksis/core/models.py:749 msgid "Sent" -msgstr "" +msgstr "Отправлено" #: aleksis/core/models.py:766 msgid "Notification" -msgstr "" +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 msgid "Notifications" -msgstr "" +msgstr "УведомлениÑ" #: aleksis/core/models.py:835 msgid "Link to detailed view" -msgstr "" +msgstr "СÑылка на подробный обзор" #: aleksis/core/models.py:838 msgid "Date and time from when to show" -msgstr "" +msgstr "Дата и времÑ, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ показывать" #: aleksis/core/models.py:841 msgid "Date and time until when to show" -msgstr "" +msgstr "Дата и времÑ, по какое показывать" #: aleksis/core/models.py:866 msgid "Announcement" -msgstr "" +msgstr "ОбъÑвление" #: aleksis/core/models.py:904 msgid "Announcement recipient" -msgstr "" +msgstr "Получатель объÑвлениÑ" #: aleksis/core/models.py:905 msgid "Announcement recipients" -msgstr "" +msgstr "Получатели объÑвлениÑ" #: aleksis/core/models.py:927 msgid "Widget Title" -msgstr "" +msgstr "Ðазвание виджета" #: aleksis/core/models.py:928 msgid "Activate Widget" -msgstr "" +msgstr "Ðктивировать виджет" #: aleksis/core/models.py:929 msgid "Widget is broken" -msgstr "" +msgstr "Виджет поломалÑÑ" #: aleksis/core/models.py:932 msgid "Size on mobile devices" -msgstr "" +msgstr "Размер на мобильных" #: aleksis/core/models.py:933 msgid "<= 600 px, 12 columns" -msgstr "" +msgstr "<= 600 пикÑ, 12 Ñтолбцов" #: aleksis/core/models.py:938 msgid "Size on tablet devices" -msgstr "" +msgstr "Размер на планшетах" #: aleksis/core/models.py:939 msgid "> 600 px, 12 columns" -msgstr "" +msgstr "> 600 пикÑ, 12 Ñтолбцов" #: aleksis/core/models.py:944 msgid "Size on desktop devices" -msgstr "" +msgstr "Размер на ПК" #: aleksis/core/models.py:945 msgid "> 992 px, 12 columns" -msgstr "" +msgstr "> 992 пикÑ, 12 Ñтолбцов" #: aleksis/core/models.py:950 msgid "Size on large desktop devices" -msgstr "" +msgstr "Размер Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ñ… Ñкранов" #: aleksis/core/models.py:951 msgid "> 1200 px>, 12 columns" -msgstr "" +msgstr "> 1200 пикÑ, 12 Ñтолбцов" #: aleksis/core/models.py:982 msgid "Can edit default dashboard" -msgstr "" +msgstr "Может редактировать типовую/Ñтандартную информпанель" #: aleksis/core/models.py:983 msgid "Dashboard Widget" -msgstr "" +msgstr "Виджет информпанели" #: aleksis/core/models.py:984 msgid "Dashboard Widgets" -msgstr "" +msgstr "Виджеты информпанели" -#: aleksis/core/models.py:990 +#: aleksis/core/models.py:990 aleksis/core/models.py:995 msgid "URL" -msgstr "" +msgstr "URL" #: aleksis/core/models.py:991 msgid "Icon URL" -msgstr "" +msgstr "Иконка URL" #: aleksis/core/models.py:997 msgid "External link widget" -msgstr "" +msgstr "ВнешнÑÑ ÑÑылка на виджет" #: aleksis/core/models.py:998 msgid "External link widgets" -msgstr "" +msgstr "Внешние ÑÑылки на виджеты" #: aleksis/core/models.py:1004 msgid "Content" -msgstr "" +msgstr "Содержимое" #: aleksis/core/models.py:1010 msgid "Static content widget" -msgstr "" +msgstr "Виджет Ñ Ð¿Ð¾ÑтоÑнным Ñодержимым" #: aleksis/core/models.py:1011 msgid "Static content widgets" -msgstr "" +msgstr "Виджеты Ñ Ð¿Ð¾ÑтоÑнным Ñодержимым" #: aleksis/core/models.py:1016 msgid "Dashboard widget" -msgstr "" +msgstr "Виджет информпанели" #: aleksis/core/models.py:1021 msgid "Order" -msgstr "" +msgstr "ПорÑдок" #: aleksis/core/models.py:1022 msgid "Part of the default dashboard" -msgstr "" +msgstr "ЧаÑть типовой информпанели" #: aleksis/core/models.py:1037 msgid "Dashboard widget order" -msgstr "" +msgstr "ПорÑдок виджета на информпанели" #: aleksis/core/models.py:1038 msgid "Dashboard widget orders" -msgstr "" +msgstr "ПорÑдок виджетов на информпанели" -#: aleksis/core/models.py:1044 +#: aleksis/core/models.py:1044 aleksis/core/models.py:1049 msgid "Menu ID" -msgstr "" +msgstr "Меню ID" #: aleksis/core/models.py:1057 msgid "Custom menu" -msgstr "" +msgstr "ПользовательÑкое меню" #: aleksis/core/models.py:1058 msgid "Custom menus" -msgstr "" +msgstr "ПользовательÑкие меню" #: aleksis/core/models.py:1068 msgid "Menu" -msgstr "" +msgstr "Меню" #: aleksis/core/models.py:1072 aleksis/core/models.py:1320 #: aleksis/core/templates/oauth2_provider/application/detail.html:26 msgid "Icon" -msgstr "" +msgstr "Иконка" #: aleksis/core/models.py:1078 msgid "Custom menu item" -msgstr "" +msgstr "Пункт пользовательÑкого меню" #: aleksis/core/models.py:1079 msgid "Custom menu items" -msgstr "" +msgstr "Пункты пользовательÑкого меню" #: aleksis/core/models.py:1093 msgid "Title of type" -msgstr "" +msgstr "Ðазвание типа" #: aleksis/core/models.py:1100 aleksis/core/templates/core/group/full.html:47 msgid "Group type" -msgstr "" +msgstr "Тип группы" #: aleksis/core/models.py:1114 msgid "Can view system status" -msgstr "" +msgstr "Может проÑматривать ÑоÑтоÑние ÑиÑтемы" #: aleksis/core/models.py:1115 msgid "Can manage data" -msgstr "" +msgstr "Может управлÑть данными" #: aleksis/core/models.py:1116 msgid "Can impersonate" -msgstr "" +msgstr "Может маÑкироватьÑÑ" #: aleksis/core/models.py:1117 msgid "Can use search" -msgstr "" +msgstr "Может иÑпользовать поиÑк" #: aleksis/core/models.py:1118 msgid "Can change site preferences" -msgstr "" +msgstr "Может менÑть ÑвойÑтва Ñайта" #: aleksis/core/models.py:1119 msgid "Can change person preferences" -msgstr "" +msgstr "Может менÑть перÑональные ÑвойÑтва" #: aleksis/core/models.py:1120 msgid "Can change group preferences" -msgstr "" +msgstr "Может менÑть ÑвойÑтва группы" #: aleksis/core/models.py:1121 msgid "Can test PDF generation" -msgstr "" +msgstr "Может генерировать теÑтовые PDF" #: aleksis/core/models.py:1122 msgid "Can invite persons" -msgstr "" +msgstr "Может приглашать других" -#: aleksis/core/models.py:1158 +#: aleksis/core/models.py:1158 aleksis/core/models.py:1168 msgid "Related data check task" -msgstr "" +msgstr "Задание проверки ÑвÑзанных данных" -#: aleksis/core/models.py:1166 +#: aleksis/core/models.py:1166 aleksis/core/models.py:1176 msgid "Issue solved" -msgstr "" +msgstr "Проблема решена" -#: aleksis/core/models.py:1167 +#: aleksis/core/models.py:1167 aleksis/core/models.py:1177 msgid "Notification sent" -msgstr "" +msgstr "Уведомление отправлено" -#: aleksis/core/models.py:1180 +#: aleksis/core/models.py:1180 aleksis/core/models.py:1190 msgid "Data check result" -msgstr "" +msgstr "Результат проверки данных" -#: aleksis/core/models.py:1181 +#: aleksis/core/models.py:1181 aleksis/core/models.py:1191 msgid "Data check results" -msgstr "" +msgstr "Результаты проверки данных" -#: aleksis/core/models.py:1183 +#: aleksis/core/models.py:1183 aleksis/core/models.py:1193 msgid "Can run data checks" -msgstr "" +msgstr "Может запуÑкать проверки данных" -#: aleksis/core/models.py:1184 +#: aleksis/core/models.py:1184 aleksis/core/models.py:1194 msgid "Can solve data check problems" -msgstr "" +msgstr "Может решать проблемы проверки данных" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1191 aleksis/core/models.py:1201 msgid "E-Mail address" -msgstr "" +msgstr "ÐÐ´Ñ€ÐµÑ Ñл.почты" -#: aleksis/core/models.py:1223 +#: aleksis/core/models.py:1223 aleksis/core/models.py:1233 msgid "Owner" -msgstr "" +msgstr "Владелец" -#: aleksis/core/models.py:1227 +#: aleksis/core/models.py:1227 aleksis/core/models.py:1237 msgid "File expires at" -msgstr "" +msgstr "Файл дейÑтвителен до" -#: aleksis/core/models.py:1229 +#: aleksis/core/models.py:1229 aleksis/core/models.py:1239 msgid "Generated HTML file" -msgstr "" +msgstr "Сгенерированный файл HTML" -#: aleksis/core/models.py:1231 +#: aleksis/core/models.py:1231 aleksis/core/models.py:1241 msgid "Generated PDF file" -msgstr "" +msgstr "Сгенерированный файл PDF" -#: aleksis/core/models.py:1238 +#: aleksis/core/models.py:1238 aleksis/core/models.py:1248 msgid "PDF file" -msgstr "" +msgstr "Файл PDF" -#: aleksis/core/models.py:1239 +#: aleksis/core/models.py:1239 aleksis/core/models.py:1249 msgid "PDF files" -msgstr "" +msgstr "Файлы PDF" -#: aleksis/core/models.py:1244 +#: aleksis/core/models.py:1244 aleksis/core/models.py:1254 msgid "Task result" -msgstr "" +msgstr "Результат заданиÑ" -#: aleksis/core/models.py:1247 +#: aleksis/core/models.py:1247 aleksis/core/models.py:1257 msgid "Task user" -msgstr "" +msgstr "Пользователь заданиÑ" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1259 aleksis/core/models.py:1269 msgid "Task user assignment" -msgstr "" +msgstr "Ðазначение Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ" -#: aleksis/core/models.py:1260 +#: aleksis/core/models.py:1260 aleksis/core/models.py:1270 msgid "Task user assignments" -msgstr "" +msgstr "ÐÐ°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ заданиÑ" -#: aleksis/core/models.py:1276 +#: aleksis/core/models.py:1276 aleksis/core/models.py:1286 msgid "Additional attributes" -msgstr "" +msgstr "Дополнительные атрибуты" -#: aleksis/core/models.py:1314 +#: aleksis/core/models.py:1314 aleksis/core/models.py:1324 msgid "Allowed scopes that clients can request" -msgstr "" +msgstr "Разрешённые пределы дейÑтвиÑ, которые могут запрашивать клиенты" -#: aleksis/core/models.py:1324 -msgid "This image will be shown as icon in the authorization flow. It should be squared." +#: 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:1373 aleksis/core/models.py:1383 msgid "UUID" -msgstr "" +msgstr "UUID" -#: aleksis/core/models.py:1377 +#: aleksis/core/models.py:1377 aleksis/core/models.py:1387 msgid "Selected ICal feed" -msgstr "" +msgstr "Лента выбранного iCal" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1386 aleksis/core/models.py:1396 msgid "Personal Calendar URL" -msgstr "" +msgstr "URL-ÑÑылка ÑобÑтвенного календарÑ" -#: aleksis/core/models.py:1387 +#: aleksis/core/models.py:1387 aleksis/core/models.py:1397 msgid "Personal Calendar URLs" -msgstr "" +msgstr "URL-ÑÑылка ÑобÑтвенных календарей" #: aleksis/core/preferences.py:25 msgid "General" -msgstr "" +msgstr "Общее" #: aleksis/core/preferences.py:26 msgid "School" -msgstr "" +msgstr "Школа / уч.заведение" #: aleksis/core/preferences.py:27 msgid "Theme" -msgstr "" +msgstr "Тема" #: aleksis/core/preferences.py:28 msgid "Mail" -msgstr "" +msgstr "Почта" #: aleksis/core/preferences.py:30 msgid "Footer" -msgstr "" +msgstr "Ðижний колонтитул (подвал)" #: aleksis/core/preferences.py:31 msgid "Accounts" -msgstr "" +msgstr "Учётные запиÑи" #: aleksis/core/preferences.py:32 msgid "Authentication" -msgstr "" +msgstr "ÐвторизациÑ" #: aleksis/core/preferences.py:33 msgid "Internationalisation" -msgstr "" +msgstr "ИнтернационализациÑ" #: aleksis/core/preferences.py:43 msgid "Site title" -msgstr "" +msgstr "Ðазвание Ñайта" #: aleksis/core/preferences.py:55 msgid "Site description" -msgstr "" +msgstr "ОпиÑание Ñайта" #: aleksis/core/preferences.py:65 msgid "Primary colour" -msgstr "" +msgstr "ОÑновной цвет" #: aleksis/core/preferences.py:77 msgid "Secondary colour" -msgstr "" +msgstr "Дополнительный цвет" #: aleksis/core/preferences.py:89 msgid "Logo" -msgstr "" +msgstr "Логотип" #: aleksis/core/preferences.py:100 msgid "Favicon" -msgstr "" +msgstr "Favicon" #: aleksis/core/preferences.py:111 msgid "PWA-Icon" -msgstr "" +msgstr "Иконка PWA" #: aleksis/core/preferences.py:121 msgid "PWA-Icon is maskable" -msgstr "" +msgstr "Иконка PWA может быть Ñ Ð¼Ð°Ñкой" #: aleksis/core/preferences.py:133 msgid "Mail out name" -msgstr "" +msgstr "Ð˜Ð¼Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ" #: aleksis/core/preferences.py:144 msgid "Mail out address" -msgstr "" +msgstr "ÐÐ´Ñ€ÐµÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ" #: aleksis/core/preferences.py:157 msgid "Link to privacy policy" -msgstr "" +msgstr "СÑылка на политику приватноÑти" #: aleksis/core/preferences.py:169 msgid "Link to imprint" -msgstr "" +msgstr "СÑылка на отпечаток" #: aleksis/core/preferences.py:180 msgid "Name format for addressing" -msgstr "" +msgstr "Формат имени в перепиÑке" #: aleksis/core/preferences.py:197 msgid "Channels to use for notifications" -msgstr "" +msgstr "Каналы Ð´Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ð¹" #: aleksis/core/preferences.py:209 msgid "Regular expression to match primary group, e.g. '^Class .*'" -msgstr "" +msgstr "РегулÑрное выражение Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка оÑновной группы, напр. '^Class .*'" #: aleksis/core/preferences.py:220 msgid "Field on person to match primary group against" -msgstr "" +msgstr "Поле Ð´Ð»Ñ ÑопоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð»Ð¸Ñ†Ð° Ñ Ð¾Ñновной группой" #: aleksis/core/preferences.py:232 msgid "Automatically create new persons for new users" -msgstr "" +msgstr "Ðовые физлица Ð´Ð»Ñ Ð½Ð¾Ð²Ñ‹Ñ… пользователей Ñоздавать автоматичеÑки" #: aleksis/core/preferences.py:241 -msgid "Automatically link existing persons to new users by their e-mail address" +msgid "" +"Automatically link existing persons to new users by their e-mail address" msgstr "" +"СвÑзывать ÑущеÑтвующие физлица Ñ Ð½Ð¾Ð²Ñ‹Ð¼Ð¸ пользователÑми автоматичеÑки по Ñл." +"адреÑам" #: aleksis/core/preferences.py:252 msgid "Display name of the school" -msgstr "" +msgstr "Ðазвание школы / уч.Ð·Ð°Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ" #: aleksis/core/preferences.py:263 msgid "Official name of the school, e.g. as given by supervisory authority" msgstr "" +"Официальное название школы / уч.заведениÑ, напр., как в региÑтрационных " +"документах" #: aleksis/core/preferences.py:271 msgid "Allow users to change their passwords" -msgstr "" +msgstr "Разрешить пользователÑм менÑть Ñвои пароли" #: aleksis/core/preferences.py:279 msgid "Allow users to reset their passwords" -msgstr "" +msgstr "Разрешить пользователÑм ÑбраÑывать Ñвои пароли" #: aleksis/core/preferences.py:287 msgid "Enable signup" -msgstr "" +msgstr "Включить региÑтрацию" #: aleksis/core/preferences.py:295 msgid "Regular expression for allowed usernames" -msgstr "" +msgstr "РегулÑрное выражение Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÑ‘Ð½Ð½Ñ‹Ñ… логинов" #: aleksis/core/preferences.py:303 msgid "Enable invitations" -msgstr "" +msgstr "Включить приглашениÑ" #: aleksis/core/preferences.py:311 msgid "Length of invite code. (Default 3: abcde-acbde-abcde)" -msgstr "" +msgstr "Длина приглаÑительного кода. (По-умолчанию 3: abcde-abcde-abcde)" #: aleksis/core/preferences.py:319 msgid "Size of packets. (Default 5: abcde)" -msgstr "" +msgstr "Размер пакетов. (По-умолчанию 5: abcde)" #: aleksis/core/preferences.py:330 msgid "Allowed Grant Flows for OAuth applications" -msgstr "" +msgstr "Разрешённые потоки грантов Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹ Ñ OAuth" #: aleksis/core/preferences.py:344 msgid "Available languages" -msgstr "" +msgstr "ДоÑтупные Ñзыки" -#: aleksis/core/preferences.py:357 +#: aleksis/core/preferences.py:357 aleksis/core/preferences.py:343 msgid "Send emails if data checks detect problems" -msgstr "" +msgstr "Ð’ Ñлучае Ð¾Ð±Ð½Ð°Ñ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ñ‹ при проверке данных отправить Ñл.пиÑьмо" -#: aleksis/core/preferences.py:368 +#: aleksis/core/preferences.py:368 aleksis/core/preferences.py:354 msgid "Email recipients for data checks problem emails" -msgstr "" +msgstr "Ðл.адреÑа получателей Ð´Ð»Ñ Ð¿Ð¸Ñем Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð°Ð¼Ð¸ при проверке данных" -#: aleksis/core/preferences.py:379 +#: aleksis/core/preferences.py:379 aleksis/core/preferences.py:365 msgid "Email recipient groups for data checks problem emails" -msgstr "" +msgstr "Ðл.адреÑа груп Ð´Ð»Ñ Ð¿Ð¸Ñем Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð°Ð¼Ð¸ при проверке данных" -#: aleksis/core/preferences.py:388 +#: aleksis/core/preferences.py:388 aleksis/core/preferences.py:374 msgid "Show dashboard to users without login" -msgstr "" +msgstr "Отображать информпанель анонимным пользователÑм" -#: aleksis/core/preferences.py:397 +#: aleksis/core/preferences.py:397 aleksis/core/preferences.py:383 msgid "Allow users to edit their dashboard" -msgstr "" +msgstr "Разрешить пользователÑм редактировать Ñвою информпанель" -#: aleksis/core/preferences.py:408 +#: aleksis/core/preferences.py:408 aleksis/core/preferences.py:394 msgid "Fields on person model which are editable by themselves." -msgstr "" +msgstr "ÐŸÐ¾Ð»Ñ Ñ Ð¾Ð¿Ð¸Ñанием физлица, которые можно редактировать ÑамоÑтоÑтельно." -#: aleksis/core/preferences.py:423 -msgid "Editable fields on person model which should trigger a notification on change" +#: 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:437 +#: aleksis/core/preferences.py:437 aleksis/core/preferences.py:423 msgid "Contact for notification if a person changes their data" -msgstr "" +msgstr "Контакт Ð´Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ð¹ при изменении кем-то Ñвоих данных" -#: aleksis/core/preferences.py:448 +#: aleksis/core/preferences.py:448 aleksis/core/preferences.py:434 msgid "Prefer personal photos over avatars" -msgstr "" +msgstr "Отдавать предпочтение личным фото вмеÑто аватаров" -#: aleksis/core/preferences.py:458 +#: aleksis/core/preferences.py:458 aleksis/core/preferences.py:444 msgid "PDF file expiration duration" -msgstr "" +msgstr "Срок дейÑÑ‚Ð²Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° PDF" -#: aleksis/core/preferences.py:459 +#: aleksis/core/preferences.py:459 aleksis/core/preferences.py:445 msgid "in minutes" -msgstr "" +msgstr "в минутах" -#: aleksis/core/preferences.py:469 +#: aleksis/core/preferences.py:469 aleksis/core/preferences.py:455 msgid "Automatically update the dashboard and its widgets" -msgstr "" +msgstr "ÐвтоматичеÑки обновлÑть информпанель и её виджеты" -#: aleksis/core/preferences.py:479 +#: aleksis/core/preferences.py:479 aleksis/core/preferences.py:465 msgid "Automatically update the dashboard and its widgets sitewide" -msgstr "" +msgstr "ÐвтоматичеÑки обновлÑть информпанель и её виджеты (Ð´Ð»Ñ Ð²Ñего Ñайта)" -#: aleksis/core/preferences.py:489 +#: aleksis/core/preferences.py:489 aleksis/core/preferences.py:475 msgid "Country for phone number parsing" -msgstr "" +msgstr "Страна Ð´Ð»Ñ Ð¿Ð°Ñ€Ñинга номера телефона" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:540 aleksis/core/settings.py:541 msgid "English" -msgstr "" +msgstr "ÐнглийÑкий" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:541 aleksis/core/settings.py:542 msgid "German" -msgstr "" +msgstr "Ðемецкий" #: aleksis/core/tables.py:24 #: aleksis/core/templates/core/announcement/list.html:36 @@ -1254,13 +1274,13 @@ msgstr "" #: aleksis/core/templates/core/person/full.html:86 #: aleksis/core/templates/oauth2_provider/application/detail.html:17 msgid "Edit" -msgstr "" +msgstr "Редактировать" #: aleksis/core/tables.py:26 aleksis/core/tables.py:94 #: aleksis/core/tables.py:138 #: aleksis/core/templates/core/announcement/list.html:22 msgid "Actions" -msgstr "" +msgstr "ДейÑтвиÑ" #: aleksis/core/tables.py:61 aleksis/core/tables.py:62 #: aleksis/core/tables.py:76 aleksis/core/tables.py:92 @@ -1272,27 +1292,35 @@ msgstr "" #: aleksis/core/templates/core/person/full.html:93 #: aleksis/core/templates/oauth2_provider/application/detail.html:21 msgid "Delete" -msgstr "" +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 "" +msgstr "Ошибка" #: aleksis/core/templates/403.html:14 msgid "" "You are not allowed to access the requested page or\n" " object." msgstr "" +"У Ð’Ð°Ñ Ð½ÐµÑ‚ доÑтупа к запрашиваемой Ñтранице или\n" +" к объекту." #: 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" +" к админиÑтраторам Ñайта:\n" +" " #: aleksis/core/templates/404.html:12 msgid "" @@ -1301,46 +1329,65 @@ msgid "" " it is possible that that link was outdated.\n" " " msgstr "" +"\n" +" ЕÑли Ð’Ñ‹ были перенаправлены по ÑÑылке Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ¹ Ñтраницы,\n" +" вероÑтно, Ñта ÑÑылка уÑтарела.\n" +" " #: aleksis/core/templates/500.html:10 msgid "" "An unexpected error has\n" " occured." msgstr "" +"Произошла Ð½ÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ \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" +" " #: aleksis/core/templates/500.html:21 msgid "Retry" -msgstr "" +msgstr "ПопытатьÑÑ ÐµÑ‰Ñ‘" #: aleksis/core/templates/503.html:10 msgid "" "The maintenance mode is currently enabled. Please try again\n" " later." msgstr "" +"Сайт находитÑÑ Ð½Ð° обÑлуживании. Попробуйте зайти\n" +" позже." #: 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" +" " #: aleksis/core/templates/account/account_inactive.html:5 #: aleksis/core/templates/account/account_inactive.html:6 msgid "Account inactive" -msgstr "" +msgstr "Ð£Ñ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ неактивна" #: aleksis/core/templates/account/account_inactive.html:14 msgid "Account inactive." -msgstr "" +msgstr "Ð£Ñ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ неактивна." #: aleksis/core/templates/account/account_inactive.html:17 msgid "" @@ -1349,56 +1396,73 @@ msgid "" " error, please contact one of your site administrators.\n" " " msgstr "" +"\n" +" Ðта ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ ÑÐµÐ¹Ñ‡Ð°Ñ Ð½ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ð°. ЕÑли Ð’Ñ‹ думаете,\n" +" что Ñто ошибка, обратитеÑÑŒ к админиÑтраторам Ñайта.\n" +" " #: aleksis/core/templates/account/email/base_message.txt:5 msgid "Hello!" -msgstr "" +msgstr "Привет!" #: aleksis/core/templates/account/email/base_message.txt:9 msgid "Your AlekSIS team" -msgstr "" +msgstr "Команда AlekSIS" #: aleksis/core/templates/account/email_confirm.html:5 #: aleksis/core/templates/account/email_confirm.html:6 #: aleksis/core/templates/account/email_confirm.html:17 #: aleksis/core/templates/socialaccount/login.html:17 msgid "Confirm" -msgstr "" +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." +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>." +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:12 msgid "Forgot your current password? Click here to reset it:" -msgstr "" +msgstr "Забыли Ñвой пароль? Ðажмите тут Ð´Ð»Ñ ÑброÑа:" #: aleksis/core/templates/account/password_change.html:12 msgid "Forgot Password?" -msgstr "" +msgstr "Забыли пароль?" #: aleksis/core/templates/account/password_change_disabled.html:5 #: aleksis/core/templates/account/password_change_disabled.html:6 msgid "Changing of password disabled" -msgstr "" +msgstr "Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾" #: aleksis/core/templates/account/password_change_disabled.html:13 msgid "Changing of password disabled." -msgstr "" +msgstr "Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾." #: aleksis/core/templates/account/password_change_disabled.html:15 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" +" " #: aleksis/core/templates/account/password_reset.html:5 #: aleksis/core/templates/account/password_reset.html:15 @@ -1408,21 +1472,27 @@ msgstr "" #: aleksis/core/templates/account/verification_email_required.html:6 #: aleksis/core/templates/two_factor/core/login.html:100 msgid "Reset password" -msgstr "" +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." +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 "" "Please contact one of your site administrators, if you\n" " have any trouble resetting your password:" msgstr "" +"ЕÑли у Ð’Ð°Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ»Ð° проблема Ñо ÑброÑом паролÑ,\n" +" обратитеÑÑŒ, пожалуйÑта, к админиÑтраторам Ñайта:" #: aleksis/core/templates/account/password_reset_done.html:15 msgid "Password reset mail sent" -msgstr "" +msgstr "ПиÑьмо Ð´Ð»Ñ ÑброÑа Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¾" #: aleksis/core/templates/account/password_reset_done.html:18 #: aleksis/core/templates/account/verification_email_required.html:16 @@ -1432,19 +1502,32 @@ msgid "" " administrators if you do not receive it within a few minutes.\n" " " msgstr "" +"\n" +" Мы отправили Вам Ñл.пиÑьмо. ЕÑли Ð’Ñ‹ не получите его на " +"протÑжении\n" +" неÑкольких минут, обратитеÑÑŒ, пожалуйÑта, к админиÑтраторам " +"Ñайта.\n" +" " #: aleksis/core/templates/account/password_reset_from_key.html:15 msgid "Bad token" -msgstr "" +msgstr "Ðеправильный токен" #: aleksis/core/templates/account/password_reset_from_key.html:19 #, 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" +" " #: aleksis/core/templates/account/password_reset_from_key.html:25 msgid "" @@ -1453,6 +1536,10 @@ msgid "" " administrators\n" " " msgstr "" +"\n" +" ЕÑли проблема вÑÑ‘ ещё приÑутÑтвует, обратитеÑÑŒ, пожалуйÑта, к\n" +" админиÑтраторам Ñайта\n" +" " #: aleksis/core/templates/account/password_reset_from_key.html:56 #: aleksis/core/templates/account/password_reset_from_key_done.html:15 @@ -1461,41 +1548,47 @@ msgid "" " Your password is now changed!\n" " " msgstr "" +"\n" +" Ваш пароль изменён!\n" +" " #: aleksis/core/templates/account/password_reset_from_key.html:61 msgid "Back to login" -msgstr "" +msgstr "Ðазад ко входу" #: aleksis/core/templates/account/password_reset_from_key_done.html:13 msgid "Password changed!" -msgstr "" +msgstr "Пароль изменён!" #: aleksis/core/templates/account/password_set.html:5 #: aleksis/core/templates/account/password_set.html:6 #: aleksis/core/templates/account/password_set.html:12 msgid "Set password" -msgstr "" +msgstr "УÑтановите пароль" #: aleksis/core/templates/account/signup.html:5 #: aleksis/core/templates/account/signup.html:6 #: aleksis/core/templates/socialaccount/signup.html:5 #: aleksis/core/templates/socialaccount/signup.html:6 msgid "Signup" -msgstr "" +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>." +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_closed.html:5 #: aleksis/core/templates/account/signup_closed.html:6 msgid "Signup closed" -msgstr "" +msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°" #: aleksis/core/templates/account/signup_closed.html:14 msgid "Signup closed." -msgstr "" +msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°." #: aleksis/core/templates/account/signup_closed.html:17 msgid "" @@ -1504,27 +1597,39 @@ msgid "" " error, please contact one of your site administrators.\n" " " msgstr "" +"\n" +" РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð°. ЕÑли Ñчитаете, что Ñто ошибка,\n" +" можете обратитьÑÑ Ðº админиÑтраторам Ñайта.\n" +" " #: aleksis/core/templates/account/verification_email_required.html:14 msgid "Password reset mail sent!" -msgstr "" +msgstr "ПиÑьмо Ð´Ð»Ñ ÑброÑа Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¾!" #: aleksis/core/templates/account/verification_sent.html:5 #: aleksis/core/templates/account/verification_sent.html:6 msgid "Verify your email address" -msgstr "" +msgstr "Подтвердите Ñвой Ð°Ð´Ñ€ÐµÑ Ñл.почты" #: aleksis/core/templates/account/verification_sent.html:14 msgid "Verify your email!" -msgstr "" +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" +" " #: aleksis/core/templates/account/verification_sent.html:22 msgid "" @@ -1534,75 +1639,81 @@ msgid "" " contact us if you do not receive it within a few minutes.\n" " " msgstr "" +"\n" +" Мы отправили Вам Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ñл.пиÑьмо.\n" +" ПожалуйÑта, перейдите по указанной ÑÑылке. ЕÑли Ð’Ñ‹ не получите\n" +" пиÑьмо в ближайшие неÑколько минут, обратитеÑÑŒ, пожалуйÑта, к " +"нам.\n" +" " #: aleksis/core/templates/core/additional_field/edit.html:6 #: aleksis/core/templates/core/additional_field/edit.html:7 msgid "Edit additional field" -msgstr "" +msgstr "Редактирование дополнительного полÑ" #: aleksis/core/templates/core/additional_field/list.html:14 msgid "Create additional field" -msgstr "" +msgstr "Создать дополнительное поле" #: aleksis/core/templates/core/announcement/form.html:14 #: aleksis/core/templates/core/announcement/form.html:21 msgid "Edit announcement" -msgstr "" +msgstr "Редактирование объÑвлениÑ" #: aleksis/core/templates/core/announcement/form.html:16 msgid "Publish announcement" -msgstr "" +msgstr "Размещение объÑвлениÑ" #: aleksis/core/templates/core/announcement/form.html:23 #: aleksis/core/templates/core/announcement/list.html:13 msgid "Publish new announcement" -msgstr "" +msgstr "РазмеÑтить новое объÑвление" #: aleksis/core/templates/core/announcement/form.html:34 msgid "Save and publish announcement" -msgstr "" +msgstr "Сохранить и опубликовать объÑвление" #: aleksis/core/templates/core/announcement/list.html:19 msgid "Valid from" -msgstr "" +msgstr "ДейÑтвительно Ñ" #: aleksis/core/templates/core/announcement/list.html:20 msgid "Valid until" -msgstr "" +msgstr "ДейÑтвительно по" #: aleksis/core/templates/core/announcement/list.html:21 msgid "Recipients" -msgstr "" +msgstr "Получатели" #: aleksis/core/templates/core/announcement/list.html:50 msgid "There are no announcements." -msgstr "" +msgstr "ОбъÑвлений нет." #: aleksis/core/templates/core/base.html:213 msgid "About AlekSIS® — The Free School Information System" -msgstr "" +msgstr "Об AlekSIS® — The Free School Information System" #: aleksis/core/templates/core/base.html:221 msgid "Imprint" -msgstr "" +msgstr "Отпечаток" #: aleksis/core/templates/core/base.html:229 msgid "Privacy Policy" -msgstr "" +msgstr "Политика приватноÑти" #: aleksis/core/templates/core/base_print.html:74 msgid "Powered by AlekSIS®" -msgstr "" +msgstr "Под управлением AlekSIS®" #: aleksis/core/templates/core/dashboard_widget/create.html:8 #: aleksis/core/templates/core/dashboard_widget/create.html:12 #, python-format msgid "Create %(widget)s" -msgstr "" +msgstr "Создать %(widget)s" #: aleksis/core/templates/core/dashboard_widget/dashboardwidget_broken.html:10 msgid "This widget is currently not available." -msgstr "" +msgstr "Ðтот виджет ÑÐµÐ¹Ñ‡Ð°Ñ Ð½ÐµÐ´Ð¾Ñтупен." #: aleksis/core/templates/core/dashboard_widget/dashboardwidget_broken.html:14 #, python-format @@ -1612,77 +1723,83 @@ msgid "" " There is no need for you to take any action.\n" " " msgstr "" +"\n" +" Во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ð° \"%(title)s\" возникла проблема.\n" +" Вам ничего делать не нужно.\n" +" " #: aleksis/core/templates/core/dashboard_widget/edit.html:8 #: aleksis/core/templates/core/dashboard_widget/edit.html:12 #, python-format msgid "Edit %(widget)s" -msgstr "" +msgstr "Редактировать %(widget)s" #: aleksis/core/templates/core/dashboard_widget/list.html:15 msgid "Create dashboard widget" -msgstr "" +msgstr "Создать виджет Ð´Ð»Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð¿Ð°Ð½ÐµÐ»Ð¸" #: aleksis/core/templates/core/dashboard_widget/list.html:22 #, python-format msgid "Create %(name)s" -msgstr "" +msgstr "Создать %(name)s" #: aleksis/core/templates/core/dashboard_widget/list.html:32 #: aleksis/core/templates/core/edit_dashboard.html:8 #: aleksis/core/templates/core/edit_dashboard.html:15 msgid "Edit default dashboard" -msgstr "" +msgstr "Редактировать Ñтандартную информпанель" #: aleksis/core/templates/core/data_check/list.html:15 msgid "Check data again" -msgstr "" +msgstr "Проверить данные ещё раз" #: aleksis/core/templates/core/data_check/list.html:22 msgid "The system detected some problems with your data." -msgstr "" +msgstr "СиÑтема обнаружила некоторые проблемы Ñ Ð’Ð°ÑˆÐ¸Ð¼Ð¸ данными." #: aleksis/core/templates/core/data_check/list.html:23 msgid "" "Please go through all data and check whether some extra action is\n" " needed." msgstr "" +"ПожалуйÑта, переÑмотрите внимательно вÑе данные и проверьте не нужно ли\n" +" что-то Ñделать." #: aleksis/core/templates/core/data_check/list.html:31 msgid "Everything is fine." -msgstr "" +msgstr "Ð’ÑÑ‘ прекраÑно." #: aleksis/core/templates/core/data_check/list.html:32 msgid "The system hasn't detected any problems with your data." -msgstr "" +msgstr "СиÑтема не обнаружила никаких проблем Ñ Ð’Ð°ÑˆÐ¸Ð¼Ð¸ данными." #: aleksis/core/templates/core/data_check/list.html:40 msgid "Detected problems" -msgstr "" +msgstr "Обнаруженные проблемы" #: aleksis/core/templates/core/data_check/list.html:45 msgid "Affected object" -msgstr "" +msgstr "ЗавиÑимые объекты" #: aleksis/core/templates/core/data_check/list.html:46 msgid "Detected problem" -msgstr "" +msgstr "Обнаружена проблема" #: aleksis/core/templates/core/data_check/list.html:47 msgid "Show details" -msgstr "" +msgstr "Подробнее" #: aleksis/core/templates/core/data_check/list.html:48 msgid "Options to solve the problem" -msgstr "" +msgstr "Варианты Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ñ‹" #: aleksis/core/templates/core/data_check/list.html:63 msgid "Show object" -msgstr "" +msgstr "ПоÑмотреть объект" #: aleksis/core/templates/core/data_check/list.html:86 msgid "Registered checks" -msgstr "" +msgstr "ЗарегиÑтрированные проверки" #: aleksis/core/templates/core/data_check/list.html:90 msgid "" @@ -1690,66 +1807,96 @@ msgid "" " The system will check for the following problems:\n" " " msgstr "" +"\n" +" СиÑтема проверит наличие таких проблем:\n" +" " #: aleksis/core/templates/core/edit_dashboard.html:6 #: aleksis/core/templates/core/edit_dashboard.html:13 #: aleksis/core/templates/core/index.html:17 msgid "Edit dashboard" -msgstr "" +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" +" " #: 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" +" " #: aleksis/core/templates/core/edit_dashboard.html:48 msgid "Available widgets" -msgstr "" +msgstr "ДоÑтупные виджеты" #: aleksis/core/templates/core/edit_dashboard.html:57 msgid "Your dashboard" -msgstr "" +msgstr "Ваша информпанель" #: aleksis/core/templates/core/edit_dashboard.html:59 msgid "Default dashboard" -msgstr "" +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" +" " #: aleksis/core/templates/core/group/child_groups.html:31 msgid "Update selection" -msgstr "" +msgstr "Обновить выбор" #: aleksis/core/templates/core/group/child_groups.html:35 msgid "Clear all filters" -msgstr "" +msgstr "ОчиÑтить фильтры" #: aleksis/core/templates/core/group/child_groups.html:39 msgid "Currently selected groups" -msgstr "" +msgstr "Выбранные ÑÐµÐ¹Ñ‡Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹" #: aleksis/core/templates/core/group/child_groups.html:52 msgid "Start assigning child groups for this groups" -msgstr "" +msgstr "Ðачать привÑзку дочерних групп к Ñтим группам" #: aleksis/core/templates/core/group/child_groups.html:61 msgid "" @@ -1757,23 +1904,36 @@ msgid "" " Please select some groups in order to go on with assigning.\n" " " msgstr "" +"\n" +" Выберите, пожалуйÑта, неÑколько групп в порÑдке, по какому " +"привÑзывать.\n" +" " #: aleksis/core/templates/core/group/child_groups.html:72 msgid "Current group:" -msgstr "" +msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°:" #: aleksis/core/templates/core/group/child_groups.html:78 msgid "Please be careful!" -msgstr "" +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" +" " #: aleksis/core/templates/core/group/child_groups.html:93 #: aleksis/core/templates/core/group/child_groups.html:128 @@ -1781,91 +1941,95 @@ msgstr "" #: aleksis/core/templates/two_factor/_wizard_actions.html:15 #: aleksis/core/templates/two_factor/_wizard_actions.html:20 msgid "Back" -msgstr "" +msgstr "Ðазад" #: aleksis/core/templates/core/group/child_groups.html:99 #: aleksis/core/templates/core/group/child_groups.html:134 #: aleksis/core/templates/two_factor/_wizard_actions.html:26 msgid "Next" -msgstr "" +msgstr "Следующий" #: aleksis/core/templates/core/group/child_groups.html:106 #: aleksis/core/templates/core/group/child_groups.html:141 #: aleksis/core/templates/core/partials/save_button.html:3 msgid "Save" -msgstr "" +msgstr "Сохранить" #: aleksis/core/templates/core/group/child_groups.html:112 #: aleksis/core/templates/core/group/child_groups.html:147 msgid "Save and next" -msgstr "" +msgstr "Сохранить и продолжить" #: aleksis/core/templates/core/group/edit.html:11 #: aleksis/core/templates/core/group/edit.html:12 msgid "Edit group" -msgstr "" +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 "" +msgstr "Изменить ÑвойÑтва" #: aleksis/core/templates/core/group/full.html:64 msgid "Statistics" -msgstr "" +msgstr "СтатиÑтика" #: aleksis/core/templates/core/group/full.html:67 +#: aleksis/core/templates/core/group/full.html:73 msgid "Count of members" -msgstr "" +msgstr "КоличеÑтво учаÑтников" #: aleksis/core/templates/core/group/full.html:71 +#: aleksis/core/templates/core/group/full.html:81 msgid "Average age" -msgstr "" +msgstr "Средний возраÑÑ‚" #: aleksis/core/templates/core/group/full.html:76 +#: aleksis/core/templates/core/group/full.html:90 msgid "Age range" -msgstr "" +msgstr "ВозраÑтной диапазон" #: aleksis/core/templates/core/group/full.html:76 msgid "years to" -msgstr "" +msgstr "–" #: aleksis/core/templates/core/group/full.html:76 msgid "years " -msgstr "" +msgstr "гг. " #: aleksis/core/templates/core/group/list.html:14 msgid "Create group" -msgstr "" +msgstr "Создать группу" #: aleksis/core/templates/core/group/list.html:17 msgid "Filter groups" -msgstr "" +msgstr "Фильтровать группы" #: aleksis/core/templates/core/group/list.html:24 #: aleksis/core/templates/core/person/list.html:28 msgid "Clear" -msgstr "" +msgstr "ОчиÑтить" #: aleksis/core/templates/core/group/list.html:28 msgid "Selected groups" -msgstr "" +msgstr "Выбранные группы" #: aleksis/core/templates/core/group_type/edit.html:6 #: aleksis/core/templates/core/group_type/edit.html:7 msgid "Edit group type" -msgstr "" +msgstr "Редактировать тип группы" #: aleksis/core/templates/core/group_type/list.html:14 msgid "Create group type" -msgstr "" +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 "" +msgstr "Создать ÑÑылку iCal" #: aleksis/core/templates/core/ical/ical_create.html:16 #: aleksis/core/templates/core/ical/ical_edit.html:16 @@ -1874,125 +2038,159 @@ msgstr "" #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24 #: aleksis/core/templates/two_factor/_wizard_actions.html:6 msgid "Cancel" -msgstr "" +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 "" +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 "" +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." +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 "" +msgstr "Ваши ÑÑылки iCal" #: aleksis/core/templates/core/index.html:4 msgid "Home" -msgstr "" +msgstr "Домой" #: aleksis/core/templates/core/index.html:49 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" +" " #: aleksis/core/templates/core/index.html:59 msgid "Last activities" -msgstr "" +msgstr "ПоÑледние дейÑтвиÑ" #: aleksis/core/templates/core/index.html:77 msgid "No activities available yet." -msgstr "" +msgstr "ДейÑÑ‚Ð²Ð¸Ñ Ð¿Ð¾ÐºÐ° недоÑтупны." #: aleksis/core/templates/core/index.html:82 msgid "Recent notifications" -msgstr "" +msgstr "Свежие уведомлениÑ" #: aleksis/core/templates/core/index.html:98 #: aleksis/core/templates/core/notifications.html:23 msgid "More information →" -msgstr "" +msgstr "Больше информации →" #: aleksis/core/templates/core/index.html:105 #: aleksis/core/templates/core/notifications.html:30 msgid "No notifications available yet." -msgstr "" +msgstr "Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ° ещё недоÑтупны." #: aleksis/core/templates/core/pages/about.html:6 msgid "About AlekSIS®" -msgstr "" +msgstr "Об AlekSIS®" #: aleksis/core/templates/core/pages/about.html:7 msgid "AlekSIS® – The Free School Information System" -msgstr "" +msgstr "AlekSIS® – The Free School Information System" #: aleksis/core/templates/core/pages/about.html:15 msgid "About AlekSIS" -msgstr "" +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" +" 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" +" 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 "" +msgstr "ВебÑайт AlekSIS" #: aleksis/core/templates/core/pages/about.html:31 msgid "Source code" -msgstr "" +msgstr "ИÑходный код" #: aleksis/core/templates/core/pages/about.html:40 msgid "Licence information" -msgstr "" +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" +" 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 "" +msgstr "БеÑÐ¿Ð»Ð°Ñ‚Ð½Ð°Ñ Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð¸Ð»Ð¸ Open Source" #: aleksis/core/templates/core/pages/about.html:51 msgid "Other Licence" -msgstr "" +msgstr "Ð”Ñ€ÑƒÐ³Ð°Ñ Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ" #: aleksis/core/templates/core/pages/about.html:55 msgid "Full licence text" -msgstr "" +msgstr "Полный текÑÑ‚ лицензии" #: aleksis/core/templates/core/pages/about.html:56 msgid "More information about the EUPL" -msgstr "" +msgstr "Больше информации о EUPL" #: aleksis/core/templates/core/pages/about.html:95 #, python-format @@ -2001,11 +2199,14 @@ msgid "" " 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" -msgstr "" +msgstr "Удалить %(object_name)s" #: aleksis/core/templates/core/pages/delete.html:13 #, python-format @@ -2014,114 +2215,142 @@ msgid "" " Do you really want to delete the %(object_name)s \"%(object)s\"?\n" " " msgstr "" +"\n" +" Ð’Ñ‹ дейÑтвительно хотите удалить %(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" +" 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 "" +msgstr "Ðазад" #: aleksis/core/templates/core/pages/system_status.html:12 msgid "System checks" -msgstr "" +msgstr "СиÑтемные проверки" #: aleksis/core/templates/core/pages/system_status.html:22 msgid "Maintenance mode enabled" -msgstr "" +msgstr "Включен режим обÑлуживаниÑ" #: aleksis/core/templates/core/pages/system_status.html:24 msgid "" "\n" -" Only admin and visitors from internal IPs can access thesite.\n" +" Only admin and visitors from internal IPs can access " +"thesite.\n" " " msgstr "" +"\n" +" ДоÑтуп к Ñайту имеют только админиÑтратор и пользователи Ñ " +"внутренними IP-адреÑами.\n" +" " #: aleksis/core/templates/core/pages/system_status.html:36 msgid "Maintenance mode disabled" -msgstr "" +msgstr "Режим обÑÐ»ÑƒÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½" #: aleksis/core/templates/core/pages/system_status.html:37 msgid "Everyone can access the site." -msgstr "" +msgstr "ДоÑтуп к Ñайту еÑть у вÑех." #: aleksis/core/templates/core/pages/system_status.html:47 msgid "Debug mode enabled" -msgstr "" +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" +" " #: aleksis/core/templates/core/pages/system_status.html:56 msgid "Debug mode disabled" -msgstr "" +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" +" " #: aleksis/core/templates/core/pages/system_status.html:71 msgid "System health checks" -msgstr "" +msgstr "Проверки работы ÑиÑтемы" #: aleksis/core/templates/core/pages/system_status.html:77 msgid "Service" -msgstr "" +msgstr "Служба" #: aleksis/core/templates/core/pages/system_status.html:78 #: aleksis/core/templates/core/pages/system_status.html:119 msgid "Status" -msgstr "" +msgstr "СоÑтоÑние" #: aleksis/core/templates/core/pages/system_status.html:79 msgid "Time taken" -msgstr "" +msgstr "ПродолжительноÑть" #: aleksis/core/templates/core/pages/system_status.html:100 msgid "seconds" -msgstr "" +msgstr "Ñек" #: aleksis/core/templates/core/pages/system_status.html:111 msgid "Celery task results" -msgstr "" +msgstr "Результаты Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Celery" #: aleksis/core/templates/core/pages/system_status.html:116 #: aleksis/core/templates/templated_email/celery_failure.email:9 #: aleksis/core/templates/templated_email/celery_failure.email:28 msgid "Task" -msgstr "" +msgstr "ЗаданиÑ" #: aleksis/core/templates/core/pages/system_status.html:117 msgid "ID" -msgstr "" +msgstr "ID" #: aleksis/core/templates/core/pages/system_status.html:118 msgid "Date done" -msgstr "" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ" #: aleksis/core/templates/core/pages/test_pdf.html:7 #: aleksis/core/templates/core/pages/test_pdf.html:8 msgid "Test PDF generation" -msgstr "" +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" +" " #: aleksis/core/templates/core/partials/announcements.html:8 #: aleksis/core/templates/core/partials/announcements.html:35 @@ -2131,6 +2360,9 @@ msgid "" " Valid for %(from)s\n" " " msgstr "" +"\n" +" ДейÑтвительно до %(from)s\n" +" " #: aleksis/core/templates/core/partials/announcements.html:12 #, python-format @@ -2139,6 +2371,9 @@ msgid "" " Valid from %(from)s until %(until)s\n" " " msgstr "" +"\n" +" ДейÑтвительно Ñ %(from)s по %(until)s\n" +" " #: aleksis/core/templates/core/partials/announcements.html:39 #, python-format @@ -2147,42 +2382,53 @@ msgid "" " Valid for %(from)s – %(until)s\n" " " msgstr "" +"\n" +" ДейÑтвительно в период %(from)s – %(until)s\n" +" " #: 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 "" +msgstr "Ðватар" #: aleksis/core/templates/core/partials/avatar_content.html:19 #: aleksis/core/templates/core/partials/avatar_content.html:20 msgid "Identicon" -msgstr "" +msgstr "Идентификатор (иконка)" #: aleksis/core/templates/core/partials/crud_events.html:15 msgid "Changed by" -msgstr "" +msgstr "Изменено" #: aleksis/core/templates/core/partials/crud_events.html:15 msgid "Unknown" -msgstr "" +msgstr "ÐеизвеÑтно" #: aleksis/core/templates/core/partials/language_form.html:15 +#: aleksis/core/templates/core/partials/language_form.html:17 msgid "Language" -msgstr "" +msgstr "Язык" #: aleksis/core/templates/core/partials/language_form.html:27 +#: aleksis/core/templates/core/partials/language_form.html:29 msgid "Select language" -msgstr "" +msgstr "Выберите Ñзык" #: aleksis/core/templates/core/partials/no_person.html:12 msgid "" "\n" -" Your administrator account is not linked to any person. Therefore,\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 "" @@ -2192,140 +2438,150 @@ msgid "" " the managers of AlekSIS at your school.\n" " " msgstr "" +"\n" +" Ваша ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ не ÑвÑзана Ñ Ñ„Ð¸Ð·Ð»Ð¸Ñ†Ð¾Ð¼. Ðто значит,\n" +" что у Ð’Ð°Ñ Ð½ÐµÑ‚ доÑтупа на к какой учебной информации. ОбратитеÑÑŒ," +"\n" +" пожалуйÑта, к админиÑтраторам AlekSIS в Вашем учебном заведении." +"\n" +" " #: aleksis/core/templates/core/perms/assign.html:12 #: aleksis/core/templates/core/perms/assign.html:13 msgid "Assign permission" -msgstr "" +msgstr "Ðазначить доÑтуп" #: aleksis/core/templates/core/perms/assign.html:17 msgid "Selected permission" -msgstr "" +msgstr "Выбранный доÑтуп" #: aleksis/core/templates/core/perms/assign.html:26 msgid "Assign" -msgstr "" +msgstr "Ðазначить" #: aleksis/core/templates/core/perms/list.html:21 msgid "Assign a new permission" -msgstr "" +msgstr "Ðазначить новый доÑтуп" #: aleksis/core/templates/core/perms/list.html:25 msgid "Select" -msgstr "" +msgstr "Отметить" #: aleksis/core/templates/core/perms/list.html:34 msgid "Global (user)" -msgstr "" +msgstr "Глобально (пользователь)" #: aleksis/core/templates/core/perms/list.html:38 msgid "Global (group)" -msgstr "" +msgstr "Глобально (группа)" #: aleksis/core/templates/core/perms/list.html:42 msgid "Object (user)" -msgstr "" +msgstr "Объект (пользователь)" #: aleksis/core/templates/core/perms/list.html:46 msgid "Object (group)" -msgstr "" +msgstr "Объект (группа)" #: aleksis/core/templates/core/perms/list.html:52 msgid "Filter permissions" -msgstr "" +msgstr "Фильтр доÑтупов" #: aleksis/core/templates/core/perms/list.html:58 msgid "Update" -msgstr "" +msgstr "Обновить" #: aleksis/core/templates/core/person/create.html:12 #: aleksis/core/templates/core/person/create.html:13 #: aleksis/core/templates/core/person/list.html:17 msgid "Create person" -msgstr "" +msgstr "Создать физлицо" #: aleksis/core/templates/core/person/edit.html:12 #: aleksis/core/templates/core/person/edit.html:13 msgid "Edit person" -msgstr "" +msgstr "Редактировать физлицо" #: aleksis/core/templates/core/person/full.html:47 #: aleksis/core/templates/core/person/full.html:107 msgid "Impersonate" -msgstr "" +msgstr "МаÑкировка" #: aleksis/core/templates/core/person/full.html:54 #: aleksis/core/templates/core/person/full.html:114 msgid "Invite user" -msgstr "" +msgstr "ПриглаÑить пользователÑ" #: aleksis/core/templates/core/person/full.html:121 msgid "Contact details" -msgstr "" +msgstr "Контактные данные" #: aleksis/core/templates/core/person/full.html:220 msgid "This person didn't upload a personal photo." -msgstr "" +msgstr "Ðта оÑоба не загрузила личное фото." #: aleksis/core/templates/core/person/full.html:228 msgid "Children" -msgstr "" +msgstr "Дети" #: aleksis/core/templates/core/person/list.html:21 msgid "Filter persons" -msgstr "" +msgstr "Фильтр физлиц" #: aleksis/core/templates/core/person/list.html:32 msgid "Selected persons" -msgstr "" +msgstr "Выбранные физлица" #: aleksis/core/templates/core/school_term/create.html:6 #: aleksis/core/templates/core/school_term/create.html:7 #: aleksis/core/templates/core/school_term/list.html:14 msgid "Create school term" -msgstr "" +msgstr "Создать Учебный год" #: aleksis/core/templates/core/school_term/edit.html:6 #: aleksis/core/templates/core/school_term/edit.html:7 msgid "Edit school term" -msgstr "" +msgstr "Редактировать Учебный год" #: aleksis/core/templates/dynamic_preferences/form.html:9 msgid "Site preferences" -msgstr "" +msgstr "СвойÑтва Ñайта" #: aleksis/core/templates/dynamic_preferences/form.html:11 msgid "My preferences" -msgstr "" +msgstr "Мои предпочтениÑ" #: aleksis/core/templates/dynamic_preferences/form.html:13 #, python-format msgid "Preferences for %(instance)s" -msgstr "" +msgstr "СвойÑтва %(instance)s" #: aleksis/core/templates/dynamic_preferences/form.html:25 msgid "Save preferences" -msgstr "" +msgstr "Сохранить ÑвойÑтва" #: aleksis/core/templates/invitations/disabled.html:5 msgid "The invite feature is disabled" -msgstr "" +msgstr "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ñ€Ð¸Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°" #: aleksis/core/templates/invitations/disabled.html:13 msgid "The invite feature is disabled." -msgstr "" +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 "" +msgstr "Ñтранице наÑтроек Ñайта" #: aleksis/core/templates/invitations/enter.html:21 msgid "Accept your invitation" -msgstr "" +msgstr "ПринÑтие Вашего приглашениÑ" #: aleksis/core/templates/invitations/enter.html:25 msgid "" @@ -2334,231 +2590,259 @@ msgid "" " your new user account:\n" " " msgstr "" +"\n" +" Ð”Ð»Ñ Ñ€ÐµÐ³Ð¸Ñтрации Вашей новой учётной запиÑи\n" +" укажите Ñвой код приглашениÑ:\n" +" " #: aleksis/core/templates/invitations/enter.html:37 msgid "Accept invite" -msgstr "" +msgstr "ПринÑть приглашение" #: aleksis/core/templates/invitations/forms/_invite.html:9 #: aleksis/core/templates/invitations/forms/_invite.html:10 #: aleksis/core/templates/invitations/forms/_invite.html:21 msgid "Invite" -msgstr "" +msgstr "Приглашение" #: aleksis/core/templates/invitations/forms/_invite.html:17 msgid "Invite by email address" -msgstr "" +msgstr "Приглашение по Ñл.почте" #: aleksis/core/templates/invitations/forms/_invite.html:26 msgid "Generate invitation code" -msgstr "" +msgstr "Создать код приглашениÑ" #: aleksis/core/templates/invitations/forms/_invite.html:29 msgid "Generate code" -msgstr "" +msgstr "Генерирование кода" #: aleksis/core/templates/invitations/forms/_invite.html:33 msgid "Invitations" -msgstr "" +msgstr "ПриглашениÑ" #: aleksis/core/templates/invitations/messages/invite_accepted.txt:3 #, python-format msgid "The invitation for %(email)s has been accepted." -msgstr "" +msgstr "Приглашение Ð´Ð»Ñ %(email)s было принÑто." #: aleksis/core/templates/oauth2_provider/application/create.html:5 #: aleksis/core/templates/oauth2_provider/application/create.html:6 msgid "Register OAuth2 Application" -msgstr "" +msgstr "РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ OAuth2" #: aleksis/core/templates/oauth2_provider/application/detail.html:5 msgid "OAuth2 Application" -msgstr "" +msgstr "Приложение OAuth2" #: aleksis/core/templates/oauth2_provider/application/detail.html:39 msgid "Client id" -msgstr "" +msgstr "КлиентÑкий ID" #: aleksis/core/templates/oauth2_provider/application/detail.html:47 msgid "Client secret" -msgstr "" +msgstr "КлиентÑкий Ñекрет" #: aleksis/core/templates/oauth2_provider/application/detail.html:55 msgid "Client type" -msgstr "" +msgstr "КлиентÑкий тип" #: aleksis/core/templates/oauth2_provider/application/detail.html:63 msgid "Allowed scopes" -msgstr "" +msgstr "Разрешённые границы дейÑтвиÑ" #: aleksis/core/templates/oauth2_provider/application/detail.html:71 msgid "Redirect URIs" -msgstr "" +msgstr "Перенаправление URI-адреÑов" #: aleksis/core/templates/oauth2_provider/application/detail.html:79 msgid "Skip Authorisation" -msgstr "" +msgstr "ПропуÑтить авторизацию" #: aleksis/core/templates/oauth2_provider/application/edit.html:5 #: aleksis/core/templates/oauth2_provider/application/edit.html:6 msgid "Edit OAuth2 Application" -msgstr "" +msgstr "Редактировать приложение OAuth2" #: aleksis/core/templates/oauth2_provider/application/list.html:11 msgid "Register new application" -msgstr "" +msgstr "ЗарегиÑтрировать новое приложение" #: aleksis/core/templates/oauth2_provider/application/list.html:25 msgid "No applications defined." -msgstr "" +msgstr "ÐŸÑ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ определены." #: aleksis/core/templates/oauth2_provider/authorize.html:5 #: aleksis/core/templates/socialaccount/login.html:5 #: aleksis/core/templates/socialaccount/login.html:6 msgid "Authorize" -msgstr "" +msgstr "Ðвторизовать" #: aleksis/core/templates/oauth2_provider/authorize.html:23 #, python-format msgid "Authorize %(name)s" -msgstr "" +msgstr "Ðвторизовать %(name)s" #: aleksis/core/templates/oauth2_provider/authorize.html:25 msgid "The application requests access to the following scopes:" -msgstr "" +msgstr "Приложение запрашивает разрешение к таким пределам дейÑтвиÑ:" #: aleksis/core/templates/oauth2_provider/authorize.html:40 msgid "Allow" -msgstr "" +msgstr "Разрешить" #: aleksis/core/templates/oauth2_provider/authorize.html:43 msgid "Disallow" -msgstr "" +msgstr "Запретить" #: aleksis/core/templates/oauth2_provider/authorized-oob.html:12 msgid "Success!" -msgstr "" +msgstr "УÑпех!" #: aleksis/core/templates/oauth2_provider/authorized-oob.html:14 msgid "Please return to your application and enter this code:" -msgstr "" +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 msgid "Revoke access" -msgstr "" +msgstr "Отозвать доÑтуп" #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:12 msgid "Are you sure to revoke the access for this application?" -msgstr "" +msgstr "Ви дейÑтвительно хотите отозвать доÑтуп Ð´Ð»Ñ Ñтого приложениÑ?" #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:20 msgid "Revoke" -msgstr "" +msgstr "Отозвать" #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:33 msgid "No authorized applications." -msgstr "" +msgstr "Ðвторизованных приложений нет." #: aleksis/core/templates/offline.html:5 msgid "Network error" -msgstr "" +msgstr "Ошибка Ñети" #: aleksis/core/templates/offline.html:10 msgid "No internet connection." -msgstr "" +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" -" or mobile data is turned on and try again. If you think you are connected, please contact the system\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" " " msgstr "" +"\n" +" При доÑтупе к Ñтой Ñтранице произошла ошибка. Возможно, у Ð’Ð°Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° " +"Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð¾Ð¼. УбедитеÑÑŒ, что Ваш WiFi\n" +" или мобильный интернет включены и попробуйте ещё раз. ЕÑли Ñчитаете, " +"что Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸ÐµÐ¼ вÑÑ‘ хорошо, обратитеÑÑŒ,\n" +" пожалуйÑта, к ÑиÑтемным админиÑтраторам:\n" +" " #: aleksis/core/templates/search/search.html:8 msgid "Global Search" -msgstr "" +msgstr "Глобальный поиÑк" #: aleksis/core/templates/search/search.html:15 msgid "Search Term" -msgstr "" +msgstr "ПоиÑковый термин" #: aleksis/core/templates/search/search.html:26 msgid "Results" -msgstr "" +msgstr "Результаты" #: aleksis/core/templates/search/search.html:38 msgid "No search results could be found to your search." -msgstr "" +msgstr "По Вашему поиÑковому запроÑу результатов нет." #: aleksis/core/templates/search/search.html:87 msgid "Please enter a search term above." -msgstr "" +msgstr "ПожалуйÑта, напишите выше поиÑковый термин." #: aleksis/core/templates/socialaccount/authentication_error.html:5 #: aleksis/core/templates/socialaccount/authentication_error.html:6 msgid "Third-party Account Login Failure" -msgstr "" +msgstr "Ошибка входа Ñторонней учётной запиÑи" #: aleksis/core/templates/socialaccount/authentication_error.html:13 msgid "Third-party Account Login Failure." -msgstr "" +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" +" " #: aleksis/core/templates/socialaccount/connections.html:5 #: aleksis/core/templates/socialaccount/connections.html:6 msgid "Connections" -msgstr "" +msgstr "СоединениÑ" #: aleksis/core/templates/socialaccount/connections.html:24 msgid "Remove" -msgstr "" +msgstr "Удалить" #: aleksis/core/templates/socialaccount/connections.html:34 msgid "You currently have no third-party accounts connected to this account." msgstr "" +"Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ñƒ Ð’Ð°Ñ Ð½ÐµÑ‚ учётных запиÑей третих Ñторон, Ñоединённых Ñ Ñтой учётной " +"запиÑью." #: aleksis/core/templates/socialaccount/connections.html:37 msgid "Add a Third-party Account" -msgstr "" +msgstr "Добавить Ñтороннюю учётную запиÑÑŒ" #: aleksis/core/templates/socialaccount/login.html:12 #, python-format msgid "You are about to connect a new third party account from %(provider)s." -msgstr "" +msgstr "Ð’Ñ‹ подключаете новую учётную запиÑÑŒ третьей Ñтороны от %(provider)s." #: 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 "" +msgstr "Ð’Ñ‹ авторизуетеÑÑŒ при помощи Ñторонней учётной запиÑи от %(provider)s." #: aleksis/core/templates/socialaccount/login.html:28 msgid "Continue" -msgstr "" +msgstr "Продолжить" #: aleksis/core/templates/socialaccount/login_cancelled.html:5 #: aleksis/core/templates/socialaccount/login_cancelled.html:6 #: aleksis/core/templates/socialaccount/login_cancelled.html:13 msgid "Login cancelled" -msgstr "" +msgstr "Вход отменён" #: aleksis/core/templates/socialaccount/login_cancelled.html:15 #, 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" +" " #: aleksis/core/templates/socialaccount/signup.html:12 #, python-format @@ -2566,6 +2850,9 @@ msgid "" "You are about to use your %(provider_name)s account to login to\n" " %(site_name)s. As a final step, please complete the following form:" msgstr "" +"Ð’Ñ‹ на пути к иÑпользованию Ñвоей учётной запиÑи %(provider_name)s\n" +" Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в %(site_name)s. Заполните, пожалуйÑта, Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñту " +"форму:" #: aleksis/core/templates/socialaccount/snippets/provider_list.html:12 #, python-format @@ -2574,6 +2861,9 @@ msgid "" " Login with %(name)s\n" " " msgstr "" +"\n" +" Вход Ñ %(name)s\n" +" " #: aleksis/core/templates/socialaccount/snippets/provider_list.html:21 #, python-format @@ -2582,6 +2872,9 @@ msgid "" " Login with %(name)s\n" " " msgstr "" +"\n" +" Вход Ñ %(name)s\n" +" " #: aleksis/core/templates/socialaccount/snippets/provider_list.html:30 msgid "" @@ -2589,41 +2882,44 @@ msgid "" " No third-party account providers available.\n" " " msgstr "" +"\n" +" Провайдеры Ñторонних учётных запиÑей недоÑтупны.\n" +" " #: aleksis/core/templates/templated_email/base.email:5 #: aleksis/core/templates/templated_email/base.email:16 msgid "Hello" -msgstr "" +msgstr "Привет" #: aleksis/core/templates/templated_email/celery_failure.email:4 #, python-format msgid "Celery task %(task_name)s failed!" -msgstr "" +msgstr "Сбой в задании Celery Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸ÐµÐ¼ %(task_name)s!" #: aleksis/core/templates/templated_email/celery_failure.email:7 #, python-format msgid "the celery task %(task_name)s failed with following information:" -msgstr "" +msgstr "в задании Celery %(task_name)s произошла ошибка:" #: aleksis/core/templates/templated_email/celery_failure.email:10 #: aleksis/core/templates/templated_email/celery_failure.email:29 msgid "Task ID" -msgstr "" +msgstr "ID заданиÑ" #: aleksis/core/templates/templated_email/celery_failure.email:11 #: aleksis/core/templates/templated_email/celery_failure.email:30 msgid "Raised exception" -msgstr "" +msgstr "ИÑключение" #: aleksis/core/templates/templated_email/celery_failure.email:12 #: aleksis/core/templates/templated_email/celery_failure.email:31 msgid "Positional arguments" -msgstr "" +msgstr "Ðргументы" #: aleksis/core/templates/templated_email/celery_failure.email:15 #: aleksis/core/templates/templated_email/celery_failure.email:38 msgid "Keyword arguments" -msgstr "" +msgstr "Ðргументы Ñ ÐºÐ»ÑŽÑ‡ÐµÐ²Ñ‹Ð¼Ð¸ Ñловами" #: aleksis/core/templates/templated_email/celery_failure.email:22 #, python-format @@ -2632,57 +2928,70 @@ msgid "" " the celery task %(task_name)s failed with following information:\n" " " msgstr "" +"\n" +" в задании Celery %(task_name)s произошла ошибка:\n" +" " #: aleksis/core/templates/templated_email/data_checks.email:3 msgid "The system detected some new problems with your data." -msgstr "" +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" +" " #: aleksis/core/templates/templated_email/data_checks.email:23 msgid "Problem description" -msgstr "" +msgstr "ОпиÑание проблемы" #: aleksis/core/templates/templated_email/data_checks.email:24 msgid "Count of objects with new problems" -msgstr "" +msgstr "КоличеÑтво объектов Ñ Ð½Ð¾Ð²Ñ‹Ð¼Ð¸ проблемами" #: aleksis/core/templates/templated_email/notification.email:4 msgid "New notification for" -msgstr "" +msgstr "Ðовое уведомление длÑ" #: aleksis/core/templates/templated_email/notification.email:6 #: aleksis/core/templates/templated_email/notification.email:20 #, python-format msgid "Hello %(notification_user)s," -msgstr "" +msgstr "Привет, %(notification_user)s," #: aleksis/core/templates/templated_email/notification.email:9 #: aleksis/core/templates/templated_email/notification.email:23 msgid "we got a new notification for you:" -msgstr "" +msgstr "у Ð½Ð°Ñ Ð´Ð»Ñ Ð’Ð°Ñ Ð½Ð¾Ð²Ð¾Ðµ уведомление:" #: aleksis/core/templates/templated_email/notification.email:15 #: aleksis/core/templates/templated_email/notification.email:29 msgid "More information" -msgstr "" +msgstr "Подробнее" #: aleksis/core/templates/templated_email/notification.email:17 #, python-format msgid "Sent by %(trans_sender)s at %(trans_created_at)s" -msgstr "" +msgstr "Отправлено %(trans_sender)s в %(trans_created_at)s" #: aleksis/core/templates/templated_email/notification.email:34 #, python-format @@ -2691,16 +3000,19 @@ msgid "" " Sent by %(trans_sender)s at %(trans_created_at)s\n" " " msgstr "" +"\n" +" Отправлено %(trans_sender)s в %(trans_created_at)s\n" +" " #: aleksis/core/templates/templated_email/person_changed.email:4 #, python-format msgid "%(person)s changed their data!" -msgstr "" +msgstr "%(person)s изменили Ñвои данные!" #: aleksis/core/templates/templated_email/person_changed.email:7 #, python-format msgid "the person %(person)s recently changed the following fields:" -msgstr "" +msgstr "физлицо %(person)s менÑет такие полÑ:" #: aleksis/core/templates/templated_email/person_changed.email:15 #, python-format @@ -2709,30 +3021,46 @@ msgid "" " the person %(person)s recently changed the following fields:\n" " " msgstr "" +"\n" +" физлицо %(person)s менÑет такие полÑ:\n" +" " #: aleksis/core/templates/two_factor/_base_focus.html:6 #: aleksis/core/templates/two_factor/core/otp_required.html:22 #: aleksis/core/templates/two_factor/core/setup.html:5 #: aleksis/core/templates/two_factor/profile/profile.html:88 msgid "Enable Two-Factor Authentication" -msgstr "" +msgstr "Включить двух-факторную аутентификацию" #: aleksis/core/templates/two_factor/core/backup_tokens.html:5 #: aleksis/core/templates/two_factor/core/backup_tokens.html:9 #: aleksis/core/templates/two_factor/profile/profile.html:46 msgid "Backup Tokens" -msgstr "" +msgstr "Резервные токены" #: aleksis/core/templates/two_factor/core/backup_tokens.html:14 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" +" " #: aleksis/core/templates/two_factor/core/backup_tokens.html:33 msgid "" @@ -2740,57 +3068,76 @@ msgid "" " Print these tokens and keep them somewhere safe.\n" " " msgstr "" +"\n" +" РаÑпечатайте Ñти токены и Ñохраните их в надёжном меÑте.\n" +" " #: aleksis/core/templates/two_factor/core/backup_tokens.html:39 msgid "You don't have any backup codes yet." -msgstr "" +msgstr "У Ð’Ð°Ñ Ð¿Ð¾ÐºÐ° ещё нет резервных кодов." #: aleksis/core/templates/two_factor/core/backup_tokens.html:45 msgid "Back to Account Security" -msgstr "" +msgstr "Ðазад к безопаÑноÑти учётной запиÑи" #: aleksis/core/templates/two_factor/core/backup_tokens.html:49 msgid "Generate Tokens" -msgstr "" +msgstr "Создать Токены" #: aleksis/core/templates/two_factor/core/login.html:27 #, python-format msgid "Login for %(name)s" -msgstr "" +msgstr "Войти Ð´Ð»Ñ %(name)s" #: aleksis/core/templates/two_factor/core/login.html:30 msgid "Login with username and password" -msgstr "" +msgstr "Войдите Ñ Ð¸Ñпользованием логина и паролÑ" #: aleksis/core/templates/two_factor/core/login.html:38 msgid "" "You have no permission to view this page. Please login with an other\n" " account." msgstr "" +"У Ð’Ð°Ñ Ð½ÐµÑ‚ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° проÑмотр Ñтой Ñтраницы. Войдите, пожалуйÑта,\n" +" Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¹ учётной запиÑью." #: aleksis/core/templates/two_factor/core/login.html:47 msgid "Please login with your account to use the external application." msgstr "" +"Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¾Ð¹Ð´Ð¸Ñ‚Ðµ, пожалуйÑта, в Ñвою учётную " +"запиÑÑŒ." #: aleksis/core/templates/two_factor/core/login.html:54 msgid "Please login to see this page." -msgstr "" +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" +" " #: 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" +" " #: aleksis/core/templates/two_factor/core/login.html:75 msgid "" @@ -2799,46 +3146,69 @@ msgid "" " generator.\n" " " msgstr "" +"\n" +" Ðапишите, пожалуйÑта, токен, Ñ Ð’Ð°ÑˆÐµÐ³Ð¾\n" +" генератора токенов.\n" +" " #: 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" +" " #: aleksis/core/templates/two_factor/core/login.html:109 msgid "Device currently not available?" -msgstr "" +msgstr "Ð¡ÐµÐ¹Ñ‡Ð°Ñ ÑƒÑтройÑтво недоÑтупно?" #: aleksis/core/templates/two_factor/core/login.html:111 msgid "Or, alternatively, use one of your backup phones:" -msgstr "" +msgstr "Или можете воÑпользоватьÑÑ Ð¾Ð´Ð½Ð¸Ð¼ из резервных телефонов:" #: aleksis/core/templates/two_factor/core/login.html:122 msgid "As a last resort, you can use a backup token:" msgstr "" +"Ð’ качеÑтве поÑледней возможноÑти можете воÑпользоватьÑÑ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ñ‹Ð¼ токеном:" #: aleksis/core/templates/two_factor/core/login.html:125 msgid "Use Backup Token" -msgstr "" +msgstr "ВоÑпользоватьÑÑ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ñ‹Ð¼ токеном" #: aleksis/core/templates/two_factor/core/login.html:136 msgid "Use alternative login options" -msgstr "" +msgstr "ВоÑпользоватьÑÑ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ñ‹Ð¼Ð¸ возможноÑÑ‚Ñми Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð°" #: aleksis/core/templates/two_factor/core/otp_required.html:9 msgid "Permission Denied" -msgstr "" +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" +" Ð”Ð»Ñ Ð´Ð¾Ñтупа к данной Ñтранице Ð’Ñ‹ должны включить Ñти функции " +"безопаÑноÑти." #: aleksis/core/templates/two_factor/core/otp_required.html:14 msgid "" @@ -2846,11 +3216,14 @@ msgid "" " account. Enable two-factor authentication for enhanced account\n" " security." msgstr "" +"Ð”Ð²ÑƒÑ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð² Вашей учётной запиÑи отключена\n" +" Ð”Ð»Ñ ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти учётки включите двухфакторную\n" +" аутентификацию." #: aleksis/core/templates/two_factor/core/phone_register.html:5 #: aleksis/core/templates/two_factor/core/phone_register.html:9 msgid "Add Backup Phone" -msgstr "" +msgstr "Добавить резервный телефон" #: aleksis/core/templates/two_factor/core/phone_register.html:12 msgid "" @@ -2858,12 +3231,17 @@ msgid "" " account. This number will be used if your primary method of\n" " registration is not available." msgstr "" +"Ð’Ñ‹ добавлÑете в Ñвою учётную запиÑÑŒ резервный номер телефона.\n" +" Он будет иÑпользован в Ñлучае невозможноÑти региÑтрации Ñ Ð’Ð°ÑˆÐ¸Ð¼\n" +" оÑновным номером." #: aleksis/core/templates/two_factor/core/phone_register.html:16 msgid "" "We've sent a token to your phone number. Please\n" " enter the token you've received." msgstr "" +"Мы отправили токен на Ваш номер. Ðапишите,\n" +" пожалуйÑта, полученный токен." #: aleksis/core/templates/two_factor/core/setup.html:9 msgid "" @@ -2873,6 +3251,12 @@ msgid "" " authentication.\n" " " msgstr "" +"\n" +" Ð’Ñ‹ уÑтанавливаете Ð´Ð»Ñ Ñвоей учётной запиÑи новый уровень " +"безопаÑноÑти.\n" +" Ð”Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð´Ð²ÑƒÑ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð¾Ð¹ аутентификации пройдите неÑколько шагов\n" +" маÑтера наÑтройки.\n" +" " #: aleksis/core/templates/two_factor/core/setup.html:17 msgid "" @@ -2880,15 +3264,27 @@ msgid "" " Please select which authentication method you would like to use:\n" " " msgstr "" +"\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" +" " #: aleksis/core/templates/two_factor/core/setup.html:34 msgid "" @@ -2897,6 +3293,10 @@ msgid "" " text messages on. This number will be validated in the next step.\n" " " msgstr "" +"\n" +" Ðапишите, пожалуйÑта, номер телефона, на который хотите\n" +" получать текÑтовые ÑообщениÑ. Ðа Ñледующем Ñтапе он будет проверен.\n" +" " #: aleksis/core/templates/two_factor/core/setup.html:41 msgid "" @@ -2905,13 +3305,22 @@ msgid "" " This number will be validated in the next step.\n" " " msgstr "" +"\n" +" Ðапишите, пожалуйÑта, номер телефона, на который хотите\n" +" получать звонки. Ðа Ñледующем Ñтапе он будет проверен.\n" +" " #: 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" +" " #: aleksis/core/templates/two_factor/core/setup.html:56 msgid "" @@ -2919,16 +3328,32 @@ msgid "" " We sent you a text message, please enter the tokens we sent.\n" " " msgstr "" +"\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" +" " #: aleksis/core/templates/two_factor/core/setup.html:73 msgid "" @@ -2938,95 +3363,120 @@ msgid "" " account.\n" " " msgstr "" +"\n" +" Ð”Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ и проверки Вашего YubiKey напишите,\n" +" пожалуйÑта, ниже токен. Ваш YubiKey будет привÑзан к Вашей\n" +" учётной запиÑи.\n" +" " #: aleksis/core/templates/two_factor/core/setup_complete.html:5 #: aleksis/core/templates/two_factor/core/setup_complete.html:9 msgid "Two-Factor Authentication successfully enabled" -msgstr "" +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" +" ПоздравлÑем Ñ ÑƒÑпешной наÑтройкой двухфакторной аутентификации.\n" +" " #: aleksis/core/templates/two_factor/core/setup_complete.html:24 #: aleksis/core/templates/two_factor/core/setup_complete.html:44 msgid "Back to Profile" -msgstr "" +msgstr "Ðазад к Профилю" #: aleksis/core/templates/two_factor/core/setup_complete.html:28 #: aleksis/core/templates/two_factor/core/setup_complete.html:48 msgid "Generate backup codes" -msgstr "" +msgstr "Создать резервные коды" #: aleksis/core/templates/two_factor/core/setup_complete.html:34 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" +" " #: aleksis/core/templates/two_factor/core/setup_complete.html:52 #: aleksis/core/templates/two_factor/profile/profile.html:41 msgid "Add Phone Number" -msgstr "" +msgstr "Добавить номер телефона" #: aleksis/core/templates/two_factor/profile/disable.html:5 #: aleksis/core/templates/two_factor/profile/disable.html:9 #: aleksis/core/templates/two_factor/profile/profile.html:63 #: aleksis/core/templates/two_factor/profile/profile.html:73 msgid "Disable Two-Factor Authentication" -msgstr "" +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?" +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" -msgstr "" +msgstr "Отключить" #: aleksis/core/templates/two_factor/profile/profile.html:5 #: aleksis/core/templates/two_factor/profile/profile.html:10 msgid "Account Security" -msgstr "" +msgstr "БезопаÑноÑть учётной запиÑи" #: aleksis/core/templates/two_factor/profile/profile.html:15 msgid "Tokens will be generated by your token generator." -msgstr "" +msgstr "Токены будут Ñозданы Вашим генератором токенов." #: aleksis/core/templates/two_factor/profile/profile.html:17 #, python-format msgid "Primary method: %(primary)s" -msgstr "" +msgstr "ОÑновной метод: %(primary)s" #: aleksis/core/templates/two_factor/profile/profile.html:19 msgid "Tokens will be generated by your YubiKey." -msgstr "" +msgstr "Токены будут Ñозданы Вашим YubiKey." #: aleksis/core/templates/two_factor/profile/profile.html:23 msgid "Backup Phone Numbers" -msgstr "" +msgstr "Резервные номера телефонов" #: aleksis/core/templates/two_factor/profile/profile.html:24 msgid "" "If your primary method is not available, we are able to\n" " send backup tokens to the phone numbers listed below." msgstr "" +"ЕÑли Ваш оÑновной метод будет не доÑтупен, мы Ñможем\n" +" отправить резервные токены на указанные ниже телефонные номера." #: aleksis/core/templates/two_factor/profile/profile.html:33 msgid "Unregister" -msgstr "" +msgstr "Отменить региÑтрацию" #: aleksis/core/templates/two_factor/profile/profile.html:48 msgid "" "If you don't have any device with you, you can access\n" " your account using backup tokens." msgstr "" +"ЕÑли у Ð’Ð°Ñ Ñ Ñобой нет ни одного уÑтройÑтва, Ð’Ñ‹ можете\n" +" получить доÑтуп Ñ Ð¸Ñпользованием резервных токенов." #: aleksis/core/templates/two_factor/profile/profile.html:50 #, python-format @@ -3039,11 +3489,25 @@ msgid_plural "" " You have %(counter)s backup tokens remaining.\n" " " msgstr[0] "" +"\n" +" У Ð’Ð°Ñ Ð¾ÑталÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ один резервный токен.\n" +" " msgstr[1] "" +"\n" +" У Ð’Ð°Ñ Ð¾ÑталоÑÑŒ %(counter)s резервных токена.\n" +" " +msgstr[2] "" +"\n" +" У Ð’Ð°Ñ Ð¾ÑталоÑÑŒ %(counter)s резервных токенов.\n" +" " +msgstr[3] "" +"\n" +" У Ð’Ð°Ñ Ð¾ÑталÑÑ %(counter)s резервный токен.\n" +" " #: aleksis/core/templates/two_factor/profile/profile.html:59 msgid "Show Codes" -msgstr "" +msgstr "Показать коды" #: aleksis/core/templates/two_factor/profile/profile.html:65 msgid "" @@ -3052,6 +3516,11 @@ msgid "" " also disable two-factor authentication for your account.\n" " " msgstr "" +"\n" +" Ðе ÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° то, что мы Вам рекомендуем Ñтого не делать, Ð’Ñ‹ можете \n" +" также отключить двухфакторную аутентификацию Ð´Ð»Ñ Ñвоей учётной " +"запиÑи.\n" +" " #: aleksis/core/templates/two_factor/profile/profile.html:78 msgid "" @@ -3061,197 +3530,270 @@ msgid "" " security.\n" " " msgstr "" +"\n" +" Ð”Ð²ÑƒÑ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð´Ð»Ñ Ð’Ð°ÑˆÐµÐ¹ учётной запиÑи\n" +" не активирована. Ð”Ð»Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти учётной запиÑи включите\n" +" двухфакторную аутентификацию.\n" +" " #: aleksis/core/util/notifications.py:64 msgid "E-Mail" -msgstr "" +msgstr "Ðл.почта" #: aleksis/core/util/notifications.py:65 msgid "SMS" -msgstr "" +msgstr "СМС" #: aleksis/core/util/pdf.py:118 msgid "Progress: Generate PDF file" -msgstr "" +msgstr "Ð’ процеÑÑе: Генерирование файла PDF" #: aleksis/core/util/pdf.py:119 msgid "Generating PDF file …" -msgstr "" +msgstr "Создание файла PDF …" #: aleksis/core/util/pdf.py:120 msgid "The PDF file has been generated successfully." -msgstr "" +msgstr "Файл PDF уÑпешно Ñоздан." #: aleksis/core/util/pdf.py:121 msgid "There was a problem while generating the PDF file." -msgstr "" +msgstr "Во Ð²Ñ€ÐµÐ¼Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° PDF возникла проблема." #: aleksis/core/util/pdf.py:124 msgid "Download PDF" -msgstr "" +msgstr "Скачать PDF" -#: aleksis/core/views.py:292 +#: aleksis/core/views.py:292 aleksis/core/views.py:294 msgid "The school term has been created." -msgstr "" +msgstr "Учебный год Ñоздан." -#: aleksis/core/views.py:304 +#: aleksis/core/views.py:304 aleksis/core/views.py:306 msgid "The school term has been saved." -msgstr "" +msgstr "Учебный год Ñохранён." -#: aleksis/core/views.py:424 +#: aleksis/core/views.py:424 aleksis/core/views.py:426 msgid "The child groups were successfully saved." -msgstr "" +msgstr "Дочерние группы Ñохранены." #: aleksis/core/views.py:443 aleksis/core/views.py:453 +#: aleksis/core/views.py:445 aleksis/core/views.py:455 msgid "The person has been saved." -msgstr "" +msgstr "Физлицо Ñохранено." -#: aleksis/core/views.py:503 +#: aleksis/core/views.py:503 aleksis/core/views.py:505 msgid "The group has been saved." -msgstr "" +msgstr "Группа Ñохранена." -#: aleksis/core/views.py:600 +#: aleksis/core/views.py:600 aleksis/core/views.py:602 msgid "The announcement has been saved." -msgstr "" +msgstr "ОбъÑвление Ñохранено." -#: aleksis/core/views.py:616 +#: aleksis/core/views.py:616 aleksis/core/views.py:618 msgid "The announcement has been deleted." -msgstr "" +msgstr "ОбъÑвление удалено." -#: aleksis/core/views.py:684 +#: aleksis/core/views.py:684 aleksis/core/views.py:686 msgid "The requested preference registry does not exist" -msgstr "" +msgstr "Журнал Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ‹Ð¼Ð¸ ÑвойÑтвами не ÑущеÑтвует" -#: aleksis/core/views.py:703 +#: aleksis/core/views.py:703 aleksis/core/views.py:705 msgid "The preferences have been saved successfully." -msgstr "" +msgstr "СвойÑтва Ñохранены." -#: aleksis/core/views.py:727 +#: aleksis/core/views.py:727 aleksis/core/views.py:729 msgid "The person has been deleted." -msgstr "" +msgstr "Физлицо удалено." -#: aleksis/core/views.py:741 +#: aleksis/core/views.py:741 aleksis/core/views.py:743 msgid "The group has been deleted." -msgstr "" +msgstr "Группа удалена." #: aleksis/core/views.py:773 msgid "The additional_field has been saved." -msgstr "" +msgstr "Дополнительное поле Ñохранено." -#: aleksis/core/views.py:807 +#: aleksis/core/views.py:807 aleksis/core/views.py:809 msgid "The additional field has been deleted." -msgstr "" +msgstr "Дополнительное поле удалено." -#: aleksis/core/views.py:832 +#: aleksis/core/views.py:832 aleksis/core/views.py:834 msgid "The group type has been saved." -msgstr "" +msgstr "Тип группы Ñохранён." -#: aleksis/core/views.py:862 +#: aleksis/core/views.py:862 aleksis/core/views.py:864 msgid "The group type has been deleted." -msgstr "" +msgstr "Тип группы удалён." -#: aleksis/core/views.py:895 +#: aleksis/core/views.py:895 aleksis/core/views.py:897 msgid "Progress: Run data checks" -msgstr "" +msgstr "Ð’ процеÑÑе: ЗапуÑк проверки данных" -#: aleksis/core/views.py:896 +#: aleksis/core/views.py:896 aleksis/core/views.py:898 msgid "Run data checks …" -msgstr "" +msgstr "ЗапуÑкаетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° данных …" -#: aleksis/core/views.py:897 +#: aleksis/core/views.py:897 aleksis/core/views.py:899 msgid "The data checks were run successfully." -msgstr "" +msgstr "Проверка данных уÑпешно запущена." -#: aleksis/core/views.py:898 +#: aleksis/core/views.py:898 aleksis/core/views.py:900 msgid "There was a problem while running data checks." -msgstr "" +msgstr "Во Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð¿ÑƒÑка проверки данных возникла проблема." -#: aleksis/core/views.py:914 +#: aleksis/core/views.py:914 aleksis/core/views.py:916 #, python-brace-format msgid "The solve option '{solve_option_obj.verbose_name}' " -msgstr "" +msgstr "Вариант Ñ€ÐµÑˆÐµÐ½Ð¸Ñ \"{solve_option_obj.verbose_name}\" " -#: aleksis/core/views.py:924 +#: aleksis/core/views.py:924 aleksis/core/views.py:926 msgid "The requested solve option does not exist" -msgstr "" +msgstr "Запрошенный вариант Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ðµ ÑущеÑтвует" -#: aleksis/core/views.py:956 +#: aleksis/core/views.py:956 aleksis/core/views.py:958 msgid "The dashboard widget has been saved." -msgstr "" +msgstr "Виджет информпанели Ñохранён." -#: aleksis/core/views.py:986 +#: aleksis/core/views.py:986 aleksis/core/views.py:988 msgid "The dashboard widget has been created." -msgstr "" +msgstr "Виджет информпанели Ñоздан." -#: aleksis/core/views.py:996 +#: aleksis/core/views.py:996 aleksis/core/views.py:998 msgid "The dashboard widget has been deleted." -msgstr "" +msgstr "Виджет информпанели удалён." -#: aleksis/core/views.py:1067 +#: aleksis/core/views.py:1067 aleksis/core/views.py:1069 msgid "Your dashboard configuration has been saved successfully." -msgstr "" +msgstr "Ваша ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð¿Ð°Ð½ÐµÐ»Ð¸ Ñохранена." -#: aleksis/core/views.py:1069 +#: aleksis/core/views.py:1069 aleksis/core/views.py:1071 msgid "The configuration of the default dashboard has been saved successfully." -msgstr "" +msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð¹/Ñтандартной информпанели." -#: aleksis/core/views.py:1145 +#: aleksis/core/views.py:1145 aleksis/core/views.py:1147 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" -msgstr "" +msgstr "Приглашение уÑпешно Ñоздано. Код приглашениÑ: {code}" -#: aleksis/core/views.py:1236 +#: aleksis/core/views.py:1236 aleksis/core/views.py:1238 msgid "We have successfully assigned the permissions." -msgstr "" +msgstr "Мы уÑпешно назначили доÑтупы." -#: aleksis/core/views.py:1246 +#: aleksis/core/views.py:1246 aleksis/core/views.py:1248 msgid "The global user permission has been deleted." -msgstr "" +msgstr "Глобальный пользовательÑкий доÑтуп удалён." -#: aleksis/core/views.py:1256 +#: aleksis/core/views.py:1256 aleksis/core/views.py:1258 msgid "The global group permission has been deleted." -msgstr "" +msgstr "Глобальный групповой доÑтуп удалён." -#: aleksis/core/views.py:1266 +#: aleksis/core/views.py:1266 aleksis/core/views.py:1268 msgid "The object user permission has been deleted." -msgstr "" +msgstr "Объектный пользовательÑкий доÑтуп удалён." -#: aleksis/core/views.py:1276 +#: aleksis/core/views.py:1276 aleksis/core/views.py:1278 msgid "The object group permission has been deleted." -msgstr "" +msgstr "Объектный групповой доÑтуп удалён." -#: aleksis/core/views.py:1344 +#: aleksis/core/views.py:1344 aleksis/core/views.py:1346 msgid "The requested PDF file does not exist" -msgstr "" +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 "" +msgstr "Запрошенное задание не ÑущеÑтвует или недоÑтупно" -#: aleksis/core/views.py:1409 -msgid "The third-party account could not be disconnected because it is the only login method available." +#: 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:1416 aleksis/core/views.py:1418 msgid "The third-party account has been successfully disconnected." -msgstr "" +msgstr "Ð£Ñ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ третьей Ñтороны уÑпешно отключена." -#: aleksis/core/views.py:1487 -msgid "Person was invited successfully and an email with further instructions has been send to them." +#: 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:1498 +#: aleksis/core/views.py:1498 aleksis/core/views.py:1500 msgid "Person was already invited." -msgstr "" +msgstr "Кто-то уже приглаÑил его/её." #: aleksis/core/views.py:1598 msgid "ICal feed updated successfully" -msgstr "" +msgstr "Лента iCal уÑпешно обновлена" #: aleksis/core/views.py:1608 msgid "ICal feed deleted successfully" -msgstr "" +msgstr "Лента iCal уÑпешно удалена" #: 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." + +#: aleksis/core/data_checks.py:332 +#, python-format +msgid "The field %s couldn't be validated successfully." +msgstr "Поле %s проверить не удалоÑÑŒ." + +#: aleksis/core/models.py:181 +msgid "other" +msgstr "другой" + +#: aleksis/core/settings.py:543 +msgid "Ukrainian" +msgstr "УкраинÑкий" + +#: aleksis/core/templates/500.html:10 +msgid "" +"An unexpected error has\n" +" occurred." +msgstr "" +"Возникла Ð½ÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ \n" +" ошибка." + +#: 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/ical/ical_list.html:4 +#: aleksis/core/templates/core/ical/ical_list.html:5 +msgid "iCal Feeds" +msgstr "iCal-ленты" + +#: aleksis/core/views.py:775 +msgid "The additional field has been saved." +msgstr "Дополнительное поле Ñохранено." + +#: aleksis/core/views.py:1600 +msgid "iCal feed updated successfully" +msgstr "Лента iCal уÑпешно обновлена" + +#: aleksis/core/views.py:1610 +msgid "iCal feed deleted successfully" +msgstr "Лента iCal уÑпешно удалена" + +#: aleksis/core/views.py:1618 +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 02408f44d9e524a7eb8eeb53a378bb6da074e6d0..1fa3254633c1db138c12b13fcf7f674c2a4499b2 100644 --- a/aleksis/core/locale/ru/LC_MESSAGES/djangojs.po +++ b/aleksis/core/locale/ru/LC_MESSAGES/djangojs.po @@ -3,33 +3,33 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-24 19:37+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"Language: \n" +"POT-Creation-Date: 2022-06-25 12:09+0200\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" +"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" +"X-Generator: Weblate 4.12.1\n" #: aleksis/core/static/js/main.js:66 msgid "Today" -msgstr "" +msgstr "СегоднÑ" #: aleksis/core/static/js/main.js:67 msgid "Cancel" -msgstr "" +msgstr "Отменить" #: aleksis/core/static/js/main.js:68 msgid "OK" -msgstr "" +msgstr "OK" #: aleksis/core/static/js/main.js:195 msgid "This page may contain outdated information since there is no internet connection." -msgstr "" +msgstr "Из-за отÑутÑÑ‚Ð²Ð¸Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð° Ñта Ñтраница можеть отображать уÑтаревшую информацию." diff --git a/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po index 09920d095f71a15fbf6707526c6f44ef76033eed..c6ea389cc19f7b8da9cd26512cca741c38b41311 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -38,33 +38,43 @@ 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/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:59 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 "" -#: aleksis/core/data_checks.py:291 +#: aleksis/core/data_checks.py:294 msgid "Deactivate DashboardWidget" msgstr "" -#: aleksis/core/data_checks.py:303 +#: aleksis/core/data_checks.py:306 msgid "Ensure that there are no broken DashboardWidgets." msgstr "" -#: aleksis/core/data_checks.py:304 +#: aleksis/core/data_checks.py:307 msgid "The DashboardWidget was reported broken automatically." msgstr "" +#: aleksis/core/data_checks.py:330 +#, python-format +msgid "Validate field %s of model %s." +msgstr "" + +#: aleksis/core/data_checks.py:332 +#, python-format +msgid "The field %s couldn't be validated successfully." +msgstr "" + #: aleksis/core/feeds.py:52 msgid "Birthday Calendar" msgstr "" @@ -108,11 +118,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 "" @@ -120,7 +130,7 @@ msgstr "" msgid "Base data" msgstr "" -#: aleksis/core/forms.py:55 +#: aleksis/core/forms.py:55 aleksis/core/tables.py:47 msgid "Address" msgstr "" @@ -148,7 +158,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 "" @@ -157,7 +167,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/menus.py:160 aleksis/core/models.py:164 #: aleksis/core/templates/core/person/list.html:8 #: aleksis/core/templates/core/person/list.html:9 msgid "Persons" @@ -167,18 +177,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 "" @@ -214,11 +224,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 "" @@ -321,13 +331,13 @@ msgstr "" msgid "Admin" msgstr "" -#: aleksis/core/menus.py:47 aleksis/core/models.py:867 +#: 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:137 +#: 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" @@ -379,7 +389,7 @@ msgstr "" msgid "People" msgstr "" -#: aleksis/core/menus.py:182 aleksis/core/models.py:1101 +#: 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" @@ -389,7 +399,7 @@ msgstr "" msgid "Groups and child groups" msgstr "" -#: aleksis/core/menus.py:204 aleksis/core/models.py:537 +#: 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" @@ -456,581 +466,585 @@ msgstr "" 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 "" -#: 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 "" -#: 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 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:163 aleksis/core/models.py:1024 +#: aleksis/core/models.py:1381 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:1283 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 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 aleksis/core/templates/core/person/full.html:160 msgid "Home phone" msgstr "" -#: aleksis/core/models.py:203 aleksis/core/templates/core/person/full.html:170 +#: aleksis/core/models.py:208 aleksis/core/templates/core/person/full.html:170 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 +#: 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 aleksis/core/templates/core/person/full.html:235 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:839 +#: 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 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 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:723 aleksis/core/models.py:747 +#: aleksis/core/models.py:838 #: 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:751 msgid "Send notification at" msgstr "" -#: aleksis/core/models.py:748 +#: aleksis/core/models.py:753 msgid "Read" msgstr "" -#: aleksis/core/models.py:749 +#: aleksis/core/models.py:754 msgid "Sent" msgstr "" -#: aleksis/core/models.py:766 +#: aleksis/core/models.py:771 msgid "Notification" msgstr "" -#: aleksis/core/models.py:767 aleksis/core/preferences.py:29 +#: 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 msgid "Notifications" msgstr "" -#: aleksis/core/models.py:835 +#: aleksis/core/models.py:840 msgid "Link to detailed view" msgstr "" -#: aleksis/core/models.py:838 +#: aleksis/core/models.py:843 msgid "Date and time from when to show" msgstr "" -#: aleksis/core/models.py:841 +#: aleksis/core/models.py:846 msgid "Date and time until when to show" msgstr "" -#: aleksis/core/models.py:866 +#: aleksis/core/models.py:871 msgid "Announcement" msgstr "" -#: aleksis/core/models.py:904 +#: aleksis/core/models.py:909 msgid "Announcement recipient" msgstr "" -#: aleksis/core/models.py:905 +#: aleksis/core/models.py:910 msgid "Announcement recipients" msgstr "" -#: aleksis/core/models.py:927 +#: aleksis/core/models.py:932 msgid "Widget Title" msgstr "" -#: aleksis/core/models.py:928 +#: aleksis/core/models.py:933 msgid "Activate Widget" msgstr "" -#: aleksis/core/models.py:929 +#: aleksis/core/models.py:934 msgid "Widget is broken" msgstr "" -#: aleksis/core/models.py:932 +#: aleksis/core/models.py:937 msgid "Size on mobile devices" msgstr "" -#: aleksis/core/models.py:933 +#: aleksis/core/models.py:938 msgid "<= 600 px, 12 columns" msgstr "" -#: aleksis/core/models.py:938 +#: aleksis/core/models.py:943 msgid "Size on tablet devices" msgstr "" -#: aleksis/core/models.py:939 +#: aleksis/core/models.py:944 msgid "> 600 px, 12 columns" msgstr "" -#: aleksis/core/models.py:944 +#: aleksis/core/models.py:949 msgid "Size on desktop devices" msgstr "" -#: aleksis/core/models.py:945 +#: aleksis/core/models.py:950 msgid "> 992 px, 12 columns" msgstr "" -#: aleksis/core/models.py:950 +#: aleksis/core/models.py:955 msgid "Size on large desktop devices" msgstr "" -#: aleksis/core/models.py:951 +#: aleksis/core/models.py:956 msgid "> 1200 px>, 12 columns" msgstr "" -#: aleksis/core/models.py:982 +#: aleksis/core/models.py:987 msgid "Can edit default dashboard" msgstr "" -#: aleksis/core/models.py:983 +#: aleksis/core/models.py:988 msgid "Dashboard Widget" msgstr "" -#: aleksis/core/models.py:984 +#: aleksis/core/models.py:989 msgid "Dashboard Widgets" msgstr "" -#: aleksis/core/models.py:990 +#: aleksis/core/models.py:995 msgid "URL" msgstr "" -#: aleksis/core/models.py:991 +#: aleksis/core/models.py:996 msgid "Icon URL" msgstr "" -#: aleksis/core/models.py:997 +#: aleksis/core/models.py:1002 msgid "External link widget" msgstr "" -#: aleksis/core/models.py:998 +#: aleksis/core/models.py:1003 msgid "External link widgets" msgstr "" -#: aleksis/core/models.py:1004 +#: aleksis/core/models.py:1009 msgid "Content" msgstr "" -#: aleksis/core/models.py:1010 +#: aleksis/core/models.py:1015 msgid "Static content widget" msgstr "" -#: aleksis/core/models.py:1011 +#: aleksis/core/models.py:1016 msgid "Static content widgets" msgstr "" -#: aleksis/core/models.py:1016 +#: aleksis/core/models.py:1021 msgid "Dashboard widget" msgstr "" -#: aleksis/core/models.py:1021 +#: aleksis/core/models.py:1026 msgid "Order" msgstr "" -#: aleksis/core/models.py:1022 +#: aleksis/core/models.py:1027 msgid "Part of the default dashboard" msgstr "" -#: aleksis/core/models.py:1037 +#: aleksis/core/models.py:1042 msgid "Dashboard widget order" msgstr "" -#: aleksis/core/models.py:1038 +#: aleksis/core/models.py:1043 msgid "Dashboard widget orders" msgstr "" -#: aleksis/core/models.py:1044 +#: aleksis/core/models.py:1049 msgid "Menu ID" msgstr "" -#: aleksis/core/models.py:1057 +#: aleksis/core/models.py:1062 msgid "Custom menu" msgstr "" -#: aleksis/core/models.py:1058 +#: aleksis/core/models.py:1063 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/models.py:1079 aleksis/core/models.py:1330 #: 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: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 "" -#: 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 msgid "Related data check task" msgstr "" -#: aleksis/core/models.py:1166 +#: aleksis/core/models.py:1176 msgid "Issue solved" msgstr "" -#: aleksis/core/models.py:1167 +#: aleksis/core/models.py:1177 msgid "Notification sent" msgstr "" -#: aleksis/core/models.py:1180 +#: aleksis/core/models.py:1190 msgid "Data check result" msgstr "" -#: aleksis/core/models.py:1181 +#: aleksis/core/models.py:1191 msgid "Data check results" msgstr "" -#: aleksis/core/models.py:1183 +#: aleksis/core/models.py:1193 msgid "Can run data checks" msgstr "" -#: aleksis/core/models.py:1184 +#: aleksis/core/models.py:1194 msgid "Can solve data check problems" msgstr "" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1201 msgid "E-Mail address" msgstr "" -#: aleksis/core/models.py:1223 +#: aleksis/core/models.py:1233 msgid "Owner" msgstr "" -#: aleksis/core/models.py:1227 +#: aleksis/core/models.py:1237 msgid "File expires at" msgstr "" -#: aleksis/core/models.py:1229 +#: aleksis/core/models.py:1239 msgid "Generated HTML file" msgstr "" -#: aleksis/core/models.py:1231 +#: aleksis/core/models.py:1241 msgid "Generated PDF file" msgstr "" -#: aleksis/core/models.py:1238 +#: aleksis/core/models.py:1248 msgid "PDF file" msgstr "" -#: aleksis/core/models.py:1239 +#: aleksis/core/models.py:1249 msgid "PDF files" msgstr "" -#: aleksis/core/models.py:1244 +#: aleksis/core/models.py:1254 msgid "Task result" msgstr "" -#: aleksis/core/models.py:1247 +#: aleksis/core/models.py:1257 msgid "Task user" msgstr "" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1269 msgid "Task user assignment" msgstr "" -#: aleksis/core/models.py:1260 +#: aleksis/core/models.py:1270 msgid "Task user assignments" msgstr "" -#: aleksis/core/models.py:1276 +#: aleksis/core/models.py:1286 msgid "Additional attributes" msgstr "" -#: aleksis/core/models.py:1314 +#: aleksis/core/models.py:1324 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 "" -#: aleksis/core/models.py:1377 +#: aleksis/core/models.py:1387 msgid "Selected ICal feed" msgstr "" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1396 msgid "Personal Calendar URL" msgstr "" -#: aleksis/core/models.py:1387 +#: aleksis/core/models.py:1397 msgid "Personal Calendar URLs" msgstr "" @@ -1178,94 +1192,94 @@ msgstr "" msgid "Allowed Grant Flows for OAuth applications" msgstr "" -#: aleksis/core/preferences.py:344 -msgid "Available languages" -msgstr "" - -#: aleksis/core/preferences.py:357 +#: aleksis/core/preferences.py:343 msgid "Send emails if data checks detect problems" msgstr "" -#: aleksis/core/preferences.py:368 +#: aleksis/core/preferences.py:354 msgid "Email recipients for data checks problem emails" msgstr "" -#: aleksis/core/preferences.py:379 +#: aleksis/core/preferences.py:365 msgid "Email recipient groups for data checks problem emails" msgstr "" -#: aleksis/core/preferences.py:388 +#: aleksis/core/preferences.py:374 msgid "Show dashboard to users without login" msgstr "" -#: aleksis/core/preferences.py:397 +#: aleksis/core/preferences.py:383 msgid "Allow users to edit their dashboard" msgstr "" -#: aleksis/core/preferences.py:408 +#: aleksis/core/preferences.py:394 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:437 +#: aleksis/core/preferences.py:423 msgid "Contact for notification if a person changes their data" msgstr "" -#: aleksis/core/preferences.py:448 +#: aleksis/core/preferences.py:434 msgid "Prefer personal photos over avatars" msgstr "" -#: aleksis/core/preferences.py:458 +#: aleksis/core/preferences.py:444 msgid "PDF file expiration duration" msgstr "" -#: aleksis/core/preferences.py:459 +#: aleksis/core/preferences.py:445 msgid "in minutes" msgstr "" -#: aleksis/core/preferences.py:469 +#: aleksis/core/preferences.py:455 msgid "Automatically update the dashboard and its widgets" msgstr "" -#: aleksis/core/preferences.py:479 +#: aleksis/core/preferences.py:465 msgid "Automatically update the dashboard and its widgets sitewide" msgstr "" -#: aleksis/core/preferences.py:489 +#: aleksis/core/preferences.py:475 msgid "Country for phone number parsing" msgstr "" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:541 msgid "English" msgstr "" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:542 msgid "German" msgstr "" -#: aleksis/core/tables.py:24 +#: aleksis/core/settings.py:543 +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/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 "" -#: 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 @@ -1304,7 +1318,7 @@ msgstr "" #: aleksis/core/templates/500.html:10 msgid "" "An unexpected error has\n" -" occured." +" occurred." msgstr "" #: aleksis/core/templates/500.html:13 @@ -1804,34 +1818,34 @@ msgstr "" msgid "Edit group" msgstr "" -#: aleksis/core/templates/core/group/full.html:38 +#: 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 "" -#: 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 " +#: aleksis/core/templates/core/group/full.html:93 +#, python-format +msgid "" +"\n" +" %(min)s years to %(max)s years\n" +" " msgstr "" #: aleksis/core/templates/core/group/list.html:14 @@ -1883,7 +1897,7 @@ msgstr "" #: aleksis/core/templates/core/ical/ical_list.html:4 #: aleksis/core/templates/core/ical/ical_list.html:5 -msgid "ICal Feeds" +msgid "iCal Feeds" msgstr "" #: aleksis/core/templates/core/ical/ical_list.html:8 @@ -2167,11 +2181,11 @@ 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 "" @@ -3089,168 +3103,168 @@ msgstr "" msgid "Download PDF" msgstr "" -#: aleksis/core/views.py:292 +#: aleksis/core/views.py:294 msgid "The school term has been created." msgstr "" -#: aleksis/core/views.py:304 +#: aleksis/core/views.py:306 msgid "The school term has been saved." msgstr "" -#: aleksis/core/views.py:424 +#: aleksis/core/views.py:426 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 msgid "The person has been saved." msgstr "" -#: aleksis/core/views.py:503 +#: aleksis/core/views.py:505 msgid "The group has been saved." msgstr "" -#: aleksis/core/views.py:600 +#: aleksis/core/views.py:602 msgid "The announcement has been saved." msgstr "" -#: aleksis/core/views.py:616 +#: aleksis/core/views.py:618 msgid "The announcement has been deleted." msgstr "" -#: aleksis/core/views.py:684 +#: aleksis/core/views.py:686 msgid "The requested preference registry does not exist" msgstr "" -#: aleksis/core/views.py:703 +#: aleksis/core/views.py:705 msgid "The preferences have been saved successfully." msgstr "" -#: aleksis/core/views.py:727 +#: aleksis/core/views.py:729 msgid "The person has been deleted." msgstr "" -#: aleksis/core/views.py:741 +#: aleksis/core/views.py:743 msgid "The group has been deleted." msgstr "" -#: aleksis/core/views.py:773 -msgid "The additional_field has been saved." +#: aleksis/core/views.py:775 +msgid "The additional field has been saved." msgstr "" -#: aleksis/core/views.py:807 +#: aleksis/core/views.py:809 msgid "The additional field has been deleted." msgstr "" -#: aleksis/core/views.py:832 +#: aleksis/core/views.py:834 msgid "The group type has been saved." msgstr "" -#: aleksis/core/views.py:862 +#: aleksis/core/views.py:864 msgid "The group type has been deleted." msgstr "" -#: aleksis/core/views.py:895 +#: aleksis/core/views.py:897 msgid "Progress: Run data checks" msgstr "" -#: aleksis/core/views.py:896 +#: aleksis/core/views.py:898 msgid "Run data checks …" msgstr "" -#: aleksis/core/views.py:897 +#: aleksis/core/views.py:899 msgid "The data checks were run successfully." msgstr "" -#: aleksis/core/views.py:898 +#: aleksis/core/views.py:900 msgid "There was a problem while running data checks." msgstr "" -#: aleksis/core/views.py:914 +#: aleksis/core/views.py:916 #, python-brace-format msgid "The solve option '{solve_option_obj.verbose_name}' " msgstr "" -#: aleksis/core/views.py:924 +#: aleksis/core/views.py:926 msgid "The requested solve option does not exist" msgstr "" -#: aleksis/core/views.py:956 +#: aleksis/core/views.py:958 msgid "The dashboard widget has been saved." msgstr "" -#: aleksis/core/views.py:986 +#: aleksis/core/views.py:988 msgid "The dashboard widget has been created." msgstr "" -#: aleksis/core/views.py:996 +#: aleksis/core/views.py:998 msgid "The dashboard widget has been deleted." msgstr "" -#: aleksis/core/views.py:1067 +#: aleksis/core/views.py:1069 msgid "Your dashboard configuration has been saved successfully." msgstr "" -#: aleksis/core/views.py:1069 +#: aleksis/core/views.py:1071 msgid "The configuration of the default dashboard has been saved successfully." msgstr "" -#: aleksis/core/views.py:1145 +#: aleksis/core/views.py:1147 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "" -#: aleksis/core/views.py:1236 +#: aleksis/core/views.py:1238 msgid "We have successfully assigned the permissions." msgstr "" -#: aleksis/core/views.py:1246 +#: aleksis/core/views.py:1248 msgid "The global user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1256 +#: aleksis/core/views.py:1258 msgid "The global group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1266 +#: aleksis/core/views.py:1268 msgid "The object user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1276 +#: aleksis/core/views.py:1278 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 "" -#: 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 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:1498 +#: aleksis/core/views.py:1500 msgid "Person was already invited." msgstr "" -#: aleksis/core/views.py:1598 -msgid "ICal feed updated successfully" +#: aleksis/core/views.py:1600 +msgid "iCal feed updated successfully" msgstr "" -#: aleksis/core/views.py:1608 -msgid "ICal feed deleted successfully" +#: aleksis/core/views.py:1610 +msgid "iCal feed deleted successfully" msgstr "" -#: aleksis/core/views.py:1616 -msgid "ICal feed created successfully" +#: 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 509b8a65f4bdbc6ac9c1ec0282c1ff99b6f1f8c1..26f9dbd80e1c93710efaf2abf60ffd0754e043b6 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/aleksis/core/locale/uk/LC_MESSAGES/django.po b/aleksis/core/locale/uk/LC_MESSAGES/django.po index 2334b98a3d6953ce835a80369615359e8ac25d5e..58a52db0bbb5a0611820645658142a54de9b6e89 100644 --- a/aleksis/core/locale/uk/LC_MESSAGES/django.po +++ b/aleksis/core/locale/uk/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-05-24 19:37+0200\n" -"PO-Revision-Date: 2022-06-01 17:35+0000\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" @@ -40,33 +40,33 @@ msgstr "Ел.адреÑа" #: aleksis/core/apps.py:170 msgid "Home and mobile phone" -msgstr "Домашній та мобільний телефон" +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/templates/core/group/list.html:9 -#: aleksis/core/templates/core/person/full.html:246 +#: 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:56 aleksis/core/data_checks.py:59 msgid "Ignore problem" msgstr "Ігнорувати проблему" -#: aleksis/core/data_checks.py:185 +#: 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:291 aleksis/core/data_checks.py:294 msgid "Deactivate DashboardWidget" msgstr "Вимкнути віджет інформпанелі" -#: aleksis/core/data_checks.py:303 +#: aleksis/core/data_checks.py:303 aleksis/core/data_checks.py:306 msgid "Ensure that there are no broken DashboardWidgets." msgstr "ПереконайтеÑÑ Ñƒ відÑутноÑті збійних віджетів на інформпанелі." -#: aleksis/core/data_checks.py:304 +#: aleksis/core/data_checks.py:304 aleksis/core/data_checks.py:307 msgid "The DashboardWidget was reported broken automatically." msgstr "Віджет інформпанелі повідомив про збій в автоматичному режимі." @@ -114,10 +114,12 @@ msgid "Content type" msgstr "Тип зміÑту" #: aleksis/core/filters.py:113 aleksis/core/models.py:715 +#: aleksis/core/models.py:720 msgid "User" msgstr "КориÑтувач" #: aleksis/core/filters.py:135 aleksis/core/models.py:488 +#: aleksis/core/models.py:493 msgid "Group" msgstr "Група" @@ -125,7 +127,7 @@ msgstr "Група" msgid "Base data" msgstr "ОÑновні дані" -#: aleksis/core/forms.py:55 +#: aleksis/core/forms.py:55 aleksis/core/tables.py:47 msgid "Address" msgstr "ÐдреÑа" @@ -154,6 +156,7 @@ msgid "This username is already in use." msgstr "Такий логін вже зайнÑтий." #: aleksis/core/forms.py:153 aleksis/core/models.py:136 +#: aleksis/core/models.py:141 msgid "School term" msgstr "Ðавчальний рік" @@ -164,7 +167,7 @@ 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/templates/core/person/list.html:9 aleksis/core/models.py:164 msgid "Persons" msgstr "ОÑоби" @@ -173,17 +176,18 @@ msgid "Additional data" msgstr "Додаткові дані" #: aleksis/core/forms.py:157 aleksis/core/models.py:212 -#: aleksis/core/models.py:541 +#: aleksis/core/models.py:541 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: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:87 aleksis/core/models.py:92 msgid "Time" msgstr "ЧаÑ" @@ -200,7 +204,8 @@ 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 @@ -220,16 +225,18 @@ msgid "Please enter your invitation code." msgstr "Ðапишіть, будь лаÑка, Ñвій код запрошеннÑ." #: aleksis/core/forms.py:418 aleksis/core/models.py:187 +#: aleksis/core/models.py:192 msgid "First name" msgstr "Ім'Ñ" #: aleksis/core/forms.py:419 aleksis/core/models.py:188 +#: aleksis/core/models.py:193 msgid "Last name" msgstr "Прізвище" #: aleksis/core/forms.py:428 msgid "A person is using this e-mail address" -msgstr "ОÑоба кориÑтуєтьÑÑ Ñ†Ñ–Ñ”ÑŽ ел.адреÑою" +msgstr "Цією ел.адреÑою хтоÑÑŒ кориÑтуєтьÑÑ" #: aleksis/core/forms.py:456 msgid "Who should get the permission?" @@ -248,12 +255,14 @@ 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." -msgstr "Ви повинні надати дозвіл до вÑÑ–Ñ… об'єктів або до деÑких." +msgstr "Ви повинні надати дозвіл до вÑÑ–Ñ… та/або до деÑких об'єктів." #: aleksis/core/forms.py:586 msgid "Address data" @@ -329,12 +338,14 @@ 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 "Ðавчальний рік" @@ -363,7 +374,7 @@ 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 "Первірки даних" +msgstr "Перевірки даних" #: aleksis/core/menus.py:119 aleksis/core/templates/core/perms/list.html:13 #: aleksis/core/templates/core/perms/list.html:14 @@ -387,6 +398,7 @@ 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 "Типи груп" @@ -397,6 +409,7 @@ 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 "Додаткові полÑ" @@ -461,581 +474,608 @@ msgstr "Вийти" msgid "Linked school term" msgstr "Пов'Ñзаний навчальний рік" -#: aleksis/core/models.py:77 +#: aleksis/core/models.py:77 aleksis/core/models.py:82 msgid "Boolean (Yes/No)" msgstr "Логічне (Так/ÐÑ–)" -#: aleksis/core/models.py:78 +#: aleksis/core/models.py:78 aleksis/core/models.py:83 msgid "Text (one line)" msgstr "ТекÑÑ‚ (один Ñ€Ñдок)" -#: aleksis/core/models.py:80 +#: aleksis/core/models.py:80 aleksis/core/models.py:85 msgid "Date and time" msgstr "Дата Ñ– чаÑ" -#: aleksis/core/models.py:81 +#: 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:83 aleksis/core/models.py:88 msgid "Integer" msgstr "Ціле" -#: aleksis/core/models.py:84 +#: aleksis/core/models.py:84 aleksis/core/models.py:89 msgid "IP address" msgstr "IP адреÑа" -#: aleksis/core/models.py:85 +#: 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:86 aleksis/core/models.py:91 msgid "Text (multi-line)" msgstr "ТекÑÑ‚ (багаторÑдковий)" -#: aleksis/core/models.py:88 +#: 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:1374 aleksis/core/models.py:105 +#: aleksis/core/models.py:1077 aleksis/core/models.py:1384 msgid "Name" msgstr "Повне ім'Ñ" -#: aleksis/core/models.py:102 +#: aleksis/core/models.py:102 aleksis/core/models.py:107 msgid "Start date" msgstr "Дата початку" -#: aleksis/core/models.py:103 +#: aleksis/core/models.py:103 aleksis/core/models.py:108 msgid "End date" msgstr "Дата закінченнÑ" -#: aleksis/core/models.py:122 +#: 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: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:1371 aleksis/core/models.py:163 +#: aleksis/core/models.py:1024 aleksis/core/models.py:1381 msgid "Person" msgstr "ОÑоба" -#: aleksis/core/models.py:161 +#: aleksis/core/models.py:161 aleksis/core/models.py:166 msgid "Can view address" msgstr "Може бачити адреÑу" -#: aleksis/core/models.py:162 +#: 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:163 aleksis/core/models.py:168 msgid "Can view photo" msgstr "Може бачити фото" -#: aleksis/core/models.py:164 +#: 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:165 aleksis/core/models.py:170 msgid "Can view persons groups" msgstr "Може бачити групи оÑоби" -#: aleksis/core/models.py:166 +#: 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:176 aleksis/core/models.py:181 msgid "female" msgstr "жін" -#: aleksis/core/models.py:176 +#: 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:189 aleksis/core/models.py:1283 msgid "Linked user" msgstr "Пов'Ñзаний кориÑтувач" -#: aleksis/core/models.py:190 +#: 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 msgid "Short name" msgstr "Коротке ім'Ñ" -#: aleksis/core/models.py:197 +#: aleksis/core/models.py:197 aleksis/core/models.py:202 msgid "Street" msgstr "ВулицÑ" -#: aleksis/core/models.py:198 +#: aleksis/core/models.py:198 aleksis/core/models.py:203 msgid "Street number" msgstr "Ðомер будинку" -#: aleksis/core/models.py:199 +#: aleksis/core/models.py:199 aleksis/core/models.py:204 msgid "Postal code" msgstr "Поштовий індекÑ" -#: aleksis/core/models.py:200 +#: 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:207 aleksis/core/models.py:212 msgid "Date of birth" msgstr "Дата народженнÑ" -#: aleksis/core/models.py:208 +#: aleksis/core/models.py:208 aleksis/core/models.py:213 msgid "Place of birth" msgstr "МіÑце народженнÑ" -#: aleksis/core/models.py:209 +#: 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: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: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 msgid "Description" msgstr "ОпиÑ" -#: aleksis/core/models.py:459 +#: aleksis/core/models.py:459 aleksis/core/models.py:464 msgid "Title of field" msgstr "Ðазва полÑ" -#: aleksis/core/models.py:461 +#: aleksis/core/models.py:461 aleksis/core/models.py:466 msgid "Type of field" msgstr "Тип полÑ" -#: aleksis/core/models.py:463 +#: aleksis/core/models.py:463 aleksis/core/models.py:468 msgid "Required" msgstr "Ðеобхідне" -#: aleksis/core/models.py:464 +#: aleksis/core/models.py:464 aleksis/core/models.py:469 msgid "Help text / description" msgstr "Допоміжний текÑÑ‚/опиÑ" -#: aleksis/core/models.py:470 +#: 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:471 aleksis/core/models.py:476 msgid "Addtitional fields for groups" msgstr "Додаткові Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿" -#: aleksis/core/models.py:491 +#: 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:492 aleksis/core/models.py:497 msgid "Can view statistics about group." msgstr "Може бачити ÑтатиÑтику групи." -#: aleksis/core/models.py:504 +#: aleksis/core/models.py:504 aleksis/core/models.py:509 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: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/templates/core/announcement/list.html:18 +#: aleksis/core/models.py:723 aleksis/core/models.py:747 +#: aleksis/core/models.py:838 msgid "Title" msgstr "Ðазва" -#: aleksis/core/models.py:721 +#: aleksis/core/models.py:721 aleksis/core/models.py:726 msgid "Application" msgstr "Додаток" -#: aleksis/core/models.py:727 +#: aleksis/core/models.py:727 aleksis/core/models.py:732 msgid "Activity" msgstr "ÐктивніÑть" -#: aleksis/core/models.py:728 +#: aleksis/core/models.py:728 aleksis/core/models.py:733 msgid "Activities" msgstr "ÐктивноÑті" -#: aleksis/core/models.py:734 +#: aleksis/core/models.py:734 aleksis/core/models.py:739 msgid "Sender" msgstr "Відправник" -#: aleksis/core/models.py:739 +#: 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:746 aleksis/core/models.py:751 msgid "Send notification at" msgstr "ÐадіÑлати ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾" -#: aleksis/core/models.py:748 +#: aleksis/core/models.py:748 aleksis/core/models.py:753 msgid "Read" msgstr "Читати" -#: aleksis/core/models.py:749 +#: aleksis/core/models.py:749 aleksis/core/models.py:754 msgid "Sent" msgstr "ÐадіÑлано" -#: aleksis/core/models.py:766 +#: aleksis/core/models.py:766 aleksis/core/models.py:771 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/templates/core/notifications.html:5 aleksis/core/models.py:772 msgid "Notifications" msgstr "СповіщеннÑ" -#: aleksis/core/models.py:835 +#: aleksis/core/models.py:835 aleksis/core/models.py:840 msgid "Link to detailed view" msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° детальний переглÑд" -#: aleksis/core/models.py:838 +#: aleksis/core/models.py:838 aleksis/core/models.py:843 msgid "Date and time from when to show" msgstr "Дата Ñ– чаÑ, з Ñкого показувати" -#: aleksis/core/models.py:841 +#: aleksis/core/models.py:841 aleksis/core/models.py:846 msgid "Date and time until when to show" msgstr "Дата Ñ– чаÑ, до Ñкого показувати" -#: aleksis/core/models.py:866 +#: aleksis/core/models.py:866 aleksis/core/models.py:871 msgid "Announcement" msgstr "ОголошеннÑ" -#: aleksis/core/models.py:904 +#: aleksis/core/models.py:904 aleksis/core/models.py:909 msgid "Announcement recipient" msgstr "Отримувач оголошеннÑ" -#: aleksis/core/models.py:905 +#: aleksis/core/models.py:905 aleksis/core/models.py:910 msgid "Announcement recipients" msgstr "Отримувачі оголошеннÑ" -#: aleksis/core/models.py:927 +#: aleksis/core/models.py:927 aleksis/core/models.py:932 msgid "Widget Title" msgstr "Ðазва віджета" -#: aleksis/core/models.py:928 +#: aleksis/core/models.py:928 aleksis/core/models.py:933 msgid "Activate Widget" msgstr "Ðктивувати віджет" -#: aleksis/core/models.py:929 +#: aleksis/core/models.py:929 aleksis/core/models.py:934 msgid "Widget is broken" msgstr "Віджет зламавÑÑ" -#: aleksis/core/models.py:932 +#: aleksis/core/models.py:932 aleksis/core/models.py:937 msgid "Size on mobile devices" msgstr "Розмір на мобільних" -#: aleksis/core/models.py:933 +#: aleksis/core/models.py:933 aleksis/core/models.py:938 msgid "<= 600 px, 12 columns" msgstr "<= 600 пікÑ, 12 Ñтовпчиків" -#: aleksis/core/models.py:938 +#: aleksis/core/models.py:938 aleksis/core/models.py:943 msgid "Size on tablet devices" msgstr "Розмір на планшетах" -#: aleksis/core/models.py:939 +#: aleksis/core/models.py:939 aleksis/core/models.py:944 msgid "> 600 px, 12 columns" msgstr "> 600 пікÑ, 12 Ñтовпчиків" -#: aleksis/core/models.py:944 +#: aleksis/core/models.py:944 aleksis/core/models.py:949 msgid "Size on desktop devices" msgstr "Розмір на ПК" -#: aleksis/core/models.py:945 +#: aleksis/core/models.py:945 aleksis/core/models.py:950 msgid "> 992 px, 12 columns" msgstr "> 992 пікÑ, 12 Ñтовпчиків" -#: aleksis/core/models.py:950 +#: aleksis/core/models.py:950 aleksis/core/models.py:955 msgid "Size on large desktop devices" msgstr "Розмір на великих екранах" -#: aleksis/core/models.py:951 +#: aleksis/core/models.py:951 aleksis/core/models.py:956 msgid "> 1200 px>, 12 columns" msgstr "> 1200 пікÑ, 12 Ñтовпчиків" -#: aleksis/core/models.py:982 +#: aleksis/core/models.py:982 aleksis/core/models.py:987 msgid "Can edit default dashboard" msgstr "Може редагувати типову/Ñтандартну інформпанель" -#: aleksis/core/models.py:983 +#: aleksis/core/models.py:983 aleksis/core/models.py:988 msgid "Dashboard Widget" msgstr "Віджет інформпанелі" -#: aleksis/core/models.py:984 +#: aleksis/core/models.py:984 aleksis/core/models.py:989 msgid "Dashboard Widgets" msgstr "Віджети інформпанелі" -#: aleksis/core/models.py:990 +#: aleksis/core/models.py:990 aleksis/core/models.py:995 msgid "URL" msgstr "URL" -#: aleksis/core/models.py:991 +#: aleksis/core/models.py:991 aleksis/core/models.py:996 msgid "Icon URL" msgstr "Іконка URL" -#: aleksis/core/models.py:997 +#: aleksis/core/models.py:997 aleksis/core/models.py:1002 msgid "External link widget" msgstr "Зовнішнє поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° віджет" -#: aleksis/core/models.py:998 +#: aleksis/core/models.py:998 aleksis/core/models.py:1003 msgid "External link widgets" msgstr "Зовнішні поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° віджети" -#: aleksis/core/models.py:1004 +#: aleksis/core/models.py:1004 aleksis/core/models.py:1009 msgid "Content" msgstr "ЗміÑÑ‚" -#: aleksis/core/models.py:1010 +#: aleksis/core/models.py:1010 aleksis/core/models.py:1015 msgid "Static content widget" msgstr "Віджет з поÑтійним зміÑтом" -#: aleksis/core/models.py:1011 +#: aleksis/core/models.py:1011 aleksis/core/models.py:1016 msgid "Static content widgets" msgstr "Віджети з поÑтійним зміÑтом" -#: aleksis/core/models.py:1016 +#: aleksis/core/models.py:1016 aleksis/core/models.py:1021 msgid "Dashboard widget" msgstr "Віджет інформпанелі" -#: aleksis/core/models.py:1021 +#: aleksis/core/models.py:1021 aleksis/core/models.py:1026 msgid "Order" msgstr "ПорÑдок" -#: aleksis/core/models.py:1022 +#: aleksis/core/models.py:1022 aleksis/core/models.py:1027 msgid "Part of the default dashboard" msgstr "ЧаÑтина типової інформпанелі" -#: aleksis/core/models.py:1037 +#: aleksis/core/models.py:1037 aleksis/core/models.py:1042 msgid "Dashboard widget order" msgstr "ПорÑдок віджету на інформпанелі" -#: aleksis/core/models.py:1038 +#: aleksis/core/models.py:1038 aleksis/core/models.py:1043 msgid "Dashboard widget orders" msgstr "ПорÑдок віджетів на інформпанелі" -#: aleksis/core/models.py:1044 +#: aleksis/core/models.py:1044 aleksis/core/models.py:1049 msgid "Menu ID" msgstr "Меню ID" -#: aleksis/core/models.py:1057 +#: aleksis/core/models.py:1057 aleksis/core/models.py:1062 msgid "Custom menu" msgstr "КориÑтувацьке меню" -#: aleksis/core/models.py:1058 +#: aleksis/core/models.py:1058 aleksis/core/models.py:1063 msgid "Custom menus" msgstr "КориÑтувацькі меню" -#: aleksis/core/models.py:1068 +#: 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 +#: aleksis/core/models.py:1079 aleksis/core/models.py:1330 msgid "Icon" msgstr "Іконка" -#: aleksis/core/models.py:1078 +#: aleksis/core/models.py:1078 aleksis/core/models.py:1085 msgid "Custom menu item" msgstr "Пункт кориÑтувацького меню" -#: aleksis/core/models.py:1079 +#: aleksis/core/models.py:1079 aleksis/core/models.py:1086 msgid "Custom menu items" msgstr "Пункти кориÑтувацького меню" -#: aleksis/core/models.py:1093 +#: 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:1114 aleksis/core/models.py:1124 msgid "Can view system status" msgstr "Може переглÑдати Ñтан ÑиÑтеми" -#: aleksis/core/models.py:1115 +#: aleksis/core/models.py:1115 aleksis/core/models.py:1125 msgid "Can manage data" msgstr "Може керувати даними" -#: aleksis/core/models.py:1116 +#: aleksis/core/models.py:1116 aleksis/core/models.py:1126 msgid "Can impersonate" msgstr "Може маÑкуватиÑÑ" -#: aleksis/core/models.py:1117 +#: aleksis/core/models.py:1117 aleksis/core/models.py:1127 msgid "Can use search" msgstr "Може шукати" -#: aleksis/core/models.py:1118 +#: 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:1119 aleksis/core/models.py:1129 msgid "Can change person preferences" msgstr "Може змінювати влаÑтивоÑті оÑоби" -#: aleksis/core/models.py:1120 +#: 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:1121 aleksis/core/models.py:1131 msgid "Can test PDF generation" msgstr "Може генерувати теÑтові PDF" -#: aleksis/core/models.py:1122 +#: aleksis/core/models.py:1122 aleksis/core/models.py:1132 msgid "Can invite persons" msgstr "Може запрошувати оÑіб" -#: aleksis/core/models.py:1158 +#: aleksis/core/models.py:1158 aleksis/core/models.py:1168 msgid "Related data check task" msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ пов'Ñзаних даних" -#: aleksis/core/models.py:1166 +#: aleksis/core/models.py:1166 aleksis/core/models.py:1176 msgid "Issue solved" msgstr "Проблема вирішена" -#: aleksis/core/models.py:1167 +#: aleksis/core/models.py:1167 aleksis/core/models.py:1177 msgid "Notification sent" msgstr "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð°Ð´Ñ–Ñлане" -#: aleksis/core/models.py:1180 +#: aleksis/core/models.py:1180 aleksis/core/models.py:1190 msgid "Data check result" msgstr "Результат перевірки даних" -#: aleksis/core/models.py:1181 +#: aleksis/core/models.py:1181 aleksis/core/models.py:1191 msgid "Data check results" msgstr "Результати перевірки даних" -#: aleksis/core/models.py:1183 +#: aleksis/core/models.py:1183 aleksis/core/models.py:1193 msgid "Can run data checks" msgstr "Може запуÑкати перевірки даних" -#: aleksis/core/models.py:1184 +#: aleksis/core/models.py:1184 aleksis/core/models.py:1194 msgid "Can solve data check problems" msgstr "Може розв'Ñзувати проблеми перевірки даних" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1191 aleksis/core/models.py:1201 msgid "E-Mail address" msgstr "ÐдреÑа ел.пошти" -#: aleksis/core/models.py:1223 +#: aleksis/core/models.py:1223 aleksis/core/models.py:1233 msgid "Owner" msgstr "ВлаÑник" -#: aleksis/core/models.py:1227 +#: aleksis/core/models.py:1227 aleksis/core/models.py:1237 msgid "File expires at" msgstr "Файл дійÑний до" -#: aleksis/core/models.py:1229 +#: aleksis/core/models.py:1229 aleksis/core/models.py:1239 msgid "Generated HTML file" msgstr "Згенерований файл HTML" -#: aleksis/core/models.py:1231 +#: aleksis/core/models.py:1231 aleksis/core/models.py:1241 msgid "Generated PDF file" msgstr "Згенерований файл PDF" -#: aleksis/core/models.py:1238 +#: aleksis/core/models.py:1238 aleksis/core/models.py:1248 msgid "PDF file" msgstr "Файл PDF" -#: aleksis/core/models.py:1239 +#: aleksis/core/models.py:1239 aleksis/core/models.py:1249 msgid "PDF files" msgstr "Файли PDF" -#: aleksis/core/models.py:1244 +#: aleksis/core/models.py:1244 aleksis/core/models.py:1254 msgid "Task result" msgstr "Результат завданнÑ" -#: aleksis/core/models.py:1247 +#: aleksis/core/models.py:1247 aleksis/core/models.py:1257 msgid "Task user" msgstr "КориÑтувач завданнÑ" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1259 aleksis/core/models.py:1269 msgid "Task user assignment" msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача завданнÑ" -#: aleksis/core/models.py:1260 +#: aleksis/core/models.py:1260 aleksis/core/models.py:1270 msgid "Task user assignments" msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів завданнÑ" -#: aleksis/core/models.py:1276 +#: aleksis/core/models.py:1276 aleksis/core/models.py:1286 msgid "Additional attributes" msgstr "Додаткові атрибути" -#: aleksis/core/models.py:1314 +#: aleksis/core/models.py:1314 aleksis/core/models.py:1324 msgid "Allowed scopes that clients can request" msgstr "Дозволені межі дії, Ñкі можуть запитувати клієнти" -#: aleksis/core/models.py:1324 -msgid "This image will be shown as icon in the authorization flow. It should be squared." -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:1373 aleksis/core/models.py:1383 msgid "UUID" msgstr "UUID" -#: aleksis/core/models.py:1377 +#: aleksis/core/models.py:1377 aleksis/core/models.py:1387 msgid "Selected ICal feed" -msgstr "Стрічка обраного ICal" +msgstr "Стрічка обраного iCal" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1386 aleksis/core/models.py:1396 msgid "Personal Calendar URL" msgstr "URL-поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¾ÑобиÑтого календарÑ" -#: aleksis/core/models.py:1387 +#: aleksis/core/models.py:1387 aleksis/core/models.py:1397 msgid "Personal Calendar URLs" msgstr "URL-поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¾ÑобиÑтих календарів" @@ -1140,8 +1180,10 @@ 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 "Пов'Ñзувати Ñ–Ñнуючих оÑіб з новими кориÑтувачами автоматично за ел.адреÑами" +msgid "" +"Automatically link existing persons to new users by their e-mail address" +msgstr "" +"Пов'Ñзувати Ñ–Ñнуючих оÑіб з новими кориÑтувачами автоматично за ел.адреÑами" #: aleksis/core/preferences.py:252 msgid "Display name of the school" @@ -1187,67 +1229,68 @@ msgstr "Дозволені потоки грантів Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÑ–Ð² msgid "Available languages" msgstr "ДоÑтупні мови" -#: aleksis/core/preferences.py:357 +#: aleksis/core/preferences.py:357 aleksis/core/preferences.py:343 msgid "Send emails if data checks detect problems" msgstr "Ð’ разі виÑÐ²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ даних надіÑлати ел.лиÑÑ‚" -#: aleksis/core/preferences.py:368 +#: aleksis/core/preferences.py:368 aleksis/core/preferences.py:354 msgid "Email recipients for data checks problem emails" msgstr "Ел.адреÑи отримувачів Ð´Ð»Ñ Ð»Ð¸Ñтів з проблемами перевірки даних" -#: aleksis/core/preferences.py:379 +#: aleksis/core/preferences.py:379 aleksis/core/preferences.py:365 msgid "Email recipient groups for data checks problem emails" msgstr "Ел.адреÑи груп Ð´Ð»Ñ Ð»Ð¸Ñтів з проблемами перевірки даних" -#: aleksis/core/preferences.py:388 +#: aleksis/core/preferences.py:388 aleksis/core/preferences.py:374 msgid "Show dashboard to users without login" msgstr "Відображати інформпанель анонімним кориÑтувачам" -#: aleksis/core/preferences.py:397 +#: aleksis/core/preferences.py:397 aleksis/core/preferences.py:383 msgid "Allow users to edit their dashboard" msgstr "Дозволити кориÑтувачам редагувати Ñвою інформпанель" -#: aleksis/core/preferences.py:408 +#: aleksis/core/preferences.py:408 aleksis/core/preferences.py:394 msgid "Fields on person model which are editable by themselves." msgstr "ÐŸÐ¾Ð»Ñ Ð· опиÑом оÑоби, Ñкі можна редагувати ÑамоÑтійно." -#: aleksis/core/preferences.py:423 -msgid "Editable fields on person model which should trigger a notification on change" +#: 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:437 +#: aleksis/core/preferences.py:437 aleksis/core/preferences.py:423 msgid "Contact for notification if a person changes their data" msgstr "Контакт Ð´Ð»Ñ Ñповіщень, Ñкщо хтоÑÑŒ змінює Ñвої дані" -#: aleksis/core/preferences.py:448 +#: aleksis/core/preferences.py:448 aleksis/core/preferences.py:434 msgid "Prefer personal photos over avatars" msgstr "Віддавати перевагу оÑобиÑтим фото заміÑть аватарів" -#: aleksis/core/preferences.py:458 +#: aleksis/core/preferences.py:458 aleksis/core/preferences.py:444 msgid "PDF file expiration duration" msgstr "Термін придатноÑті файла PDF" -#: aleksis/core/preferences.py:459 +#: aleksis/core/preferences.py:459 aleksis/core/preferences.py:445 msgid "in minutes" msgstr "у хвилинах" -#: aleksis/core/preferences.py:469 +#: aleksis/core/preferences.py:469 aleksis/core/preferences.py:455 msgid "Automatically update the dashboard and its widgets" msgstr "Ðвтоматично оновлювати інформпанель та Ñ—Ñ— віджети" -#: aleksis/core/preferences.py:479 +#: aleksis/core/preferences.py:479 aleksis/core/preferences.py:465 msgid "Automatically update the dashboard and its widgets sitewide" msgstr "Ðвтоматично оновлювати інформпанель та Ñ—Ñ— віджети (Ð´Ð»Ñ Ð²Ñього Ñайту)" -#: aleksis/core/preferences.py:489 +#: aleksis/core/preferences.py:489 aleksis/core/preferences.py:475 msgid "Country for phone number parsing" -msgstr "Країна Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ номера телефона" +msgstr "Країна Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð¾Ñ€Ñƒ номера телефона" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:540 aleksis/core/settings.py:541 msgid "English" msgstr "ÐнглійÑька" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:541 aleksis/core/settings.py:542 msgid "German" msgstr "Ðімецька" @@ -1257,12 +1300,15 @@ msgstr "Ðімецька" #: 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 +#: 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 msgid "Actions" msgstr "Дії" @@ -1275,6 +1321,9 @@ msgstr "Дії" #: 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 "Видалити" @@ -1295,7 +1344,8 @@ 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 "" @@ -1327,12 +1377,14 @@ 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" " " @@ -1351,11 +1403,13 @@ 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 @@ -1396,13 +1450,22 @@ 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:12 msgid "Forgot your current password? Click here to reset it:" @@ -1425,12 +1488,14 @@ 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 @@ -1444,8 +1509,12 @@ 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 "" @@ -1469,7 +1538,8 @@ msgid "" msgstr "" "\n" " Ми надіÑлали Вам ел.лиÑта. Якщо Ви його не отримаєте протÑгом\n" -" декількох хвилин, звернітьÑÑ, будь лаÑка, до адмініÑтраторів Ñайту.\n" +" декількох хвилин, звернітьÑÑ, будь лаÑка, до адмініÑтраторів " +"Ñайту.\n" " " #: aleksis/core/templates/account/password_reset_from_key.html:15 @@ -1480,13 +1550,16 @@ 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 @@ -1524,7 +1597,7 @@ msgstr "Пароль змінений!" #: aleksis/core/templates/account/password_set.html:6 #: aleksis/core/templates/account/password_set.html:12 msgid "Set password" -msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ" +msgstr "Створіть пароль" #: aleksis/core/templates/account/signup.html:5 #: aleksis/core/templates/account/signup.html:6 @@ -1535,8 +1608,10 @@ 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_closed.html:5 #: aleksis/core/templates/account/signup_closed.html:6 @@ -1575,13 +1650,17 @@ 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 @@ -1594,8 +1673,10 @@ msgid "" msgstr "" "\n" " Ми надіÑлали Вам Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ ел.лиÑта.\n" -" Будь лаÑка, перейдіть за вказаним там поÑиланнÑм. Якщо Ви не отримаєте\n" -" лиÑта протÑгом декількох хвилин, звернітьÑÑ, будь лаÑка, до наÑ.\n" +" Будь лаÑка, перейдіть за вказаним там поÑиланнÑм. Якщо Ви не " +"отримаєте\n" +" лиÑта протÑгом декількох хвилин, звернітьÑÑ, будь лаÑка, до " +"наÑ.\n" " " #: aleksis/core/templates/core/additional_field/edit.html:6 @@ -1760,7 +1841,7 @@ msgid "" " " msgstr "" "\n" -" СиÑтема перевірить наÑвніÑть таких проблеми:\n" +" СиÑтема перевірить наÑвніÑть таких проблем:\n" " " #: aleksis/core/templates/core/edit_dashboard.html:6 @@ -1772,29 +1853,39 @@ 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 @@ -1812,13 +1903,16 @@ 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 @@ -1844,7 +1938,8 @@ msgid "" " " msgstr "" "\n" -" Оберіть, будь лаÑка, декілька груп у порÑдку, за Ñким призначати.\n" +" Оберіть, будь лаÑка, декілька груп у порÑдку, за Ñким " +"призначати.\n" " " #: aleksis/core/templates/core/group/child_groups.html:72 @@ -1858,14 +1953,18 @@ 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" " " @@ -1902,22 +2001,27 @@ 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 "Віковий діапазон" @@ -1944,7 +2048,7 @@ msgstr "ОчиÑтити" #: aleksis/core/templates/core/group/list.html:28 msgid "Selected groups" -msgstr "Обрані групи" +msgstr "Вибрані групи" #: aleksis/core/templates/core/group_type/edit.html:6 #: aleksis/core/templates/core/group_type/edit.html:7 @@ -1982,7 +2086,9 @@ 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." +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). " "Ви можете Ñтворити Ñ—Ñ… Ñтільки, Ñкільки Вам необхідно та імпортувати Ñ—Ñ… у ПЗ " @@ -1999,12 +2105,14 @@ msgstr "Додому" #: aleksis/core/templates/core/index.html:49 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" " " @@ -2045,21 +2153,26 @@ 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" +" 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" +" Ð¦Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ð° базуєтьÑÑ Ð½Ð° 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" +" AlekSIS® is a registered trademark of the AlekSIS open source " +"project, represented by Teckids e.V.\n" " " msgstr "" "\n" @@ -2082,15 +2195,17 @@ 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" +" 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" " " @@ -2141,7 +2256,8 @@ msgstr "" #: aleksis/core/templates/core/pages/progress.html:27 msgid "" "\n" -" Without activated JavaScript the progress status can't be updated.\n" +" Without activated JavaScript the progress status can't be " +"updated.\n" " " msgstr "" "\n" @@ -2165,7 +2281,8 @@ msgstr "Ðктивований режим обÑлуговуваннÑ" #: aleksis/core/templates/core/pages/system_status.html:24 msgid "" "\n" -" Only admin and visitors from internal IPs can access thesite.\n" +" Only admin and visitors from internal IPs can access " +"thesite.\n" " " msgstr "" "\n" @@ -2188,7 +2305,8 @@ 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" @@ -2203,7 +2321,8 @@ 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" @@ -2258,7 +2377,8 @@ 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" @@ -2321,17 +2441,20 @@ 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" +" Your administrator account is not linked to any person. " +"Therefore,\n" " a dummy person has been linked to your account.\n" " " msgstr "" @@ -2351,8 +2474,10 @@ msgid "" msgstr "" "\n" " Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ пов'Ñзаний з фізоÑобою. Це означає,\n" -" що Ви не маєте жодного доÑтупу до навчальної інформації. ЗвернітьÑÑ,\n" -" будь лаÑка, до адмініÑтраторів AlekSIS у Вашому навчальному закладі.\n" +" що Ви не маєте жодного доÑтупу до навчальної інформації. " +"ЗвернітьÑÑ,\n" +" будь лаÑка, до адмініÑтраторів AlekSIS у Вашому навчальному " +"закладі.\n" " " #: aleksis/core/templates/core/perms/assign.html:12 @@ -2419,7 +2544,7 @@ msgstr "МаÑкуваннÑ" #: aleksis/core/templates/core/person/full.html:54 #: aleksis/core/templates/core/person/full.html:114 msgid "Invite user" -msgstr "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" +msgstr "ЗапроÑити кориÑтувача" #: aleksis/core/templates/core/person/full.html:121 msgid "Contact details" @@ -2478,12 +2603,14 @@ 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 "Ñторінка влаÑтивоÑтей Ñайту" +msgstr "Ñторінці влаÑтивоÑтей Ñайту" #: aleksis/core/templates/invitations/enter.html:21 msgid "Accept your invitation" @@ -2503,7 +2630,7 @@ msgstr "" #: aleksis/core/templates/invitations/enter.html:37 msgid "Accept invite" -msgstr "ПрийнÑÑ‚Ñ‚Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ" +msgstr "ПрийнÑти запрошеннÑ" #: aleksis/core/templates/invitations/forms/_invite.html:9 #: aleksis/core/templates/invitations/forms/_invite.html:10 @@ -2559,7 +2686,7 @@ msgstr "Дозволені межі дії" #: aleksis/core/templates/oauth2_provider/application/detail.html:71 msgid "Redirect URIs" -msgstr "URI-адреÑи перенаправленнÑ" +msgstr "ÐŸÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ URI-адреÑ" #: aleksis/core/templates/oauth2_provider/application/detail.html:79 msgid "Skip Authorisation" @@ -2638,14 +2765,18 @@ 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" -" or mobile data is turned on and try again. If you think you are connected, please contact the system\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" " " msgstr "" "\n" -" Під Ñ‡Ð°Ñ Ð´Ð¾Ñтупу до цієї Ñторінки виникла помилка. Можливо, у Ð’Ð°Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° з інтернетом. ПереконайтеÑÑ, що Ваш WiFi\n" -" або мобільний увімкнені та Ñпробуйте ще раз. Якщо Ви думаєте, що із з'єднаннÑм вÑе добре, звернітьÑÑ\n" +" Під Ñ‡Ð°Ñ Ð´Ð¾Ñтупу до цієї Ñторінки виникла помилка. Можливо, у Ð’Ð°Ñ " +"проблема з інтернетом. ПереконайтеÑÑ, що Ваш WiFi\n" +" або мобільний інтернет увімкнені та Ñпробуйте ще раз. Якщо Ви думаєте, " +"що із з'єднаннÑм вÑе добре, звернітьÑÑ\n" " до ÑиÑтемних адмініÑтраторів:\n" " " @@ -2681,12 +2812,14 @@ 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" " " @@ -2734,13 +2867,15 @@ 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 @@ -2838,7 +2973,8 @@ 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" "Приділіть, будь лаÑка, трохи чаÑу Ð´Ð»Ñ Ñ—Ñ… перевірки та Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ або " @@ -2848,7 +2984,8 @@ msgstr "" 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" @@ -2878,7 +3015,7 @@ msgstr "Привіт, %(notification_user)s," #: aleksis/core/templates/templated_email/notification.email:9 #: aleksis/core/templates/templated_email/notification.email:23 msgid "we got a new notification for you:" -msgstr "у Ð½Ð°Ñ Ð´Ð»Ñ Ñ‚ÐµÐ±Ðµ нове ÑповіщеннÑ:" +msgstr "у Ð½Ð°Ñ Ð´Ð»Ñ Ð’Ð°Ñ Ð½Ð¾Ð²Ðµ ÑповіщеннÑ:" #: aleksis/core/templates/templated_email/notification.email:15 #: aleksis/core/templates/templated_email/notification.email:29 @@ -2933,15 +3070,17 @@ msgstr "Увімкнути двох-факторну автентифікаці #: aleksis/core/templates/two_factor/core/backup_tokens.html:9 #: aleksis/core/templates/two_factor/profile/profile.html:46 msgid "Backup Tokens" -msgstr "Бекап Токенів" +msgstr "Резервні Токени" #: aleksis/core/templates/two_factor/core/backup_tokens.html:14 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 "" @@ -2969,7 +3108,7 @@ msgstr "" #: aleksis/core/templates/two_factor/core/backup_tokens.html:39 msgid "You don't have any backup codes yet." -msgstr "У Ð’Ð°Ñ Ð¿Ð¾ÐºÐ¸ що немає бекапів кодів." +msgstr "У Ð’Ð°Ñ Ð¿Ð¾ÐºÐ¸ що немає резервних кодів." #: aleksis/core/templates/two_factor/core/backup_tokens.html:45 msgid "Back to Account Security" @@ -3009,7 +3148,8 @@ 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 "" @@ -3022,7 +3162,8 @@ msgstr "" #: 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 "" @@ -3040,23 +3181,26 @@ msgid "" " " msgstr "" "\n" -" Ðапишіть, будь лаÑка, токен, Ñкий Ви отримали Ñвоїм\n" -" генератором токенів.\n" +" Ðапишіть, будь лаÑка, токен, з Вашого\n" +" генератора токенів.\n" " " #: 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" " " @@ -3088,13 +3232,14 @@ 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" " Ð”Ð»Ñ Ð´Ð¾Ñтупу до цієї Ñторінки Вам потрібно увімкнути ці функції " "безпеки." @@ -3161,7 +3306,8 @@ msgstr "" 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 "" @@ -3201,7 +3347,8 @@ 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" @@ -3223,16 +3370,22 @@ msgstr "" #: 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" " " @@ -3258,7 +3411,8 @@ 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" @@ -3279,7 +3433,8 @@ 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 "" @@ -3304,7 +3459,9 @@ 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?" +msgid "" +"You are about to disable two-factor authentication. This weakens your " +"account security, are you sure?" msgstr "" "Ви вимикаєте двохфакторну автентифікацію. Це знизить захиÑÑ‚ Вашого " "облікового запиÑу. Ви впевнені?" @@ -3408,7 +3565,7 @@ msgid "" " " msgstr "" "\n" -" Двохфакторна Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ облікового запиÑу\n" +" Двохфакторна Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð´Ð»Ñ Ð’Ð°ÑˆÐ¾Ð³Ð¾ облікового запиÑу\n" " не активована. Ð”Ð»Ñ Ð¿Ñ–Ð´Ð²Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ облікового запиÑу увімкніть\n" " двохфакторну автентифікацію.\n" " " @@ -3441,47 +3598,48 @@ msgstr "Під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ PDF виникла проб msgid "Download PDF" msgstr "Звантажити PDF" -#: aleksis/core/views.py:292 +#: aleksis/core/views.py:292 aleksis/core/views.py:294 msgid "The school term has been created." msgstr "Ðавчальний рік Ñтворений." -#: aleksis/core/views.py:304 +#: aleksis/core/views.py:304 aleksis/core/views.py:306 msgid "The school term has been saved." msgstr "Ðавчальний рік збережений." -#: aleksis/core/views.py:424 +#: aleksis/core/views.py:424 aleksis/core/views.py:426 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 msgid "The person has been saved." msgstr "ОÑоба збережена." -#: aleksis/core/views.py:503 +#: aleksis/core/views.py:503 aleksis/core/views.py:505 msgid "The group has been saved." msgstr "Група збережена." -#: aleksis/core/views.py:600 +#: aleksis/core/views.py:600 aleksis/core/views.py:602 msgid "The announcement has been saved." msgstr "ÐžÐ³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ðµ." -#: aleksis/core/views.py:616 +#: aleksis/core/views.py:616 aleksis/core/views.py:618 msgid "The announcement has been deleted." msgstr "ÐžÐ³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ðµ." -#: aleksis/core/views.py:684 +#: aleksis/core/views.py:684 aleksis/core/views.py:686 msgid "The requested preference registry does not exist" msgstr "Журналу із запитаними влаÑтивоÑÑ‚Ñми не Ñ–Ñнує" -#: aleksis/core/views.py:703 +#: aleksis/core/views.py:703 aleksis/core/views.py:705 msgid "The preferences have been saved successfully." msgstr "ВлаÑтивоÑті збережені." -#: aleksis/core/views.py:727 +#: aleksis/core/views.py:727 aleksis/core/views.py:729 msgid "The person has been deleted." msgstr "ОÑоба видалена." -#: aleksis/core/views.py:741 +#: aleksis/core/views.py:741 aleksis/core/views.py:743 msgid "The group has been deleted." msgstr "Група видалена." @@ -3489,113 +3647,118 @@ msgstr "Група видалена." msgid "The additional_field has been saved." msgstr "Додаткове поле збережене." -#: aleksis/core/views.py:807 +#: aleksis/core/views.py:807 aleksis/core/views.py:809 msgid "The additional field has been deleted." msgstr "Додаткове поле видалене." -#: aleksis/core/views.py:832 +#: aleksis/core/views.py:832 aleksis/core/views.py:834 msgid "The group type has been saved." msgstr "Тип групи збережений." -#: aleksis/core/views.py:862 +#: aleksis/core/views.py:862 aleksis/core/views.py:864 msgid "The group type has been deleted." msgstr "Тип групи видалений." -#: aleksis/core/views.py:895 +#: aleksis/core/views.py:895 aleksis/core/views.py:897 msgid "Progress: Run data checks" msgstr "Перебіг: ЗапуÑк перевірки даних" -#: aleksis/core/views.py:896 +#: aleksis/core/views.py:896 aleksis/core/views.py:898 msgid "Run data checks …" msgstr "ЗапуÑкаєтьÑÑ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ° даних …" -#: aleksis/core/views.py:897 +#: aleksis/core/views.py:897 aleksis/core/views.py:899 msgid "The data checks were run successfully." msgstr "Перевірка даних уÑпішно запущена." -#: aleksis/core/views.py:898 +#: aleksis/core/views.py:898 aleksis/core/views.py:900 msgid "There was a problem while running data checks." msgstr "Під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку перевірки даних виникла проблема." -#: aleksis/core/views.py:914 +#: aleksis/core/views.py:914 aleksis/core/views.py:916 #, python-brace-format msgid "The solve option '{solve_option_obj.verbose_name}' " -msgstr "Варіант розв'ÑÐ·Ð°Ð½Ð½Ñ {solve_option_obj.verbose_name} " +msgstr "Варіант розв'ÑÐ·Ð°Ð½Ð½Ñ \"{solve_option_obj.verbose_name}\" " -#: aleksis/core/views.py:924 +#: aleksis/core/views.py:924 aleksis/core/views.py:926 msgid "The requested solve option does not exist" msgstr "Запитаний варіант розв'ÑÐ·Ð°Ð½Ð½Ñ Ð½Ðµ Ñ–Ñнує" -#: aleksis/core/views.py:956 +#: aleksis/core/views.py:956 aleksis/core/views.py:958 msgid "The dashboard widget has been saved." msgstr "Віджет інформпанелі збережений." -#: aleksis/core/views.py:986 +#: aleksis/core/views.py:986 aleksis/core/views.py:988 msgid "The dashboard widget has been created." msgstr "Віджет інформпанелі Ñтворений." -#: aleksis/core/views.py:996 +#: aleksis/core/views.py:996 aleksis/core/views.py:998 msgid "The dashboard widget has been deleted." msgstr "Віджет інформпанелі видалений." -#: aleksis/core/views.py:1067 +#: aleksis/core/views.py:1067 aleksis/core/views.py:1069 msgid "Your dashboard configuration has been saved successfully." msgstr "Ваша ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð¿Ð°Ð½ÐµÐ»Ñ– збережена." -#: aleksis/core/views.py:1069 +#: aleksis/core/views.py:1069 aleksis/core/views.py:1071 msgid "The configuration of the default dashboard has been saved successfully." msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ñ—/Ñтандартної інформпанелі збережена." -#: aleksis/core/views.py:1145 +#: aleksis/core/views.py:1145 aleksis/core/views.py:1147 #, 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:1236 aleksis/core/views.py:1238 msgid "We have successfully assigned the permissions." msgstr "Ми уÑпішно призначили дозволи." -#: aleksis/core/views.py:1246 +#: aleksis/core/views.py:1246 aleksis/core/views.py:1248 msgid "The global user permission has been deleted." msgstr "Глобальний кориÑтувацький дозвіл видалений." -#: aleksis/core/views.py:1256 +#: aleksis/core/views.py:1256 aleksis/core/views.py:1258 msgid "The global group permission has been deleted." msgstr "Глобальний груповий дозвіл видалений." -#: aleksis/core/views.py:1266 +#: aleksis/core/views.py:1266 aleksis/core/views.py:1268 msgid "The object user permission has been deleted." msgstr "Об'єктний кориÑтувацький дозвіл видалений." -#: aleksis/core/views.py:1276 +#: aleksis/core/views.py:1276 aleksis/core/views.py:1278 msgid "The object group permission has been deleted." msgstr "Об'єктний груповий дозвіл видалений." -#: aleksis/core/views.py:1344 +#: 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 -msgid "The third-party account could not be disconnected because it is the only login method available." +#: 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:1416 aleksis/core/views.py:1418 msgid "The third-party account has been successfully disconnected." msgstr "Обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ñ€ÐµÑ‚ÑŒÐ¾Ñ— Ñторони уÑпішно від'єднаний." -#: aleksis/core/views.py:1487 -msgid "Person was invited successfully and an email with further instructions has been send to them." +#: 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:1498 +#: aleksis/core/views.py:1498 aleksis/core/views.py:1500 msgid "Person was already invited." msgstr "ОÑоба вже була запрошена." @@ -3610,3 +3773,61 @@ msgstr "Стрічка iCal уÑпішно видалена" #: 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." + +#: aleksis/core/data_checks.py:332 +#, python-format +msgid "The field %s couldn't be validated successfully." +msgstr "Поле %s не вдалоÑÑ ÑƒÑпішно перевірити." + +#: aleksis/core/models.py:181 +msgid "other" +msgstr "інший" + +#: aleksis/core/settings.py:543 +msgid "Ukrainian" +msgstr "УкраїнÑька" + +#: aleksis/core/templates/500.html:10 +msgid "" +"An unexpected error has\n" +" occurred." +msgstr "" +"СталаÑÑ Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð°\n" +" помилка." + +#: 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/ical/ical_list.html:4 +#: aleksis/core/templates/core/ical/ical_list.html:5 +msgid "iCal Feeds" +msgstr "iCal-Ñтрічки" + +#: aleksis/core/views.py:775 +msgid "The additional field has been saved." +msgstr "Додаткове поле збережене." + +#: aleksis/core/views.py:1600 +msgid "iCal feed updated successfully" +msgstr "Стрічка iCal уÑпішно оновлена" + +#: aleksis/core/views.py:1610 +msgid "iCal feed deleted successfully" +msgstr "Стрічка iCal уÑпішно видалена" + +#: aleksis/core/views.py:1618 +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 c224b04ae5ef93df09b6ad7c76288e590557bf0c..fcd6122a3fdc075256f8c08626ad9d806d4241be 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-05-24 19:37+0200\n" +"POT-Creation-Date: 2022-06-25 12:09+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,10 +16,7 @@ msgstr "" "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" #: aleksis/core/static/js/main.js:66 msgid "Today" @@ -34,9 +31,5 @@ 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/migrations/0041_update_gender_choices.py b/aleksis/core/migrations/0041_update_gender_choices.py new file mode 100644 index 0000000000000000000000000000000000000000..f9f3448ae5332da071e44318db97a0649ba487eb --- /dev/null +++ b/aleksis/core/migrations/0041_update_gender_choices.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.13 on 2022-06-05 10:55 + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0040_oauth_allowed_scopes_max_length_255'), + ] + + operations = [ + migrations.AlterField( + model_name='person', + name='sex', + field=models.CharField(blank=True, choices=[('f', 'female'), ('m', 'male'), ('x', 'other')], max_length=1, verbose_name='Sex'), + ), + ] diff --git a/aleksis/core/models.py b/aleksis/core/models.py index 462c3a2f8bde981a55745cb06b04f4ad54f10da3..2f603ae0d2e2813b50f2024056cb460d71b4e484 100644 --- a/aleksis/core/models.py +++ b/aleksis/core/models.py @@ -51,7 +51,12 @@ from oauth2_provider.models import ( from phonenumber_field.modelfields import PhoneNumberField from polymorphic.models import PolymorphicModel -from aleksis.core.data_checks import BrokenDashboardWidgetDataCheck, DataCheck, DataCheckRegistry +from aleksis.core.data_checks import ( + BrokenDashboardWidgetDataCheck, + DataCheck, + DataCheckRegistry, + field_validation_data_check_factory, +) from .feeds import PersonalICalFeedBase from .managers import ( @@ -173,7 +178,7 @@ class Person(ExtensibleModel): icon_ = "person" - SEX_CHOICES = [("f", _("female")), ("m", _("male"))] + SEX_CHOICES = [("f", _("female")), ("m", _("male")), ("x", _("other"))] user = models.OneToOneField( get_user_model(), @@ -1064,6 +1069,8 @@ class CustomMenu(ExtensibleModel): class CustomMenuItem(ExtensibleModel): """Single item in a custom menu.""" + data_checks = [field_validation_data_check_factory("core", "CustomMenuItem", "icon")] + menu = models.ForeignKey( CustomMenu, models.CASCADE, verbose_name=_("Menu"), related_name="items" ) @@ -1082,6 +1089,9 @@ class CustomMenuItem(ExtensibleModel): models.UniqueConstraint(fields=["menu", "name"], name="unique_name_per_menu"), ] + def get_absolute_url(self): + return reverse("admin:core_custommenuitem_change", args=[self.id]) + class GroupType(ExtensibleModel): """Group type model. diff --git a/aleksis/core/preferences.py b/aleksis/core/preferences.py index 78b1874356a3a11eab121a56963c9aaf3595d872..230e40686d0782151043723cef9edfffcf5a68b7 100644 --- a/aleksis/core/preferences.py +++ b/aleksis/core/preferences.py @@ -333,20 +333,6 @@ class OAuthAllowedGrants(MultipleChoicePreference): required = False -@site_preferences_registry.register -class AvailableLanguages(MultipleChoicePreference): - """Available languages of your AlekSIS instance.""" - - section = internationalisation - name = "languages" - default = [code[0] for code in settings.LANGUAGES] - widget = SelectMultiple - verbose_name = _("Available languages") - field_attribute = {"initial": []} - choices = settings.LANGUAGES - required = True - - @site_preferences_registry.register class DataChecksSendEmails(BooleanPreference): """Enable email sending if data checks detect problems.""" diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index f5dd9eafe0afae877494dccbf3c2dcfa5a72bc79..782600898df364c019ecbb633a790fc796f682d7 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -146,6 +146,7 @@ INSTALLED_APPS = [ "dynamic_preferences.users.apps.UserPreferencesConfig", "impersonate", "two_factor", + "two_factor.plugins.phonenumber", "material", "ckeditor", "ckeditor_uploader", @@ -631,6 +632,7 @@ SASS_PROCESSOR_INCLUDE_DIRS = [ ] ICONIFY_JSON_ROOT = os.path.join(JS_ROOT, "@iconify", "json") +ICONIFY_COLLECTIONS_ALLOWED = ["mdi"] ADMINS = _settings.get( "contact.admins", [(AUTH_INITIAL_SUPERUSER["username"], AUTH_INITIAL_SUPERUSER["email"])] @@ -743,6 +745,11 @@ PWA_ICONS_CONFIG = { "microsoft": [144], } FAVICON_PATH = os.path.join("public", "favicon") +FAVICON_CONFIG = { + "shortcut icon": [16, 32, 48, 128, 192], + "touch-icon": [196], + "icon": [196], +} SERVICE_WORKER_PATH = os.path.join(STATIC_ROOT, "js", "serviceworker.js") diff --git a/aleksis/core/static/js/progress.js b/aleksis/core/static/js/progress.js index 5fa0213f8466738466158a56ca6e1df50654a811..8a97577e93d276cd62c69ead4c65b448a7631d49 100644 --- a/aleksis/core/static/js/progress.js +++ b/aleksis/core/static/js/progress.js @@ -24,25 +24,32 @@ function renderMessageBox(level, text) { return '<div class="alert ' + STYLE_CLASSES[level] + '"><p><i class="material-icons iconify left" data-icon="' + ICONS[level] + '"></i>' + text + '</p></div>'; } +function updateMessages(messages) { + const messagesBox = $("#messages"); + + // Clear container + messagesBox.html(""); + + // Render message boxes + $.each(messages, function (i, message) { + messagesBox.append(renderMessageBox(message[0], message[1])); + }); +} + function customProgress(progressBarElement, progressBarMessageElement, progress) { setProgress(progress.percent); if (progress.hasOwnProperty("messages")) { - const messagesBox = $("#messages"); - - // Clear container - messagesBox.html("") - - // Render message boxes - $.each(progress.messages, function (i, message) { - messagesBox.append(renderMessageBox(message[0], message[1])); - }) + updateMessages(progress.messages); } } -function customSuccess(progressBarElement, progressBarMessageElement) { +function customSuccess(progressBarElement, progressBarMessageElement, result) { setProgress(100); + if (result) { + updateMessages(result); + } $("#result-alert").addClass("success"); $("#result-icon").attr("data-icon", "mdi:check-circle-outline"); $("#result-text").text(OPTIONS.success); @@ -54,8 +61,11 @@ function customSuccess(progressBarElement, progressBarMessageElement) { } } -function customError(progressBarElement, progressBarMessageElement) { +function customError(progressBarElement, progressBarMessageElement, excMessage) { setProgress(100); + if (excMessage) { + updateMessages([40, excMessage]); + } $("#result-alert").addClass("error"); $("#result-icon").attr("data-icon", "mdi:alert-octagon-outline"); $("#result-text").text(OPTIONS.error); diff --git a/aleksis/core/static/public/style.scss b/aleksis/core/static/public/style.scss index b6b4ce7831311178d8044ebb74f2d37b749ebfee..07f1881216448b3c82fb605af72b214004bf2f03 100644 --- a/aleksis/core/static/public/style.scss +++ b/aleksis/core/static/public/style.scss @@ -433,15 +433,16 @@ th.orderable > a { th.orderable { background: no-repeat right center; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' /%3E%3C/svg%3E"); + background-image: url("../../__icons__/mdi/unfold-more-horizontal.svg"); + background-size: 24px; } th.orderable.asc { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z' /%3E%3C/svg%3E"); + background-image: url("../../__icons__/mdi/chevron-up.svg"); } th.orderable.desc { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z' /%3E%3C/svg%3E"); + background-image: url("../../__icons__/mdi/chevron-down.svg"); } /*+++++++*/ @@ -777,6 +778,7 @@ main figure.alert { line-height: 1; height: 24px; margin-bottom: 8px; + width: 100%; } /* Person overview */ @@ -989,3 +991,8 @@ p.ical-description { margin: 0; font-weight: 300; } + +.table-circle, .table-circle .materialize-circle { + height: 4em; + width: 4em; +} diff --git a/aleksis/core/tables.py b/aleksis/core/tables.py index f08460bd8654907cb56f655e01014342f8e59ab5..a58c3fc443b3ad66c8df31109cbb6276192518ef 100644 --- a/aleksis/core/tables.py +++ b/aleksis/core/tables.py @@ -1,5 +1,6 @@ from textwrap import wrap +from django.template.loader import render_to_string from django.utils.translation import gettext_lazy as _ import django_tables2 as tables @@ -31,12 +32,65 @@ class PersonsTable(tables.Table): """Table to list persons.""" class Meta: + model = Person attrs = {"class": "highlight"} + fields = [] first_name = tables.LinkColumn("person_by_id", args=[A("id")]) last_name = tables.LinkColumn("person_by_id", args=[A("id")]) +class FullPersonsTable(PersonsTable): + """Table to list persons.""" + + photo = tables.Column(verbose_name=_("Photo"), accessor="pk", orderable=False) + address = tables.Column(verbose_name=_("Address"), accessor="pk", orderable=False) + + class Meta(PersonsTable.Meta): + fields = ( + "photo", + "short_name", + "date_of_birth", + "sex", + "email", + "user__username", + ) + sequence = ("photo", "first_name", "last_name", "short_name", "...") + + def render_photo(self, value, record): + return render_to_string( + "core/partials/avatar_content.html", + { + "person_or_user": record, + "class": "materialize-circle table-circle", + "img_class": "materialize-circle", + }, + self.request, + ) + + def render_address(self, value, record): + return render_to_string( + "core/partials/address.html", + { + "person": record, + }, + self.request, + ) + + def before_render(self, request): + """Hide columns if user has no permission to view them.""" + if not self.request.user.has_perm("core.view_person_rule"): + self.columns.hide("date_of_birth") + self.columns.hide("sex") + if not self.request.user.has_perm("core.view_contact_details_rule"): + self.columns.hide("email") + if not self.request.user.has_perm("core.view_address"): + self.columns.hide("street") + self.columns.hide("housenumber") + self.columns.hide("postal_code") + self.columns.hide("place") + + class GroupsTable(tables.Table): """Table to list groups.""" diff --git a/aleksis/core/templates/core/dashboard_widget/external_link_widget.html b/aleksis/core/templates/core/dashboard_widget/external_link_widget.html index bfbb5bda23e0e5034425ff745efab7f630119355..4f2a940b7b59b84b3fa03a9a3dbc10a0045cf51e 100644 --- a/aleksis/core/templates/core/dashboard_widget/external_link_widget.html +++ b/aleksis/core/templates/core/dashboard_widget/external_link_widget.html @@ -1,6 +1,6 @@ <div class="card"> <div class="card-image"> - <img src="{{ icon_url }}" alt="{{ title }}" /> + <a href="{{ url }}"><img src="{{ icon_url }}" alt="{{ title }}" /></a> </div> <div class="card-action"> <a href="{{ url }}">{{ title }}</a> diff --git a/aleksis/core/templates/core/group/full.html b/aleksis/core/templates/core/group/full.html index 3c6e5488d6174e30847eabcfda2e97b244112938..34b5e647590806e72666701ae0bd1ca1196d9638 100644 --- a/aleksis/core/templates/core/group/full.html +++ b/aleksis/core/templates/core/group/full.html @@ -9,7 +9,9 @@ {% block browser_title %}{{ group.name }}{% endblock %} {% block content %} - <h1>{{ group.name }} <small class="grey-text">{{ group.short_name }}</small></h1> + <h1>{{ group.name }} + <small class="grey-text">{{ group.short_name }}</small> + </h1> {% has_perm 'core.edit_group_rule' user group as can_change_group %} {% has_perm 'core.change_group_preferences_rule' user group as can_change_group_preferences %} @@ -44,39 +46,57 @@ <table> <tr> <th> - <i class="material-icons iconify center" data-icon="mdi:shape-outline" title="{% trans "Group type" %}"></i> + <i class="material-icons iconify left" data-icon="mdi:shape-outline"></i> + {% trans "Group type" %} </th> <td> - {{ group.group_type }} + {{ group.group_type|default:"–" }} </td> </tr> <tr> <th> - <i class="material-icons iconify center" data-icon="mdi:format-vertical-align-top" title="{% trans "Parent groups" %}"></i> + <i class="material-icons iconify left" data-icon="mdi:format-vertical-align-top"></i> + {% trans "Parent groups" %} </th> <td> - {{ group.parent_groups.all|join:", " }} + {{ group.parent_groups.all|join:", "|default:"–" }} </td> </tr> </table> {% if can_view_group_stats %} <h2>{% blocktrans %}Statistics{% endblocktrans %}</h2> - <ul> - <li> - {% trans "Count of members" %}: {{ stats.members }} - </li> + <table> + <tr> + <th> + <i class="material-icons iconify left" data-icon="mdi:account-group-outline"></i> + {% trans "Count of members" %} + </th> + <td>{{ stats.members }}</td> + </tr> {% if stats.age_avg %} - <li> - {% trans "Average age" %}: {{ stats.age_avg|floatformat }} - </li> + <tr> + <th> + <i class="material-icons iconify left" data-icon="mdi:cake-variant-outline"></i> + {% trans "Average age" %} + </th> + <td>{{ stats.age_avg|floatformat }}</td> + </tr> {% endif %} {% if stats.age_range_min %} - <li> - {% trans "Age range" %}: {{ stats.age_range_min }} {% trans "years to" %} {{ stats.age_range_max }} {% trans "years "%} - </li> + <tr> + <th> + <i class="material-icons iconify left" data-icon="mdi:calendar-range-outline"></i> + {% trans "Age range" %} + </th> + <td> + {% blocktrans with min=stats.age_range_min max=stats.age_range_max %} + {{ min }} years to {{ max }} years + {% endblocktrans %} + </td> + </tr> {% endif %} - </ul> + </table> {% endif %} <h2>{% blocktrans %}Owners{% endblocktrans %}</h2> diff --git a/aleksis/core/templates/core/partials/address.html b/aleksis/core/templates/core/partials/address.html new file mode 100644 index 0000000000000000000000000000000000000000..74a01bde2494d94256432923f5f27c279da2e564 --- /dev/null +++ b/aleksis/core/templates/core/partials/address.html @@ -0,0 +1,2 @@ +{{ person.street }} {{ person.housenumber }}<br> +{{ person.postal_code }} {{ person.place }} diff --git a/aleksis/core/templates/core/partials/footer-menu.html b/aleksis/core/templates/core/partials/footer-menu.html index 2db2689efed0b3488dc7ba4362d2ff6747863f0e..6a67fa8a8592c5686a1efda8bd0ea9a19e71155b 100644 --- a/aleksis/core/templates/core/partials/footer-menu.html +++ b/aleksis/core/templates/core/partials/footer-menu.html @@ -3,7 +3,7 @@ {% for item in FOOTER_MENU.items.all %} <a class="blue-text text-lighten-4 btn-flat" href="{{ item.url }}"> {% if item.icon %} - <i class="material-icons iconify footer-icon left" data-icon="{{ item.icon }}">{{ item.icon }}</i> + <i class="material-icons iconify footer-icon left" data-icon="mdi:{{ item.icon }}"></i> {% endif %} {{ item.name }} </a> diff --git a/aleksis/core/templates/core/partials/language_form.html b/aleksis/core/templates/core/partials/language_form.html index 197906bb09d6c43d187c63f118261eaf6bbead9e..247dfe386c6dc003e4436415afbf13c34a557612 100644 --- a/aleksis/core/templates/core/partials/language_form.html +++ b/aleksis/core/templates/core/partials/language_form.html @@ -8,7 +8,9 @@ <input name="next" type="hidden" value="{{ request.get_full_path }}"> {% get_current_language as LANGUAGE_CODE %} - {% get_language_info_list for request.site.preferences.internationalisation__languages as languages %} + {% get_available_languages as LANGUAGES %} + {% get_language_info_list for LANGUAGES as languages %} + {# Select #} <div class="input-field language-field"> diff --git a/aleksis/core/templates/two_factor/core/login.html b/aleksis/core/templates/two_factor/core/login.html index 77b135569d797181a45bd49d7fd7e9cded4e9a5c..6145855229d9fec9f15edbd8ee597811250e2140 100644 --- a/aleksis/core/templates/two_factor/core/login.html +++ b/aleksis/core/templates/two_factor/core/login.html @@ -1,6 +1,6 @@ {# -*- engine:django -*- #} {% extends "two_factor/_base_focus.html" %} -{% load i18n two_factor account socialaccount %} +{% load i18n phonenumber account socialaccount %} {% block browser_title %} {% trans "Login" %} diff --git a/aleksis/core/templates/two_factor/profile/profile.html b/aleksis/core/templates/two_factor/profile/profile.html index dd9472e7fb9a09051b35d7be57f59dcab1549dae..fe96135d0dfae6fd16ffad4fece50148115c8b69 100644 --- a/aleksis/core/templates/two_factor/profile/profile.html +++ b/aleksis/core/templates/two_factor/profile/profile.html @@ -1,5 +1,5 @@ {% extends "two_factor/_base_focus.html" %} -{% load i18n two_factor %} +{% load i18n phonenumber %} {% block browser_title %} {% trans "Account Security" %} diff --git a/aleksis/core/tests/browser/test_selenium.py b/aleksis/core/tests/browser/test_selenium.py index e14ad8b9f123cd612848af566790d7e649d47bcc..5e9c4dfa3fc52ccdb582a7ab8d9862018e211032 100644 --- a/aleksis/core/tests/browser/test_selenium.py +++ b/aleksis/core/tests/browser/test_selenium.py @@ -7,6 +7,8 @@ from django.test.selenium import SeleniumTestCase, SeleniumTestCaseBase from django.urls import reverse import pytest +from selenium.webdriver.common.by import By +from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait from aleksis.core.models import Person @@ -43,17 +45,25 @@ class SeleniumTests(SeleniumTestCase): self._screenshot("login_default_superuser_blank.png") # Find login form input fields and enter defined credentials - self.selenium.find_element_by_xpath( - '//label[contains(text(), "Username")]/../input' + WebDriverWait(self.selenium, 10).until( + EC.element_to_be_clickable( + (By.XPATH, '//label[contains(text(), "Username")]/../input'), + ) ).send_keys(username) - self.selenium.find_element_by_xpath( - '//label[contains(text(), "Password")]/../input' + WebDriverWait(self.selenium, 10).until( + EC.element_to_be_clickable( + (By.XPATH, '//label[contains(text(), "Password")]/../input'), + ) ).send_keys(password) if with_screenshots: self._screenshot("login_default_superuser_filled.png") # Submit form by clicking django-two-factor-auth's Next button - self.selenium.find_element_by_xpath('//button[contains(text(), "Login")]').click() + WebDriverWait(self.selenium, 10).until( + EC.element_to_be_clickable( + (By.XPATH, '//button[contains(text(), "Login")]'), + ) + ).click() if with_screenshots: self._screenshot("login_default_superuser_submitted.png") diff --git a/aleksis/core/tests/regression/test_regression.py b/aleksis/core/tests/regression/test_regression.py index c2417a56ebd02c015e84f18401d39cfc582b4252..6d6056ad272fa87c9df9d4cf7ba16f87a70dbf40 100644 --- a/aleksis/core/tests/regression/test_regression.py +++ b/aleksis/core/tests/regression/test_regression.py @@ -146,3 +146,14 @@ def test_no_access_oauth2_client_credentials_without_allowed_scopes(client): ) r = client.get(url, HTTP_AUTHORIZATION=auth_header) assert r.status_code == 200 + + +def test_change_password_not_logged_in(client): + """Tests that CustomPasswordChangeView redirects to login when accessed unauthenticated. + + https://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/703 + """ + response = client.get(reverse("account_change_password"), follow=True) + + assert response.status_code == 200 + assert "Please login to see this page." in response.content.decode("utf-8") diff --git a/aleksis/core/util/celery_progress.py b/aleksis/core/util/celery_progress.py index ef42f1692dab60dc9bc88f3c6bba4ce4beef3222..91b5b7168f215da509c71806f137483a422872d3 100644 --- a/aleksis/core/util/celery_progress.py +++ b/aleksis/core/util/celery_progress.py @@ -155,7 +155,8 @@ def recorded_task(orig: Optional[Callable] = None, **kwargs) -> Union[Callable, @wraps(orig) def _inject_recorder(task, *args, **kwargs): recorder = ProgressRecorder(task) - return orig(*args, **kwargs, recorder=recorder) + orig(*args, **kwargs, recorder=recorder) + return recorder._messages # Force bind to True because _inject_recorder needs the Task object kwargs["bind"] = True diff --git a/aleksis/core/util/model_helpers.py b/aleksis/core/util/model_helpers.py index 57fab43ab14b787b9300b523e963efbcb0cee121..f1732a72fb3e17ecdcfee18b59cb18d7fd98fd55 100644 --- a/aleksis/core/util/model_helpers.py +++ b/aleksis/core/util/model_helpers.py @@ -1,3 +1,5 @@ +from dj_iconify.util import icon_choices + # Materialize colors (without accent, darken and lighten classes) COLOURS = [ ("red", "red"), @@ -24,938 +26,8 @@ COLOURS = [ ("transparent", "transparent"), ] -# About 1000 icon names from Google's github repository -ICONS = [ - ("3d_rotation", "3d_rotation"), - ("ac_unit", "ac_unit"), - ("access_alarm", "access_alarm"), - ("access_alarms", "access_alarms"), - ("access_time", "access_time"), - ("accessibility", "accessibility"), - ("accessible", "accessible"), - ("account_balance", "account_balance"), - ("account_balance_wallet", "account_balance_wallet"), - ("account_box", "account_box"), - ("account_circle", "account_circle"), - ("adb", "adb"), - ("add", "add"), - ("add_a_photo", "add_a_photo"), - ("add_alarm", "add_alarm"), - ("add_alert", "add_alert"), - ("add_box", "add_box"), - ("add_circle", "add_circle"), - ("add_circle_outline", "add_circle_outline"), - ("add_location", "add_location"), - ("add_shopping_cart", "add_shopping_cart"), - ("add_to_photos", "add_to_photos"), - ("add_to_queue", "add_to_queue"), - ("adjust", "adjust"), - ("airline_seat_flat", "airline_seat_flat"), - ("airline_seat_flat_angled", "airline_seat_flat_angled"), - ("airline_seat_individual_suite", "airline_seat_individual_suite"), - ("airline_seat_legroom_extra", "airline_seat_legroom_extra"), - ("airline_seat_legroom_normal", "airline_seat_legroom_normal"), - ("airline_seat_legroom_reduced", "airline_seat_legroom_reduced"), - ("airline_seat_recline_extra", "airline_seat_recline_extra"), - ("airline_seat_recline_normal", "airline_seat_recline_normal"), - ("airplanemode_active", "airplanemode_active"), - ("airplanemode_inactive", "airplanemode_inactive"), - ("airplay", "airplay"), - ("airport_shuttle", "airport_shuttle"), - ("alarm", "alarm"), - ("alarm_add", "alarm_add"), - ("alarm_off", "alarm_off"), - ("alarm_on", "alarm_on"), - ("album", "album"), - ("all_inclusive", "all_inclusive"), - ("all_out", "all_out"), - ("android", "android"), - ("announcement", "announcement"), - ("apps", "apps"), - ("archive", "archive"), - ("arrow_back", "arrow_back"), - ("arrow_downward", "arrow_downward"), - ("arrow_drop_down", "arrow_drop_down"), - ("arrow_drop_down_circle", "arrow_drop_down_circle"), - ("arrow_drop_up", "arrow_drop_up"), - ("arrow_forward", "arrow_forward"), - ("arrow_upward", "arrow_upward"), - ("art_track", "art_track"), - ("aspect_ratio", "aspect_ratio"), - ("assessment", "assessment"), - ("assignment", "assignment"), - ("assignment_ind", "assignment_ind"), - ("assignment_late", "assignment_late"), - ("assignment_return", "assignment_return"), - ("assignment_returned", "assignment_returned"), - ("assignment_turned_in", "assignment_turned_in"), - ("assistant", "assistant"), - ("assistant_photo", "assistant_photo"), - ("attach_file", "attach_file"), - ("attach_money", "attach_money"), - ("attachment", "attachment"), - ("audiotrack", "audiotrack"), - ("autorenew", "autorenew"), - ("av_timer", "av_timer"), - ("backspace", "backspace"), - ("backup", "backup"), - ("battery_alert", "battery_alert"), - ("battery_charging_full", "battery_charging_full"), - ("battery_full", "battery_full"), - ("battery_std", "battery_std"), - ("battery_unknown", "battery_unknown"), - ("beach_access", "beach_access"), - ("beenhere", "beenhere"), - ("block", "block"), - ("bluetooth", "bluetooth"), - ("bluetooth_audio", "bluetooth_audio"), - ("bluetooth_connected", "bluetooth_connected"), - ("bluetooth_disabled", "bluetooth_disabled"), - ("bluetooth_searching", "bluetooth_searching"), - ("blur_circular", "blur_circular"), - ("blur_linear", "blur_linear"), - ("blur_off", "blur_off"), - ("blur_on", "blur_on"), - ("book", "book"), - ("bookmark", "bookmark"), - ("bookmark_border", "bookmark_border"), - ("border_all", "border_all"), - ("border_bottom", "border_bottom"), - ("border_clear", "border_clear"), - ("border_color", "border_color"), - ("border_horizontal", "border_horizontal"), - ("border_inner", "border_inner"), - ("border_left", "border_left"), - ("border_outer", "border_outer"), - ("border_right", "border_right"), - ("border_style", "border_style"), - ("border_top", "border_top"), - ("border_vertical", "border_vertical"), - ("branding_watermark", "branding_watermark"), - ("brightness_1", "brightness_1"), - ("brightness_2", "brightness_2"), - ("brightness_3", "brightness_3"), - ("brightness_4", "brightness_4"), - ("brightness_5", "brightness_5"), - ("brightness_6", "brightness_6"), - ("brightness_7", "brightness_7"), - ("brightness_auto", "brightness_auto"), - ("brightness_high", "brightness_high"), - ("brightness_low", "brightness_low"), - ("brightness_medium", "brightness_medium"), - ("broken_image", "broken_image"), - ("brush", "brush"), - ("bubble_chart", "bubble_chart"), - ("bug_report", "bug_report"), - ("build", "build"), - ("burst_mode", "burst_mode"), - ("business", "business"), - ("business_center", "business_center"), - ("cached", "cached"), - ("cake", "cake"), - ("call", "call"), - ("call_end", "call_end"), - ("call_made", "call_made"), - ("call_merge", "call_merge"), - ("call_missed", "call_missed"), - ("call_missed_outgoing", "call_missed_outgoing"), - ("call_received", "call_received"), - ("call_split", "call_split"), - ("call_to_action", "call_to_action"), - ("camera", "camera"), - ("camera_alt", "camera_alt"), - ("camera_enhance", "camera_enhance"), - ("camera_front", "camera_front"), - ("camera_rear", "camera_rear"), - ("camera_roll", "camera_roll"), - ("cancel", "cancel"), - ("card_giftcard", "card_giftcard"), - ("card_membership", "card_membership"), - ("card_travel", "card_travel"), - ("casino", "casino"), - ("cast", "cast"), - ("cast_connected", "cast_connected"), - ("center_focus_strong", "center_focus_strong"), - ("center_focus_weak", "center_focus_weak"), - ("change_history", "change_history"), - ("chat", "chat"), - ("chat_bubble", "chat_bubble"), - ("chat_bubble_outline", "chat_bubble_outline"), - ("check", "check"), - ("check_box", "check_box"), - ("check_box_outline_blank", "check_box_outline_blank"), - ("check_circle", "check_circle"), - ("chevron_left", "chevron_left"), - ("chevron_right", "chevron_right"), - ("child_care", "child_care"), - ("child_friendly", "child_friendly"), - ("chrome_reader_mode", "chrome_reader_mode"), - ("class", "class"), - ("clear", "clear"), - ("clear_all", "clear_all"), - ("close", "close"), - ("closed_caption", "closed_caption"), - ("cloud", "cloud"), - ("cloud_circle", "cloud_circle"), - ("cloud_done", "cloud_done"), - ("cloud_download", "cloud_download"), - ("cloud_off", "cloud_off"), - ("cloud_queue", "cloud_queue"), - ("cloud_upload", "cloud_upload"), - ("code", "code"), - ("collections", "collections"), - ("collections_bookmark", "collections_bookmark"), - ("color_lens", "color_lens"), - ("colorize", "colorize"), - ("comment", "comment"), - ("compare", "compare"), - ("compare_arrows", "compare_arrows"), - ("computer", "computer"), - ("confirmation_number", "confirmation_number"), - ("contact_mail", "contact_mail"), - ("contact_phone", "contact_phone"), - ("contacts", "contacts"), - ("content_copy", "content_copy"), - ("content_cut", "content_cut"), - ("content_paste", "content_paste"), - ("control_point", "control_point"), - ("control_point_duplicate", "control_point_duplicate"), - ("copyright", "copyright"), - ("create", "create"), - ("create_new_folder", "create_new_folder"), - ("credit_card", "credit_card"), - ("crop", "crop"), - ("crop_16_9", "crop_16_9"), - ("crop_3_2", "crop_3_2"), - ("crop_5_4", "crop_5_4"), - ("crop_7_5", "crop_7_5"), - ("crop_din", "crop_din"), - ("crop_free", "crop_free"), - ("crop_landscape", "crop_landscape"), - ("crop_original", "crop_original"), - ("crop_portrait", "crop_portrait"), - ("crop_rotate", "crop_rotate"), - ("crop_square", "crop_square"), - ("dashboard", "dashboard"), - ("data_usage", "data_usage"), - ("date_range", "date_range"), - ("dehaze", "dehaze"), - ("delete", "delete"), - ("delete_forever", "delete_forever"), - ("delete_sweep", "delete_sweep"), - ("description", "description"), - ("desktop_mac", "desktop_mac"), - ("desktop_windows", "desktop_windows"), - ("details", "details"), - ("developer_board", "developer_board"), - ("developer_mode", "developer_mode"), - ("device_hub", "device_hub"), - ("devices", "devices"), - ("devices_other", "devices_other"), - ("dialer_sip", "dialer_sip"), - ("dialpad", "dialpad"), - ("directions", "directions"), - ("directions_bike", "directions_bike"), - ("directions_boat", "directions_boat"), - ("directions_bus", "directions_bus"), - ("directions_car", "directions_car"), - ("directions_railway", "directions_railway"), - ("directions_run", "directions_run"), - ("directions_subway", "directions_subway"), - ("directions_transit", "directions_transit"), - ("directions_walk", "directions_walk"), - ("disc_full", "disc_full"), - ("dns", "dns"), - ("do_not_disturb", "do_not_disturb"), - ("do_not_disturb_alt", "do_not_disturb_alt"), - ("do_not_disturb_off", "do_not_disturb_off"), - ("do_not_disturb_on", "do_not_disturb_on"), - ("dock", "dock"), - ("domain", "domain"), - ("done", "done"), - ("done_all", "done_all"), - ("donut_large", "donut_large"), - ("donut_small", "donut_small"), - ("drafts", "drafts"), - ("drag_handle", "drag_handle"), - ("drive_eta", "drive_eta"), - ("dvr", "dvr"), - ("edit", "edit"), - ("edit_location", "edit_location"), - ("eject", "eject"), - ("email", "email"), - ("enhanced_encryption", "enhanced_encryption"), - ("equalizer", "equalizer"), - ("error", "error"), - ("error_outline", "error_outline"), - ("euro_symbol", "euro_symbol"), - ("ev_station", "ev_station"), - ("event", "event"), - ("event_available", "event_available"), - ("event_busy", "event_busy"), - ("event_note", "event_note"), - ("event_seat", "event_seat"), - ("exit_to_app", "exit_to_app"), - ("expand_less", "expand_less"), - ("expand_more", "expand_more"), - ("explicit", "explicit"), - ("explore", "explore"), - ("exposure", "exposure"), - ("exposure_neg_1", "exposure_neg_1"), - ("exposure_neg_2", "exposure_neg_2"), - ("exposure_plus_1", "exposure_plus_1"), - ("exposure_plus_2", "exposure_plus_2"), - ("exposure_zero", "exposure_zero"), - ("extension", "extension"), - ("face", "face"), - ("fast_forward", "fast_forward"), - ("fast_rewind", "fast_rewind"), - ("favorite", "favorite"), - ("favorite_border", "favorite_border"), - ("featured_play_list", "featured_play_list"), - ("featured_video", "featured_video"), - ("feedback", "feedback"), - ("fiber_dvr", "fiber_dvr"), - ("fiber_manual_record", "fiber_manual_record"), - ("fiber_new", "fiber_new"), - ("fiber_pin", "fiber_pin"), - ("fiber_smart_record", "fiber_smart_record"), - ("file_download", "file_download"), - ("file_upload", "file_upload"), - ("filter", "filter"), - ("filter_1", "filter_1"), - ("filter_2", "filter_2"), - ("filter_3", "filter_3"), - ("filter_4", "filter_4"), - ("filter_5", "filter_5"), - ("filter_6", "filter_6"), - ("filter_7", "filter_7"), - ("filter_8", "filter_8"), - ("filter_9", "filter_9"), - ("filter_9_plus", "filter_9_plus"), - ("filter_b_and_w", "filter_b_and_w"), - ("filter_center_focus", "filter_center_focus"), - ("filter_drama", "filter_drama"), - ("filter_frames", "filter_frames"), - ("filter_hdr", "filter_hdr"), - ("filter_list", "filter_list"), - ("filter_none", "filter_none"), - ("filter_tilt_shift", "filter_tilt_shift"), - ("filter_vintage", "filter_vintage"), - ("find_in_page", "find_in_page"), - ("find_replace", "find_replace"), - ("fingerprint", "fingerprint"), - ("first_page", "first_page"), - ("fitness_center", "fitness_center"), - ("flag", "flag"), - ("flare", "flare"), - ("flash_auto", "flash_auto"), - ("flash_off", "flash_off"), - ("flash_on", "flash_on"), - ("flight", "flight"), - ("flight_land", "flight_land"), - ("flight_takeoff", "flight_takeoff"), - ("flip", "flip"), - ("flip_to_back", "flip_to_back"), - ("flip_to_front", "flip_to_front"), - ("folder", "folder"), - ("folder_open", "folder_open"), - ("folder_shared", "folder_shared"), - ("folder_special", "folder_special"), - ("font_download", "font_download"), - ("format_align_center", "format_align_center"), - ("format_align_justify", "format_align_justify"), - ("format_align_left", "format_align_left"), - ("format_align_right", "format_align_right"), - ("format_bold", "format_bold"), - ("format_clear", "format_clear"), - ("format_color_fill", "format_color_fill"), - ("format_color_reset", "format_color_reset"), - ("format_color_text", "format_color_text"), - ("format_indent_decrease", "format_indent_decrease"), - ("format_indent_increase", "format_indent_increase"), - ("format_italic", "format_italic"), - ("format_line_spacing", "format_line_spacing"), - ("format_list_bulleted", "format_list_bulleted"), - ("format_list_numbered", "format_list_numbered"), - ("format_paint", "format_paint"), - ("format_quote", "format_quote"), - ("format_shapes", "format_shapes"), - ("format_size", "format_size"), - ("format_strikethrough", "format_strikethrough"), - ("format_textdirection_l_to_r", "format_textdirection_l_to_r"), - ("format_textdirection_r_to_l", "format_textdirection_r_to_l"), - ("format_underlined", "format_underlined"), - ("forum", "forum"), - ("forward", "forward"), - ("forward_10", "forward_10"), - ("forward_30", "forward_30"), - ("forward_5", "forward_5"), - ("free_breakfast", "free_breakfast"), - ("fullscreen", "fullscreen"), - ("fullscreen_exit", "fullscreen_exit"), - ("functions", "functions"), - ("g_translate", "g_translate"), - ("gamepad", "gamepad"), - ("games", "games"), - ("gavel", "gavel"), - ("gesture", "gesture"), - ("get_app", "get_app"), - ("gif", "gif"), - ("golf_course", "golf_course"), - ("gps_fixed", "gps_fixed"), - ("gps_not_fixed", "gps_not_fixed"), - ("gps_off", "gps_off"), - ("grade", "grade"), - ("gradient", "gradient"), - ("grain", "grain"), - ("graphic_eq", "graphic_eq"), - ("grid_off", "grid_off"), - ("grid_on", "grid_on"), - ("group", "group"), - ("group_add", "group_add"), - ("group_work", "group_work"), - ("hd", "hd"), - ("hdr_off", "hdr_off"), - ("hdr_on", "hdr_on"), - ("hdr_strong", "hdr_strong"), - ("hdr_weak", "hdr_weak"), - ("headset", "headset"), - ("headset_mic", "headset_mic"), - ("healing", "healing"), - ("hearing", "hearing"), - ("help", "help"), - ("help_outline", "help_outline"), - ("high_quality", "high_quality"), - ("highlight", "highlight"), - ("highlight_off", "highlight_off"), - ("history", "history"), - ("home", "home"), - ("hot_tub", "hot_tub"), - ("hotel", "hotel"), - ("hourglass_empty", "hourglass_empty"), - ("hourglass_full", "hourglass_full"), - ("http", "http"), - ("https", "https"), - ("image", "image"), - ("image_aspect_ratio", "image_aspect_ratio"), - ("import_contacts", "import_contacts"), - ("import_export", "import_export"), - ("important_devices", "important_devices"), - ("inbox", "inbox"), - ("indeterminate_check_box", "indeterminate_check_box"), - ("info", "info"), - ("info_outline", "info_outline"), - ("input", "input"), - ("insert_chart", "insert_chart"), - ("insert_comment", "insert_comment"), - ("insert_drive_file", "insert_drive_file"), - ("insert_emoticon", "insert_emoticon"), - ("insert_invitation", "insert_invitation"), - ("insert_link", "insert_link"), - ("insert_photo", "insert_photo"), - ("invert_colors", "invert_colors"), - ("invert_colors_off", "invert_colors_off"), - ("iso", "iso"), - ("keyboard", "keyboard"), - ("keyboard_arrow_down", "keyboard_arrow_down"), - ("keyboard_arrow_left", "keyboard_arrow_left"), - ("keyboard_arrow_right", "keyboard_arrow_right"), - ("keyboard_arrow_up", "keyboard_arrow_up"), - ("keyboard_backspace", "keyboard_backspace"), - ("keyboard_capslock", "keyboard_capslock"), - ("keyboard_hide", "keyboard_hide"), - ("keyboard_return", "keyboard_return"), - ("keyboard_tab", "keyboard_tab"), - ("keyboard_voice", "keyboard_voice"), - ("kitchen", "kitchen"), - ("label", "label"), - ("label_outline", "label_outline"), - ("landscape", "landscape"), - ("language", "language"), - ("laptop", "laptop"), - ("laptop_chromebook", "laptop_chromebook"), - ("laptop_mac", "laptop_mac"), - ("laptop_windows", "laptop_windows"), - ("last_page", "last_page"), - ("launch", "launch"), - ("layers", "layers"), - ("layers_clear", "layers_clear"), - ("leak_add", "leak_add"), - ("leak_remove", "leak_remove"), - ("lens", "lens"), - ("library_add", "library_add"), - ("library_books", "library_books"), - ("library_music", "library_music"), - ("lightbulb_outline", "lightbulb_outline"), - ("line_style", "line_style"), - ("line_weight", "line_weight"), - ("linear_scale", "linear_scale"), - ("link", "link"), - ("linked_camera", "linked_camera"), - ("list", "list"), - ("live_help", "live_help"), - ("live_tv", "live_tv"), - ("local_activity", "local_activity"), - ("local_airport", "local_airport"), - ("local_atm", "local_atm"), - ("local_bar", "local_bar"), - ("local_cafe", "local_cafe"), - ("local_car_wash", "local_car_wash"), - ("local_convenience_store", "local_convenience_store"), - ("local_dining", "local_dining"), - ("local_drink", "local_drink"), - ("local_florist", "local_florist"), - ("local_gas_station", "local_gas_station"), - ("local_grocery_store", "local_grocery_store"), - ("local_hospital", "local_hospital"), - ("local_hotel", "local_hotel"), - ("local_laundry_service", "local_laundry_service"), - ("local_library", "local_library"), - ("local_mall", "local_mall"), - ("local_movies", "local_movies"), - ("local_offer", "local_offer"), - ("local_parking", "local_parking"), - ("local_pharmacy", "local_pharmacy"), - ("local_phone", "local_phone"), - ("local_pizza", "local_pizza"), - ("local_play", "local_play"), - ("local_post_office", "local_post_office"), - ("local_printshop", "local_printshop"), - ("local_see", "local_see"), - ("local_shipping", "local_shipping"), - ("local_taxi", "local_taxi"), - ("location_city", "location_city"), - ("location_disabled", "location_disabled"), - ("location_off", "location_off"), - ("location_on", "location_on"), - ("location_searching", "location_searching"), - ("lock", "lock"), - ("lock_open", "lock_open"), - ("lock_outline", "lock_outline"), - ("looks", "looks"), - ("looks_3", "looks_3"), - ("looks_4", "looks_4"), - ("looks_5", "looks_5"), - ("looks_6", "looks_6"), - ("looks_one", "looks_one"), - ("looks_two", "looks_two"), - ("loop", "loop"), - ("loupe", "loupe"), - ("low_priority", "low_priority"), - ("loyalty", "loyalty"), - ("mail", "mail"), - ("mail_outline", "mail_outline"), - ("map", "map"), - ("markunread", "markunread"), - ("markunread_mailbox", "markunread_mailbox"), - ("memory", "memory"), - ("menu", "menu"), - ("merge_type", "merge_type"), - ("message", "message"), - ("mic", "mic"), - ("mic_none", "mic_none"), - ("mic_off", "mic_off"), - ("mms", "mms"), - ("mode_comment", "mode_comment"), - ("mode_edit", "mode_edit"), - ("monetization_on", "monetization_on"), - ("money_off", "money_off"), - ("monochrome_photos", "monochrome_photos"), - ("mood", "mood"), - ("mood_bad", "mood_bad"), - ("more", "more"), - ("more_horiz", "more_horiz"), - ("more_vert", "more_vert"), - ("motorcycle", "motorcycle"), - ("mouse", "mouse"), - ("move_to_inbox", "move_to_inbox"), - ("movie", "movie"), - ("movie_creation", "movie_creation"), - ("movie_filter", "movie_filter"), - ("multiline_chart", "multiline_chart"), - ("music_note", "music_note"), - ("music_video", "music_video"), - ("my_location", "my_location"), - ("nature", "nature"), - ("nature_people", "nature_people"), - ("navigate_before", "navigate_before"), - ("navigate_next", "navigate_next"), - ("navigation", "navigation"), - ("near_me", "near_me"), - ("network_cell", "network_cell"), - ("network_check", "network_check"), - ("network_locked", "network_locked"), - ("network_wifi", "network_wifi"), - ("new_releases", "new_releases"), - ("next_week", "next_week"), - ("nfc", "nfc"), - ("no_encryption", "no_encryption"), - ("no_sim", "no_sim"), - ("not_interested", "not_interested"), - ("note", "note"), - ("note_add", "note_add"), - ("notifications", "notifications"), - ("notifications_active", "notifications_active"), - ("notifications_none", "notifications_none"), - ("notifications_off", "notifications_off"), - ("notifications_paused", "notifications_paused"), - ("offline_pin", "offline_pin"), - ("ondemand_video", "ondemand_video"), - ("opacity", "opacity"), - ("open_in_browser", "open_in_browser"), - ("open_in_new", "open_in_new"), - ("open_with", "open_with"), - ("pages", "pages"), - ("pageview", "pageview"), - ("palette", "palette"), - ("pan_tool", "pan_tool"), - ("panorama", "panorama"), - ("panorama_fish_eye", "panorama_fish_eye"), - ("panorama_horizontal", "panorama_horizontal"), - ("panorama_vertical", "panorama_vertical"), - ("panorama_wide_angle", "panorama_wide_angle"), - ("party_mode", "party_mode"), - ("pause", "pause"), - ("pause_circle_filled", "pause_circle_filled"), - ("pause_circle_outline", "pause_circle_outline"), - ("payment", "payment"), - ("people", "people"), - ("people_outline", "people_outline"), - ("perm_camera_mic", "perm_camera_mic"), - ("perm_contact_calendar", "perm_contact_calendar"), - ("perm_data_setting", "perm_data_setting"), - ("perm_device_information", "perm_device_information"), - ("perm_identity", "perm_identity"), - ("perm_media", "perm_media"), - ("perm_phone_msg", "perm_phone_msg"), - ("perm_scan_wifi", "perm_scan_wifi"), - ("person", "person"), - ("person_add", "person_add"), - ("person_outline", "person_outline"), - ("person_pin", "person_pin"), - ("person_pin_circle", "person_pin_circle"), - ("personal_video", "personal_video"), - ("pets", "pets"), - ("phone", "phone"), - ("phone_android", "phone_android"), - ("phone_bluetooth_speaker", "phone_bluetooth_speaker"), - ("phone_forwarded", "phone_forwarded"), - ("phone_in_talk", "phone_in_talk"), - ("phone_iphone", "phone_iphone"), - ("phone_locked", "phone_locked"), - ("phone_missed", "phone_missed"), - ("phone_paused", "phone_paused"), - ("phonelink", "phonelink"), - ("phonelink_erase", "phonelink_erase"), - ("phonelink_lock", "phonelink_lock"), - ("phonelink_off", "phonelink_off"), - ("phonelink_ring", "phonelink_ring"), - ("phonelink_setup", "phonelink_setup"), - ("photo", "photo"), - ("photo_album", "photo_album"), - ("photo_camera", "photo_camera"), - ("photo_filter", "photo_filter"), - ("photo_library", "photo_library"), - ("photo_size_select_actual", "photo_size_select_actual"), - ("photo_size_select_large", "photo_size_select_large"), - ("photo_size_select_small", "photo_size_select_small"), - ("picture_as_pdf", "picture_as_pdf"), - ("picture_in_picture", "picture_in_picture"), - ("picture_in_picture_alt", "picture_in_picture_alt"), - ("pie_chart", "pie_chart"), - ("pie_chart_outlined", "pie_chart_outlined"), - ("pin_drop", "pin_drop"), - ("place", "place"), - ("play_arrow", "play_arrow"), - ("play_circle_filled", "play_circle_filled"), - ("play_circle_outline", "play_circle_outline"), - ("play_for_work", "play_for_work"), - ("playlist_add", "playlist_add"), - ("playlist_add_check", "playlist_add_check"), - ("playlist_play", "playlist_play"), - ("plus_one", "plus_one"), - ("poll", "poll"), - ("polymer", "polymer"), - ("pool", "pool"), - ("portable_wifi_off", "portable_wifi_off"), - ("portrait", "portrait"), - ("power", "power"), - ("power_input", "power_input"), - ("power_settings_new", "power_settings_new"), - ("pregnant_woman", "pregnant_woman"), - ("present_to_all", "present_to_all"), - ("print", "print"), - ("priority_high", "priority_high"), - ("public", "public"), - ("publish", "publish"), - ("query_builder", "query_builder"), - ("question_answer", "question_answer"), - ("queue", "queue"), - ("queue_music", "queue_music"), - ("queue_play_next", "queue_play_next"), - ("radio", "radio"), - ("radio_button_checked", "radio_button_checked"), - ("radio_button_unchecked", "radio_button_unchecked"), - ("rate_review", "rate_review"), - ("receipt", "receipt"), - ("recent_actors", "recent_actors"), - ("record_voice_over", "record_voice_over"), - ("redeem", "redeem"), - ("redo", "redo"), - ("refresh", "refresh"), - ("remove", "remove"), - ("remove_circle", "remove_circle"), - ("remove_circle_outline", "remove_circle_outline"), - ("remove_from_queue", "remove_from_queue"), - ("remove_red_eye", "remove_red_eye"), - ("remove_shopping_cart", "remove_shopping_cart"), - ("reorder", "reorder"), - ("repeat", "repeat"), - ("repeat_one", "repeat_one"), - ("replay", "replay"), - ("replay_10", "replay_10"), - ("replay_30", "replay_30"), - ("replay_5", "replay_5"), - ("reply", "reply"), - ("reply_all", "reply_all"), - ("report", "report"), - ("report_problem", "report_problem"), - ("restaurant", "restaurant"), - ("restaurant_menu", "restaurant_menu"), - ("restore", "restore"), - ("restore_page", "restore_page"), - ("ring_volume", "ring_volume"), - ("room", "room"), - ("room_service", "room_service"), - ("rotate_90_degrees_ccw", "rotate_90_degrees_ccw"), - ("rotate_left", "rotate_left"), - ("rotate_right", "rotate_right"), - ("rounded_corner", "rounded_corner"), - ("router", "router"), - ("rowing", "rowing"), - ("rss_feed", "rss_feed"), - ("rv_hookup", "rv_hookup"), - ("satellite", "satellite"), - ("save", "save"), - ("scanner", "scanner"), - ("schedule", "schedule"), - ("school", "school"), - ("screen_lock_landscape", "screen_lock_landscape"), - ("screen_lock_portrait", "screen_lock_portrait"), - ("screen_lock_rotation", "screen_lock_rotation"), - ("screen_rotation", "screen_rotation"), - ("screen_share", "screen_share"), - ("sd_card", "sd_card"), - ("sd_storage", "sd_storage"), - ("search", "search"), - ("security", "security"), - ("select_all", "select_all"), - ("send", "send"), - ("sentiment_dissatisfied", "sentiment_dissatisfied"), - ("sentiment_neutral", "sentiment_neutral"), - ("sentiment_satisfied", "sentiment_satisfied"), - ("sentiment_very_dissatisfied", "sentiment_very_dissatisfied"), - ("sentiment_very_satisfied", "sentiment_very_satisfied"), - ("settings", "settings"), - ("settings_applications", "settings_applications"), - ("settings_backup_restore", "settings_backup_restore"), - ("settings_bluetooth", "settings_bluetooth"), - ("settings_brightness", "settings_brightness"), - ("settings_cell", "settings_cell"), - ("settings_ethernet", "settings_ethernet"), - ("settings_input_antenna", "settings_input_antenna"), - ("settings_input_component", "settings_input_component"), - ("settings_input_composite", "settings_input_composite"), - ("settings_input_hdmi", "settings_input_hdmi"), - ("settings_input_svideo", "settings_input_svideo"), - ("settings_overscan", "settings_overscan"), - ("settings_phone", "settings_phone"), - ("settings_power", "settings_power"), - ("settings_remote", "settings_remote"), - ("settings_system_daydream", "settings_system_daydream"), - ("settings_voice", "settings_voice"), - ("share", "share"), - ("shop", "shop"), - ("shop_two", "shop_two"), - ("shopping_basket", "shopping_basket"), - ("shopping_cart", "shopping_cart"), - ("short_text", "short_text"), - ("show_chart", "show_chart"), - ("shuffle", "shuffle"), - ("signal_cellular_4_bar", "signal_cellular_4_bar"), - ("signal_cellular_connected_no_internet_4_bar", "signal_cellular_connected_no_internet_4_bar"), - ("signal_cellular_no_sim", "signal_cellular_no_sim"), - ("signal_cellular_null", "signal_cellular_null"), - ("signal_cellular_off", "signal_cellular_off"), - ("signal_wifi_4_bar", "signal_wifi_4_bar"), - ("signal_wifi_4_bar_lock", "signal_wifi_4_bar_lock"), - ("signal_wifi_off", "signal_wifi_off"), - ("sim_card", "sim_card"), - ("sim_card_alert", "sim_card_alert"), - ("skip_next", "skip_next"), - ("skip_previous", "skip_previous"), - ("slideshow", "slideshow"), - ("slow_motion_video", "slow_motion_video"), - ("smartphone", "smartphone"), - ("smoke_free", "smoke_free"), - ("smoking_rooms", "smoking_rooms"), - ("sms", "sms"), - ("sms_failed", "sms_failed"), - ("snooze", "snooze"), - ("sort", "sort"), - ("sort_by_alpha", "sort_by_alpha"), - ("spa", "spa"), - ("space_bar", "space_bar"), - ("speaker", "speaker"), - ("speaker_group", "speaker_group"), - ("speaker_notes", "speaker_notes"), - ("speaker_notes_off", "speaker_notes_off"), - ("speaker_phone", "speaker_phone"), - ("spellcheck", "spellcheck"), - ("star", "star"), - ("star_border", "star_border"), - ("star_half", "star_half"), - ("stars", "stars"), - ("stay_current_landscape", "stay_current_landscape"), - ("stay_current_portrait", "stay_current_portrait"), - ("stay_primary_landscape", "stay_primary_landscape"), - ("stay_primary_portrait", "stay_primary_portrait"), - ("stop", "stop"), - ("stop_screen_share", "stop_screen_share"), - ("storage", "storage"), - ("store", "store"), - ("store_mall_directory", "store_mall_directory"), - ("straighten", "straighten"), - ("streetview", "streetview"), - ("strikethrough_s", "strikethrough_s"), - ("style", "style"), - ("subdirectory_arrow_left", "subdirectory_arrow_left"), - ("subdirectory_arrow_right", "subdirectory_arrow_right"), - ("subject", "subject"), - ("subscriptions", "subscriptions"), - ("subtitles", "subtitles"), - ("subway", "subway"), - ("supervisor_account", "supervisor_account"), - ("surround_sound", "surround_sound"), - ("swap_calls", "swap_calls"), - ("swap_horiz", "swap_horiz"), - ("swap_vert", "swap_vert"), - ("swap_vertical_circle", "swap_vertical_circle"), - ("switch_camera", "switch_camera"), - ("switch_video", "switch_video"), - ("sync", "sync"), - ("sync_disabled", "sync_disabled"), - ("sync_problem", "sync_problem"), - ("system_update", "system_update"), - ("system_update_alt", "system_update_alt"), - ("tab", "tab"), - ("tab_unselected", "tab_unselected"), - ("tablet", "tablet"), - ("tablet_android", "tablet_android"), - ("tablet_mac", "tablet_mac"), - ("tag_faces", "tag_faces"), - ("tap_and_play", "tap_and_play"), - ("terrain", "terrain"), - ("text_fields", "text_fields"), - ("text_format", "text_format"), - ("textsms", "textsms"), - ("texture", "texture"), - ("theaters", "theaters"), - ("thumb_down", "thumb_down"), - ("thumb_up", "thumb_up"), - ("thumbs_up_down", "thumbs_up_down"), - ("time_to_leave", "time_to_leave"), - ("timelapse", "timelapse"), - ("timeline", "timeline"), - ("timer", "timer"), - ("timer_10", "timer_10"), - ("timer_3", "timer_3"), - ("timer_off", "timer_off"), - ("title", "title"), - ("toc", "toc"), - ("today", "today"), - ("toll", "toll"), - ("tonality", "tonality"), - ("touch_app", "touch_app"), - ("toys", "toys"), - ("track_changes", "track_changes"), - ("traffic", "traffic"), - ("train", "train"), - ("tram", "tram"), - ("transfer_within_a_station", "transfer_within_a_station"), - ("transform", "transform"), - ("translate", "translate"), - ("trending_down", "trending_down"), - ("trending_flat", "trending_flat"), - ("trending_up", "trending_up"), - ("tune", "tune"), - ("turned_in", "turned_in"), - ("turned_in_not", "turned_in_not"), - ("tv", "tv"), - ("unarchive", "unarchive"), - ("undo", "undo"), - ("unfold_less", "unfold_less"), - ("unfold_more", "unfold_more"), - ("update", "update"), - ("usb", "usb"), - ("verified_user", "verified_user"), - ("vertical_align_bottom", "vertical_align_bottom"), - ("vertical_align_center", "vertical_align_center"), - ("vertical_align_top", "vertical_align_top"), - ("vibration", "vibration"), - ("video_call", "video_call"), - ("video_label", "video_label"), - ("video_library", "video_library"), - ("videocam", "videocam"), - ("videocam_off", "videocam_off"), - ("videogame_asset", "videogame_asset"), - ("view_agenda", "view_agenda"), - ("view_array", "view_array"), - ("view_carousel", "view_carousel"), - ("view_column", "view_column"), - ("view_comfy", "view_comfy"), - ("view_compact", "view_compact"), - ("view_day", "view_day"), - ("view_headline", "view_headline"), - ("view_list", "view_list"), - ("view_module", "view_module"), - ("view_quilt", "view_quilt"), - ("view_stream", "view_stream"), - ("view_week", "view_week"), - ("vignette", "vignette"), - ("visibility", "visibility"), - ("visibility_off", "visibility_off"), - ("voice_chat", "voice_chat"), - ("voicemail", "voicemail"), - ("volume_down", "volume_down"), - ("volume_mute", "volume_mute"), - ("volume_off", "volume_off"), - ("volume_up", "volume_up"), - ("vpn_key", "vpn_key"), - ("vpn_lock", "vpn_lock"), - ("wallpaper", "wallpaper"), - ("warning", "warning"), - ("watch", "watch"), - ("watch_later", "watch_later"), - ("wb_auto", "wb_auto"), - ("wb_cloudy", "wb_cloudy"), - ("wb_incandescent", "wb_incandescent"), - ("wb_iridescent", "wb_iridescent"), - ("wb_sunny", "wb_sunny"), - ("wc", "wc"), - ("web", "web"), - ("web_asset", "web_asset"), - ("weekend", "weekend"), - ("whatshot", "whatshot"), - ("widgets", "widgets"), - ("wifi", "wifi"), - ("wifi_lock", "wifi_lock"), - ("wifi_tethering", "wifi_tethering"), - ("work", "work"), - ("wrap_text", "wrap_text"), - ("youtube_searched_for", "youtube_searched_for"), - ("zoom_in", "zoom_in"), - ("zoom_out", "zoom_out"), - ("zoom_out_map", "zoom_out_map"), -] +try: + ICONS = icon_choices("mdi") +except FileNotFoundError: + # If icons aren't installed yet, set choices to empty list + ICONS = [] diff --git a/aleksis/core/views.py b/aleksis/core/views.py index 84c2a4bcea402a014b21865d788abe8828f4f547..49bf382104daf4001c32971b020dbe9b2d1954e4 100644 --- a/aleksis/core/views.py +++ b/aleksis/core/views.py @@ -4,6 +4,7 @@ from urllib.parse import urlencode, urlparse, urlunparse from django.apps import apps from django.conf import settings +from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.models import Group as DjangoGroup from django.contrib.auth.models import Permission, User from django.contrib.contenttypes.models import ContentType @@ -35,7 +36,7 @@ from django.views.generic.edit import DeleteView, FormView from django.views.generic.list import ListView import reversion -from allauth.account.utils import _has_verified_for_login, send_email_confirmation +from allauth.account.utils import has_verified_email, send_email_confirmation from allauth.account.views import PasswordChangeView, PasswordResetView, SignupView from allauth.socialaccount.adapter import get_adapter from allauth.socialaccount.models import SocialAccount @@ -115,6 +116,7 @@ from .registries import ( from .tables import ( AdditionalFieldsTable, DashboardWidgetTable, + FullPersonsTable, GroupGlobalPermissionTable, GroupObjectPermissionTable, GroupsTable, @@ -358,7 +360,7 @@ def group(request: HttpRequest, id_: int) -> HttpResponse: members = group.members.all() # Build table - members_table = PersonsTable(members) + members_table = FullPersonsTable(members) RequestConfig(request).configure(members_table) context["members_table"] = members_table @@ -366,7 +368,7 @@ def group(request: HttpRequest, id_: int) -> HttpResponse: owners = group.owners.all() # Build table - owners_table = PersonsTable(owners) + owners_table = FullPersonsTable(owners) RequestConfig(request).configure(owners_table) context["owners_table"] = owners_table @@ -1358,7 +1360,7 @@ class CeleryProgressView(View): return get_progress(request, task_id, *args, **kwargs) -class CustomPasswordChangeView(PermissionRequiredMixin, PasswordChangeView): +class CustomPasswordChangeView(LoginRequiredMixin, PermissionRequiredMixin, PasswordChangeView): """Custom password change view to allow to disable changing of password.""" permission_required = "core.can_change_password" @@ -1522,7 +1524,7 @@ class LoginView(AllAuthLoginView): def done(self, form_list, **kwargs): if settings.ACCOUNT_EMAIL_VERIFICATION == "mandatory": user = self.get_user() - if not _has_verified_for_login(user, user.email): + if not has_verified_email(user, user.email): send_email_confirmation(self.request, user, signup=False, email=user.email) return render(self.request, "account/verification_sent.html") diff --git a/docs/_static/pwa_desktop_chromium.png b/docs/_static/pwa_desktop_chromium.png new file mode 100644 index 0000000000000000000000000000000000000000..b2f2bb10a380a6147f1a1f516dc6aaf07cb7b545 Binary files /dev/null and b/docs/_static/pwa_desktop_chromium.png differ diff --git a/docs/_static/pwa_mobile_chromium.png b/docs/_static/pwa_mobile_chromium.png new file mode 100644 index 0000000000000000000000000000000000000000..3ea9f86d0f13f1e88f030453a16141bb2aba7f60 Binary files /dev/null and b/docs/_static/pwa_mobile_chromium.png differ diff --git a/docs/_static/pwa_mobile_firefox.png b/docs/_static/pwa_mobile_firefox.png new file mode 100644 index 0000000000000000000000000000000000000000..482614a3698797115693bf0d9736113bbad9929b Binary files /dev/null and b/docs/_static/pwa_mobile_firefox.png differ diff --git a/docs/_static/pwa_mobile_safari.png b/docs/_static/pwa_mobile_safari.png new file mode 100644 index 0000000000000000000000000000000000000000..8bc4f21e04cecb69d70f56903275c18891aaca63 Binary files /dev/null and b/docs/_static/pwa_mobile_safari.png differ diff --git a/docs/admin/01_core_concepts.rst b/docs/admin/01_core_concepts.rst index 11c97f331fadab28a257773267821b08c42589b6..2d626927ae2845594a0a67525d213064f2581e97 100644 --- a/docs/admin/01_core_concepts.rst +++ b/docs/admin/01_core_concepts.rst @@ -1,3 +1,5 @@ +.. _core-concept: + Concepts of the AlekSIS core ============================ diff --git a/docs/admin/10_install.rst b/docs/admin/10_install.rst index f8b41d0d98efd5daa1df64a5fceea9ae5b86c662..05baa14a8c76f91b3407c47a97c2609c0decad6d 100644 --- a/docs/admin/10_install.rst +++ b/docs/admin/10_install.rst @@ -55,7 +55,8 @@ Install some packages from the Debian package system. chromium \ redis-server \ postgresql \ - locales-all + locales-all \ + celery Create PostgreSQL user and database ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -78,7 +79,6 @@ Create the directories for storage /usr/share/aleksis/{static,node_modules} \ /var/lib/aleksis/media \ /var/backups/aleksis - chown -R www-data:www-data /var/lib/aleksis Create AlekSIS configuration file ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -111,6 +111,18 @@ favourite text editor and adding the following configuration. password = "admin" email = "root@localhost" +Make sure you specify the correct `allowed_hosts`. It is used for things like the OpenID Connect issuer and the standard mail domain. + +Generate OpenID Connect certificate +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +OpenID Connect needs a certificate, which you need to generate and assign required permissions. + +.. code-block:: shell + + openssl genrsa -out /etc/aleksis/oidc.pem + chown www-data:www-data /etc/aleksis/oidc.pem + Install AlekSIS itself ~~~~~~~~~~~~~~~~~~~~~~ @@ -119,14 +131,30 @@ They will pull the AlekSIS standard distribution from `PyPI`_ and install it to system-wide `dist-packages` of Python. Afterwards, it will download frontend dependencies from `yarnpkg`, collect static files, and migrate the database to the final schema. +`aleksis` is a meta-package which will install the :ref:`core-concept` and all official apps. If you want to install only the AlekSIS Core and your own set of apps, you can install `aleksis-core` instead of `aleksis`. + +You only need to install these additional dependencies if installing the meta-package: + .. code-block:: shell + apt install libmariadb-dev libldap2-dev libsasl2-dev + +After that, you can install the aleksis meta-package, or only `aleksis-core`: +.. code-block:: shell pip3 install aleksis aleksis-admin yarn install aleksis-admin collectstatic aleksis-admin migrate aleksis-admin createinitialrevisions +Make dynamic content writable for webserver +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To make AlekSIS® able to write dynamic content, you need to assign permissions to the webserver user. + +.. code-block:: shell + chown -R www-data:www-data /var/lib/aleksis + .. _core-configure-uwsgi: Configure uWSGI diff --git a/docs/conf.py b/docs/conf.py index b31ca6be5a35d2e169c9c13c52de1180b108b608..f8abb48da323b7a1e9c6a59fccb05f3fe702495d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -29,9 +29,9 @@ copyright = "2019-2022 The AlekSIS team" author = "The AlekSIS Team" # The short X.Y version -version = "2.9" +version = "2.10" # The full version, including alpha/beta/rc tags -release = "2.9.1.dev0" +release = "2.10.1.dev0" # -- General configuration --------------------------------------------------- diff --git a/docs/user/02_personal_account.rst b/docs/user/02_personal_account.rst index fe584615cefbaf284a6b3ba2cfd7babeca076f0d..b1b0a596890a75ba4cdce866d9be5d2d4829d518 100644 --- a/docs/user/02_personal_account.rst +++ b/docs/user/02_personal_account.rst @@ -84,7 +84,7 @@ Microsoft account), you can manage the connections to these accounts on the page ``Account → Third-party accounts``. The feature to use third-party accounts needs to be enabled by -an administrator, as described in :doc:`../admin/04_socialaccounts`. +an administrator, as described in :doc:`../admin/23_socialaccounts`. Authorized applications ----------------------- diff --git a/docs/user/20_pwa.rst b/docs/user/20_pwa.rst index 3b3b16514cae1c932d321cefc86dcdbd946c59e2..321ec4b7acd457ae015955cef7473bb37d18b0a0 100644 --- a/docs/user/20_pwa.rst +++ b/docs/user/20_pwa.rst @@ -6,7 +6,7 @@ What is a progressive web application? A PWA is an application developed with common web technologies and delivered in form of a website, but which offers some features a -traditional website does not and ,overall, creates an impression that +traditional website does not and overall creates an impression that resembles that of a native application. AlekSIS PWA features @@ -30,19 +30,39 @@ platform to platform. On some, you are prompted to add AlekSIS to your home screen of desktop using a popup; on others, you have to take action yourself and find the corresponding menu entry. As of the time of writing, “installable†PWAs are supported by all major platforms except -Firefox Desktop which nevertheless supports the other features. - -- Chromium-based browsers (e.g. Chromium, Google Chrome, Microsoft - Edge) will usually prompt you to install the PWA by a popup on both - mobile and desktop devices; for the former using a banner and for the - latter using an appearing button in the address bar. In both cases, a - click on the notification is enough to start the installation - process. -- Firefox Mobile will also probably prompt you using a dot near the - menu button; then “install†has to been clicked. -- On Safari you need to open the share popup and click on the “Add to - Home Screen†button. - -Independent of the used platform, AlekSIS can be accessed as an +Firefox Desktop and Safari Desktop which nevertheless support the other features. + +Chromium-based browsers (e.g. Chromium, Google Chrome, Microsoft +Edge) will usually prompt you to install the PWA by a popup on both +mobile and desktop devices; for the former using a banner + +.. image:: ../_static/pwa_mobile_chromium.png + :width: 40% + :alt: PWA installation prompt on the mobile version of the Chromium browser + +and for the latter using an appearing button in the address bar. + +.. image:: ../_static/pwa_desktop_chromium.png + :width: 100% + :alt: PWA installation prompt on the desktop version of the Chromium browser + +In both cases, a click on the notification is enough to start +the installation process. + +Firefox Mobile will also prompt you using a dot near the +menu button; then ``Install`` has to be clicked. + +.. image:: ../_static/pwa_mobile_firefox.png + :width: 40% + :alt: PWA installation prompt on the mobile version of the Firefox browser + +On Safari Mobile, you need to open the share popup and click on the +``Add to Home Screen`` button. + +.. image:: ../_static/pwa_mobile_safari.png + :width: 40% + :alt: PWA installation prompt on the mobile version of the Safari browser + +No matter what platform is used, AlekSIS can be accessed as an independent application entry, just like any other installed native application, after installation. diff --git a/pyproject.toml b/pyproject.toml index 3d38ff10860ce159698c7211810b83a1534bd581..25a8b71701535172c27f23b80d201749dce31ee2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "AlekSIS-Core" -version = "2.9.1.dev0" +version = "2.10.1.dev0" packages = [ { include = "aleksis" } ] @@ -71,7 +71,7 @@ django-ipware = "^4.0" django-impersonate = "^1.4" psycopg2 = "^2.8" django_select2 = "^7.1" -django-two-factor-auth = { version = "^1.12.1", extras = [ "yubikey", "phonenumbers", "call", "sms" ] } +django-two-factor-auth = { version = "^1.14.0", extras = [ "yubikey", "phonenumbers", "call", "sms" ] } django-yarnpkg = "^6.0" django-material = "^1.6.0" django-dynamic-preferences = "^1.11" @@ -89,7 +89,7 @@ django-celery-email = "^3.0.0" django-jsonstore = "^0.5.0" django-polymorphic = "^3.0.0" django-colorfield = "^0.7.0" -django-bleach = "^2.0.0" +django-bleach = "^3.0.0" django-guardian = "^2.2.0" rules = "^3.0" django-cache-memoize = "^0.1.6" @@ -97,7 +97,7 @@ django-haystack = "^3.1" celery-haystack-ng = "^2.0" django-dbbackup = "^4.0.0b" spdx-license-list = "^0.5.0" -license-expression = "^21.6" +license-expression = "^30.0" django-reversion = "^5.0.0" django-favicon-plus-reloaded = "^1.1.5" django-health-check = "^3.12.1" @@ -109,7 +109,7 @@ django-model-utils = "^4.0.0" bs4 = "^0.0.1" django-invitations = "^1.9.3" django-cleavejs = "^0.1.0" -django-allauth = "^0.47.0" +django-allauth = "^0.51.0" django-uwsgi-ng = "^1.1.0" django-extensions = "^3.1.1" ipython = "^8.0.0" @@ -127,7 +127,7 @@ sentry-sdk = {version = "^1.4.3", optional = true} django-cte = "^1.1.5" pycountry = "^22.0.0" django-ical = "^1.8.3" -django-iconify = "^0.2.0" +django-iconify = "^0.3" customidenticon = "^0.1.5" [tool.poetry.extras]