diff --git a/apps/admission/locale/ru/LC_MESSAGES/django.po b/apps/admission/locale/ru/LC_MESSAGES/django.po index 4793774c36..56f6858e48 100644 --- a/apps/admission/locale/ru/LC_MESSAGES/django.po +++ b/apps/admission/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-30 01:19+0000\n" +"POT-Creation-Date: 2024-02-27 18:28+0300\n" "PO-Revision-Date: 2023-03-30 01:19+0000\n" "Last-Translator: \n" "Language-Team: LANGUAGE \n" @@ -16,23 +16,23 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Translated-Using: django-rosetta 0.9.8\n" #: apps/admission/admin.py:46 apps/admission/admin.py:99 #: apps/admission/admin.py:404 apps/admission/filters.py:70 #: apps/admission/filters.py:109 apps/admission/filters.py:291 -#: apps/admission/models.py:159 apps/admission/models.py:1096 -#: apps/admission/models.py:1308 apps/admission/models.py:1693 +#: apps/admission/models.py:160 apps/admission/models.py:1105 +#: apps/admission/models.py:1320 apps/admission/models.py:1710 msgid "Campaign" msgstr "Набор" #: apps/admission/admin.py:103 apps/admission/admin.py:384 -#: apps/admission/admin.py:400 apps/admission/models.py:557 -#: apps/admission/models.py:985 apps/admission/models.py:1030 -#: apps/admission/models.py:1169 apps/admission/models.py:1519 -#: apps/admission/models.py:1616 +#: apps/admission/admin.py:400 apps/admission/models.py:561 +#: apps/admission/models.py:991 apps/admission/models.py:1037 +#: apps/admission/models.py:1179 apps/admission/models.py:1533 +#: apps/admission/models.py:1631 msgid "Applicant" msgstr "Поступающий" @@ -41,7 +41,7 @@ msgid "Created" msgstr "Создано" #: apps/admission/admin.py:226 apps/admission/admin.py:301 -#: apps/admission/models.py:1282 +#: apps/admission/models.py:1293 msgid "Interviewer" msgstr "Собеседующий" @@ -53,13 +53,13 @@ msgstr "Собеседующие" msgid "Date" msgstr "Дата" -#: apps/admission/admin.py:297 apps/admission/models.py:1207 -#: apps/admission/models.py:1276 apps/admission/models.py:1468 -#: apps/admission/models.py:1540 +#: apps/admission/admin.py:297 apps/admission/models.py:1218 +#: apps/admission/models.py:1287 apps/admission/models.py:1481 +#: apps/admission/models.py:1554 msgid "Interview" msgstr "Интервью" -#: apps/admission/admin.py:380 apps/admission/constants.py:89 +#: apps/admission/admin.py:380 apps/admission/constants.py:90 msgid "Accepted" msgstr "Принято" @@ -72,7 +72,7 @@ msgid "No" msgstr "Нет" #: apps/admission/admin.py:388 apps/admission/models.py:77 -#: apps/admission/models.py:228 +#: apps/admission/models.py:229 msgid "Branch" msgstr "Отделение" @@ -98,114 +98,120 @@ msgid "Rejected by exam" msgstr "Отказ по результатам экзамена" #: apps/admission/constants.py:22 +#, fuzzy +#| msgid "Rejected by exam" +msgid "Rejected by exam cheating" +msgstr "Отказ по результатам экзамена" + +#: apps/admission/constants.py:23 msgid "Cheating" msgstr "Читер (списывание и т.д.)" -#: apps/admission/constants.py:23 +#: apps/admission/constants.py:24 msgid "Pending" msgstr "Ожидает решения" -#: apps/admission/constants.py:26 +#: apps/admission/constants.py:27 msgid "Can be interviewed" msgstr "Прошёл на собеседование (ещё не назначено)" -#: apps/admission/constants.py:28 +#: apps/admission/constants.py:29 msgid "Interview assigned" msgstr "Назначено собеседование" -#: apps/admission/constants.py:29 +#: apps/admission/constants.py:30 msgid "Interview completed" msgstr "Собеседование завершено" -#: apps/admission/constants.py:30 +#: apps/admission/constants.py:31 msgid "Rejected by interview" msgstr "Отказ по результатам интервью" -#: apps/admission/constants.py:32 +#: apps/admission/constants.py:33 msgid "Rejected by interview. Offered a bonus" msgstr "Отказ по результатам интервью. Предложили бонус" -#: apps/admission/constants.py:34 +#: apps/admission/constants.py:35 msgid "Accept on paid" msgstr "Платное" -#: apps/admission/constants.py:35 +#: apps/admission/constants.py:36 msgid "Waiting for Payment" msgstr "Ожидаем оплаты" -#: apps/admission/constants.py:36 +#: apps/admission/constants.py:37 msgid "Accept" msgstr "Принимаем" -#: apps/admission/constants.py:37 +#: apps/admission/constants.py:38 msgid "Accept with condition" msgstr "Принимаем с условием" -#: apps/admission/constants.py:38 +#: apps/admission/constants.py:39 msgid "Applicant|Volunteer" msgstr "Берем в вольные слушатели" -#: apps/admission/constants.py:39 +#: apps/admission/constants.py:40 msgid "He or she refused" msgstr "Отказался" -#: apps/admission/constants.py:58 +#: apps/admission/constants.py:59 msgid "Testing" msgstr "Тестирование" -#: apps/admission/constants.py:59 apps/admission/models.py:1044 +#: apps/admission/constants.py:60 apps/admission/models.py:1052 msgid "Exam" msgstr "Экзамен" -#: apps/admission/constants.py:63 +#: apps/admission/constants.py:64 msgid "Not registered in the contest" msgstr "Не зарегистрирован в контесте" -#: apps/admission/constants.py:65 +#: apps/admission/constants.py:66 msgid "Syncing with a contest" msgstr "Синхронизация с контестом" -#: apps/admission/constants.py:66 +#: apps/admission/constants.py:67 msgid "Manual score input" msgstr "Ручной ввод баллов" -#: apps/admission/constants.py:70 +#: apps/admission/constants.py:71 msgid "Offline" msgstr "Офлайн" -#: apps/admission/constants.py:71 +#: apps/admission/constants.py:72 msgid "Online" msgstr "Онлайн" -#: apps/admission/constants.py:75 +#: apps/admission/constants.py:76 msgctxt "section" msgid "Common Section" msgstr "Общая секция" -#: apps/admission/constants.py:76 +#: apps/admission/constants.py:77 msgctxt "section" msgid "Math" msgstr "Математика" -#: apps/admission/constants.py:77 +#: apps/admission/constants.py:78 msgctxt "section" msgid "Code" msgstr "Код" -#: apps/admission/constants.py:78 +#: apps/admission/constants.py:79 msgctxt "section" msgid "Motivation" msgstr "Мотивация" -#: apps/admission/constants.py:83 +#: apps/admission/constants.py:84 msgid "No Response" msgstr "Нет ответа" -#: apps/admission/constants.py:84 +#: apps/admission/constants.py:85 msgid "Declined" msgstr "Отклонено" -#: apps/admission/constants.py:88 +#: apps/admission/constants.py:89 msgid "Expired" msgstr "Истекло" @@ -215,12 +221,12 @@ msgstr "Согласованные и завершенные" #: apps/admission/filters.py:80 apps/admission/filters.py:169 #: apps/admission/filters.py:270 apps/admission/filters.py:325 -#: apps/admission/models.py:778 apps/admission/models.py:1526 -#: apps/admission/models.py:1606 +#: apps/admission/models.py:783 apps/admission/models.py:1540 +#: apps/admission/models.py:1621 msgid "Status" msgstr "Статус" -#: apps/admission/filters.py:81 apps/admission/models.py:344 +#: apps/admission/filters.py:81 apps/admission/models.py:347 msgid "Surname" msgstr "Фамилия" @@ -246,8 +252,8 @@ msgstr "Потоки собеседований" msgid "Show" msgstr "Показать" -#: apps/admission/filters.py:327 apps/admission/models.py:220 -#: apps/admission/models.py:236 +#: apps/admission/filters.py:327 apps/admission/models.py:221 +#: apps/admission/models.py:238 msgid "University" msgstr "Вуз" @@ -256,7 +262,7 @@ msgid "Create interview" msgstr "Создать собеседование" #: apps/admission/forms.py:80 apps/admission/forms.py:113 -#: apps/admission/models.py:1360 apps/admission/models.py:1531 +#: apps/admission/models.py:1373 apps/admission/models.py:1545 msgid "Interview streams" msgstr "Потоки собеседований" @@ -330,7 +336,7 @@ msgstr "" "Возможность сделать набор текущим появится после добавления контестов для " "этапа тестирования." -#: apps/admission/models.py:88 apps/admission/models.py:1680 +#: apps/admission/models.py:88 apps/admission/models.py:1696 msgid "Order" msgstr "Сортировка" @@ -438,461 +444,461 @@ msgstr "" "выставления статуса завершения собеседования, но не раньше 21:00 дня " "собеседования." -#: apps/admission/models.py:160 +#: apps/admission/models.py:161 msgid "Campaigns" msgstr "Кампании по набору" -#: apps/admission/models.py:163 +#: apps/admission/models.py:164 msgid "{}, {}" msgstr "{}, {}" -#: apps/admission/models.py:177 +#: apps/admission/models.py:178 msgid "You can't set `current` on campaign creation" msgstr "" "Нельзя сделать кампанию сразу активной. Как минимум сперва нужно создать " "контесты." -#: apps/admission/models.py:186 +#: apps/admission/models.py:187 msgid "Before mark campaign as `current` - add contests for testing" msgstr "Не найдены контесты для этапа тестирования." -#: apps/admission/models.py:190 +#: apps/admission/models.py:191 msgid "Empty access token" msgstr "" "Не указан access token админа контестов (значение не валидируется, только " "проверяется его наличие)" -#: apps/admission/models.py:220 +#: apps/admission/models.py:221 msgid "Perhaps also the faculty." msgstr "Возможно и факультет" -#: apps/admission/models.py:223 +#: apps/admission/models.py:224 msgid "University abbreviation" msgstr "Аббревиатура" -#: apps/admission/models.py:225 +#: apps/admission/models.py:226 msgid "Sort order" msgstr "Сортировка" -#: apps/admission/models.py:237 +#: apps/admission/models.py:239 msgid "Universities" msgstr "Университеты" -#: apps/admission/models.py:324 +#: apps/admission/models.py:327 msgid "Applicant|Campaign" msgstr "Набор" -#: apps/admission/models.py:330 +#: apps/admission/models.py:333 msgid "Applicant|Status" msgstr "Статус" -#: apps/admission/models.py:337 +#: apps/admission/models.py:340 msgid "Account" msgstr "Пользователь" -#: apps/admission/models.py:343 +#: apps/admission/models.py:346 msgid "First name" msgstr "Имя" -#: apps/admission/models.py:346 +#: apps/admission/models.py:349 msgid "Patronymic" msgstr "Отчество" -#: apps/admission/models.py:348 +#: apps/admission/models.py:351 msgid "Email" msgstr "Электронная почта" -#: apps/admission/models.py:348 +#: apps/admission/models.py:351 msgid "Applicant|email" msgstr "Адрес электронной почты" -#: apps/admission/models.py:350 +#: apps/admission/models.py:353 msgid "Telegram" msgstr "" -#: apps/admission/models.py:353 +#: apps/admission/models.py:356 msgid "Unsubscribed" msgstr "Отписан от уведомлений" -#: apps/admission/models.py:356 +#: apps/admission/models.py:359 msgid "Unsubscribe from future notifications" msgstr "Пользователь отказался от рассылок по поводу приёмной кампании" -#: apps/admission/models.py:359 +#: apps/admission/models.py:362 msgid "Contact phone" msgstr "Контактный телефон" -#: apps/admission/models.py:359 +#: apps/admission/models.py:362 msgid "Applicant|phone" msgstr "Телефон для связи" -#: apps/admission/models.py:361 +#: apps/admission/models.py:364 msgid "Residence city" msgstr "Город проживания" -#: apps/admission/models.py:365 +#: apps/admission/models.py:368 msgid "Living Place" msgstr "Место проживания" -#: apps/admission/models.py:367 +#: apps/admission/models.py:370 msgid "Date of Birth" msgstr "Дата рождения" -#: apps/admission/models.py:370 +#: apps/admission/models.py:373 msgid "Stepik ID" msgstr "stepik.org ID" -#: apps/admission/models.py:371 +#: apps/admission/models.py:374 msgid "Applicant|stepic_id" msgstr "ID на stepic.org" -#: apps/admission/models.py:377 +#: apps/admission/models.py:380 msgid "Yandex Login" msgstr "Логин на Яндексе" -#: apps/admission/models.py:379 +#: apps/admission/models.py:382 msgid "Applicant|yandex_login" msgstr "" "Многие сервисы Яндекса используют единый аккаунт https://passport.yandex.ru" -#: apps/admission/models.py:384 +#: apps/admission/models.py:387 msgid "Yandex Login (normalized)" msgstr "Логин на Яндексе (нормализованный)" -#: apps/admission/models.py:386 +#: apps/admission/models.py:389 msgid "Applicant|yandex_id_normalization" msgstr "Нормализация яндекс логина для поиска анкет" -#: apps/admission/models.py:392 +#: apps/admission/models.py:395 msgid "Github Login" msgstr "Логин на github.com" -#: apps/admission/models.py:394 +#: apps/admission/models.py:397 msgid "Applicant|github_login" msgstr "Ссылка на github-аккаунт" -#: apps/admission/models.py:399 +#: apps/admission/models.py:402 msgid "Partner" msgstr "Партнёрская программа" -#: apps/admission/models.py:401 +#: apps/admission/models.py:404 msgid "Are you studying?" msgstr "Вы учитесь?" -#: apps/admission/models.py:404 +#: apps/admission/models.py:407 msgid "Universities|University" msgstr "Университет" -#: apps/admission/models.py:411 +#: apps/admission/models.py:414 msgid "Applicant|University" msgstr "Университет (и иногда факультет)" -#: apps/admission/models.py:418 +#: apps/admission/models.py:421 msgid "University (Other)" msgstr "Университет, другое" -#: apps/admission/models.py:421 +#: apps/admission/models.py:424 msgid "Faculty" msgstr "Факультет" -#: apps/admission/models.py:421 +#: apps/admission/models.py:424 msgid "Applicant|faculty" msgstr "" "На каком факультете (кафедре/специализации) Вы учитесь или какой факультет " "закончили?" -#: apps/admission/models.py:424 +#: apps/admission/models.py:427 msgid "Course" msgstr "Курс" -#: apps/admission/models.py:426 +#: apps/admission/models.py:429 msgid "Applicant|course" msgstr "На каком курсе Вы сейчас учитесь?" -#: apps/admission/models.py:432 +#: apps/admission/models.py:435 msgid "Graduation Year" msgstr "Год выпуска" -#: apps/admission/models.py:435 +#: apps/admission/models.py:438 msgid "Graduate work" msgstr "Выпускная работа" -#: apps/admission/models.py:436 +#: apps/admission/models.py:439 msgid "Applicant|graduate_work_or_dissertation" msgstr "" "Название текущей курсовой, дипломной работы или диссертации (если есть), " "руководитель" -#: apps/admission/models.py:441 +#: apps/admission/models.py:444 msgid "Online Education Exp" msgstr "" "Вы проходили какие-нибудь онлайн-курсы? Какие? Какие удалось закончить?" -#: apps/admission/models.py:442 +#: apps/admission/models.py:445 msgid "Applicant|online_education_experience" msgstr "" "Вы проходили какие-нибудь онлайн-курсы? Какие? Какие удалось закончить?" -#: apps/admission/models.py:448 +#: apps/admission/models.py:451 msgid "Experience" msgstr "Опыт программирования или научной работы" -#: apps/admission/models.py:449 +#: apps/admission/models.py:452 msgid "Applicant|work_or_study_experience" msgstr "Опишите Ваш опыт программирования или научной работы" -#: apps/admission/models.py:454 +#: apps/admission/models.py:457 msgid "Have you had an internship?" msgstr "Вы проходили стажировки в компаниях?" -#: apps/admission/models.py:454 +#: apps/admission/models.py:457 msgid "Applicant|Has internship" msgstr "Проходил стажировки" -#: apps/admission/models.py:457 +#: apps/admission/models.py:460 msgid "Internship workplace" msgstr "Компания, где вы стажировались" -#: apps/admission/models.py:458 +#: apps/admission/models.py:461 msgid "Applicant|Internship workplace" msgstr "Место стажировки" -#: apps/admission/models.py:464 +#: apps/admission/models.py:467 msgid "Internship position" msgstr "Должность на стажировке" -#: apps/admission/models.py:465 +#: apps/admission/models.py:468 msgid "Applicant|Internship position" msgstr "Должность на стажировке" -#: apps/admission/models.py:471 +#: apps/admission/models.py:474 msgid "Do you work?" msgstr "Работает" -#: apps/admission/models.py:471 +#: apps/admission/models.py:474 msgid "Applicant|has_job" msgstr "Работает ли в данный момент" -#: apps/admission/models.py:474 +#: apps/admission/models.py:477 msgid "Workplace" msgstr "Место работы" -#: apps/admission/models.py:475 +#: apps/admission/models.py:478 msgid "Applicant|workplace" msgstr "Место работы" -#: apps/admission/models.py:481 +#: apps/admission/models.py:484 msgid "Position" msgstr "Должность" -#: apps/admission/models.py:482 +#: apps/admission/models.py:485 msgid "Applicant|position" msgstr "Должность" -#: apps/admission/models.py:489 +#: apps/admission/models.py:492 msgid "Your motivation" msgstr "Мотивация поступающего" -#: apps/admission/models.py:490 +#: apps/admission/models.py:493 msgid "Applicant|motivation_why" msgstr "Почему Вы хотите обучаться у нас?" -#: apps/admission/models.py:495 +#: apps/admission/models.py:498 msgid "Probability" msgstr "" "Что нужно для выпуска из CS центра? Оцените вероятность, что вы сможете это " "сделать" -#: apps/admission/models.py:495 +#: apps/admission/models.py:498 msgid "Applicant|probability" msgstr "" "Что нужно для выпуска из CS центра? Оцените вероятность, что вы сможете это " "сделать" -#: apps/admission/models.py:498 +#: apps/admission/models.py:501 msgid "Study program" msgstr "Предполагаемые направления обучения" -#: apps/admission/models.py:499 +#: apps/admission/models.py:502 msgid "Applicant|study_program" msgstr "Выберите направления обучения, которые Вам интересны в CS центре" -#: apps/admission/models.py:507 +#: apps/admission/models.py:510 msgid "Study Program Notes" msgstr "Комментарии к направлениям обучения" -#: apps/admission/models.py:510 +#: apps/admission/models.py:513 msgid "Study program (DM note)" msgstr "Направление \"Анализ данных\" (подробнее)" -#: apps/admission/models.py:511 +#: apps/admission/models.py:514 msgid "Applicant|study_program_dm" msgstr "" "Почему вам интересен анализ данных? Какие повседневные задачи решаются с " "помощью анализа данных?" -#: apps/admission/models.py:516 +#: apps/admission/models.py:519 msgid "Study program (SE note)" msgstr "Направление \"Разработка ПО\" (подробнее)" -#: apps/admission/models.py:517 +#: apps/admission/models.py:520 msgid "Applicant|study_program_se" msgstr "" "В разработке какого приложения, которым вы пользуетесь каждый день, вы " "хотели бы принять участие? Почему? Каких знаний вам для этого не хватает?" -#: apps/admission/models.py:522 +#: apps/admission/models.py:525 msgid "Study program (CS note)" msgstr "Какие области Computer Science вам интересно было бы изучить?" -#: apps/admission/models.py:523 +#: apps/admission/models.py:526 msgid "Applicant|study_program_cs" msgstr "" "Вы можете посмотреть список возможных тем и руководителей НИРов у нас на " "сайте: https://compscicenter.ru/projects/" -#: apps/admission/models.py:530 +#: apps/admission/models.py:533 msgid "Where did you learn about admission?" msgstr "Откуда вы узнали о наборе?" -#: apps/admission/models.py:533 +#: apps/admission/models.py:536 msgid "Where did you learn about admission? (other)" msgstr "Откуда вы узнали о наборе? (другое)" -#: apps/admission/models.py:539 +#: apps/admission/models.py:542 msgid "Future plans" msgstr "Планы после обучения" -#: apps/admission/models.py:539 +#: apps/admission/models.py:542 msgid "Applicant|future_plans" msgstr "Чем вы планируете заниматься после окончания обучения?" -#: apps/admission/models.py:542 +#: apps/admission/models.py:545 msgid "Additional Info" msgstr "Дополнительная информация" -#: apps/admission/models.py:543 +#: apps/admission/models.py:546 msgid "Applicant|additional_info" msgstr "" "Если хотите, напишите любую дополнительную информацию, которая могла бы " "помочь Вам поступить" -#: apps/admission/models.py:548 +#: apps/admission/models.py:551 msgid "Admin note" msgstr "Заметка о поступающем" -#: apps/admission/models.py:548 +#: apps/admission/models.py:551 msgid "Applicant|admin_note" msgstr "Например, вопросы по заявке" -#: apps/admission/models.py:551 +#: apps/admission/models.py:554 msgid "Data" msgstr "Специфичные для кампании набора поля" -#: apps/admission/models.py:558 +#: apps/admission/models.py:562 msgid "Applicants" msgstr "Анкеты" -#: apps/admission/models.py:714 +#: apps/admission/models.py:718 msgid "Contest|Campaign" msgstr "Кампания по набору" -#: apps/admission/models.py:718 +#: apps/admission/models.py:722 msgid "Type" msgstr "Тип" -#: apps/admission/models.py:720 apps/admission/models.py:760 +#: apps/admission/models.py:724 apps/admission/models.py:765 msgid "Contest #ID" msgstr "#ID Контеста" -#: apps/admission/models.py:721 apps/admission/models.py:761 +#: apps/admission/models.py:725 apps/admission/models.py:766 msgid "Applicant|yandex_contest_id" msgstr "ID Яндекс.Контеста" -#: apps/admission/models.py:727 apps/admission/models.py:993 -#: apps/admission/models.py:1041 +#: apps/admission/models.py:731 apps/admission/models.py:999 +#: apps/admission/models.py:1048 msgid "Details" msgstr "Детали" -#: apps/admission/models.py:732 +#: apps/admission/models.py:736 msgid "Assignments in pdf format" msgstr "Pdf-файл с заданиями" -#: apps/admission/models.py:740 +#: apps/admission/models.py:745 msgid "Contest" msgstr "Контест" -#: apps/admission/models.py:741 +#: apps/admission/models.py:746 msgid "Contests" msgstr "Контесты" -#: apps/admission/models.py:767 +#: apps/admission/models.py:772 msgid "Participant ID" msgstr "ID участника" -#: apps/admission/models.py:768 +#: apps/admission/models.py:773 msgid "participant_id in Yandex.Contest" msgstr "participant_id в Яндекс.Контесте" -#: apps/admission/models.py:780 +#: apps/admission/models.py:785 msgid "" "Choose `manual score input` to avoid synchronization with contest results" msgstr "\"Ручной ввод\" отключает синхронизацию балла с контестом." -#: apps/admission/models.py:990 apps/admission/models.py:1035 -#: apps/admission/models.py:1287 +#: apps/admission/models.py:996 apps/admission/models.py:1042 +#: apps/admission/models.py:1298 msgid "Score" msgstr "Оценка" -#: apps/admission/models.py:999 +#: apps/admission/models.py:1006 msgid "Testing Result" msgstr "Результат тестирования" -#: apps/admission/models.py:1000 +#: apps/admission/models.py:1007 msgid "Testing Results" msgstr "Результаты тестирования" -#: apps/admission/models.py:1045 +#: apps/admission/models.py:1053 msgid "Exams" msgstr "Результаты экзамена" -#: apps/admission/models.py:1073 +#: apps/admission/models.py:1081 msgid "InterviewAssignments|Campaign" msgstr "Кампания по набору" -#: apps/admission/models.py:1077 +#: apps/admission/models.py:1085 msgid "InterviewAssignments|name" msgstr "Название" -#: apps/admission/models.py:1079 +#: apps/admission/models.py:1087 msgid "Assignment description" msgstr "Описание" -#: apps/admission/models.py:1079 apps/admission/models.py:1082 +#: apps/admission/models.py:1087 apps/admission/models.py:1090 msgid "TeX support" msgstr "Поддерживается TeX" -#: apps/admission/models.py:1082 +#: apps/admission/models.py:1090 msgid "Assignment solution" msgstr "Решение" -#: apps/admission/models.py:1086 +#: apps/admission/models.py:1095 msgid "Interview assignment" msgstr "Задание для интервью" -#: apps/admission/models.py:1087 +#: apps/admission/models.py:1096 msgid "Interview assignments" msgstr "Задания для интервью" -#: apps/admission/models.py:1101 +#: apps/admission/models.py:1110 msgid "Format Name" msgstr "Название формата" -#: apps/admission/models.py:1105 +#: apps/admission/models.py:1114 msgid "Confirmation Template" msgstr "Шаблон подтверждения" -#: apps/admission/models.py:1108 +#: apps/admission/models.py:1117 msgid "" "Template for confirmation email that the interview was scheduled. Leave " "blank if there is no need to send confirmation email" @@ -900,11 +906,11 @@ msgstr "" "Оставьте пустым, если не требуется отправлять письмо с подтверждением того, " "что собеседование было успешно создано." -#: apps/admission/models.py:1118 +#: apps/admission/models.py:1127 msgid "Reminder Template" msgstr "Шаблон напоминания" -#: apps/admission/models.py:1121 +#: apps/admission/models.py:1130 msgid "" "Template for interview reminder email. Notification will be generated only " "on interview creation through slots mechanism." @@ -912,11 +918,11 @@ msgstr "" "Шаблон письма с напоминанием о предстоящем собеседовании. Напоминание будет " "сгенерировано только при создании интервью через механизм потоков/слотов." -#: apps/admission/models.py:1128 +#: apps/admission/models.py:1137 msgid "Remind Before Start" msgstr "Напомнить за" -#: apps/admission/models.py:1130 +#: apps/admission/models.py:1139 msgid "" "Helps to calculate schedule time of the reminder. Specify timedelta that " "will be subtracted from the interview start time." @@ -924,118 +930,118 @@ msgstr "" "Указанная дельта времени помогает вычислить время отправки напоминания и " "будет вычтена из времени начала собеседования." -#: apps/admission/models.py:1138 apps/admission/models.py:1318 -#: apps/admission/models.py:1324 +#: apps/admission/models.py:1148 apps/admission/models.py:1330 +#: apps/admission/models.py:1336 msgid "Interview Format" msgstr "Формат собеседования" -#: apps/admission/models.py:1139 +#: apps/admission/models.py:1149 msgid "Interview Formats" msgstr "Форматы собеседований" -#: apps/admission/models.py:1159 +#: apps/admission/models.py:1169 msgid "Approval" msgstr "Согласование" -#: apps/admission/models.py:1160 +#: apps/admission/models.py:1170 msgid "Deferred" msgstr "Отложено" -#: apps/admission/models.py:1161 +#: apps/admission/models.py:1171 msgid "Canceled" msgstr "Отменено" -#: apps/admission/models.py:1162 +#: apps/admission/models.py:1172 msgid "Approved" msgstr "Согласовано" -#: apps/admission/models.py:1163 +#: apps/admission/models.py:1173 msgid "Completed" msgstr "Завершено" -#: apps/admission/models.py:1175 apps/admission/models.py:1314 +#: apps/admission/models.py:1185 apps/admission/models.py:1326 msgid "Interview|Section" msgstr "Секция" -#: apps/admission/models.py:1178 +#: apps/admission/models.py:1188 msgid "When" msgstr "Дата интервью" -#: apps/admission/models.py:1182 +#: apps/admission/models.py:1192 msgid "Interview|Status" msgstr "Статус собеседования" -#: apps/admission/models.py:1187 +#: apps/admission/models.py:1197 msgid "Venue" msgstr "Место проведения собеседования" -#: apps/admission/models.py:1195 apps/admission/models.py:1350 +#: apps/admission/models.py:1205 apps/admission/models.py:1362 msgid "Interview|Interviewers" msgstr "Собеседующие" -#: apps/admission/models.py:1199 +#: apps/admission/models.py:1209 msgid "Interview|Assignments" msgstr "Задания для интервью" -#: apps/admission/models.py:1202 apps/admission/models.py:1535 +#: apps/admission/models.py:1212 apps/admission/models.py:1549 msgid "Secret code" msgstr "Секретный код" -#: apps/admission/models.py:1204 +#: apps/admission/models.py:1214 msgid "Note" msgstr "Доп. информация" -#: apps/admission/models.py:1208 +#: apps/admission/models.py:1219 msgid "Interviews" msgstr "Собеседования" -#: apps/admission/models.py:1286 +#: apps/admission/models.py:1297 msgid "Text" msgstr "Комментарий" -#: apps/admission/models.py:1290 +#: apps/admission/models.py:1302 msgid "Comment" msgstr "Комментарий" -#: apps/admission/models.py:1291 +#: apps/admission/models.py:1303 msgid "Comments" msgstr "Комментарии к собеседованию" -#: apps/admission/models.py:1329 +#: apps/admission/models.py:1341 msgid "Interview day" msgstr "День проведения" -#: apps/admission/models.py:1330 +#: apps/admission/models.py:1342 msgid "Period start" msgstr "Начало потока" -#: apps/admission/models.py:1331 +#: apps/admission/models.py:1343 msgid "Period end" msgstr "Конец потока" -#: apps/admission/models.py:1333 +#: apps/admission/models.py:1345 msgid "Slot duration" msgstr "Длительность слота (мин)" -#: apps/admission/models.py:1338 +#: apps/admission/models.py:1350 msgid "Interview venue" msgstr "Место" -#: apps/admission/models.py:1343 +#: apps/admission/models.py:1355 msgid "Has assignments" msgstr "С заданиями" -#: apps/admission/models.py:1345 +#: apps/admission/models.py:1357 msgid "Based on this flag, student should arrive 30 min before or not" msgstr "" "Если отмечено, то в уведомлении будет указано время собеседования на полчаса " "раньше." -#: apps/admission/models.py:1359 apps/admission/models.py:1478 +#: apps/admission/models.py:1372 apps/admission/models.py:1491 msgid "Interview stream" msgstr "Поток собеседований" -#: apps/admission/models.py:1399 +#: apps/admission/models.py:1412 msgid "" "Interview format settings are not found. Create settings here." @@ -1043,93 +1049,93 @@ msgstr "" "Настройки формата собеседования для указанной кампании не найдены. Создать " "настройки можно здесь." -#: apps/admission/models.py:1417 +#: apps/admission/models.py:1430 msgid "Stream duration can't be less than slot duration" msgstr "" "Длительность потока должна быть больше, чем длительность хотя бы одного " "слота." -#: apps/admission/models.py:1474 +#: apps/admission/models.py:1487 msgid "Interview start" msgstr "Начало" -#: apps/admission/models.py:1475 +#: apps/admission/models.py:1488 msgid "Interview end" msgstr "Окончание" -#: apps/admission/models.py:1485 +#: apps/admission/models.py:1499 msgid "Interview slot" msgstr "Слот для собеседования" -#: apps/admission/models.py:1486 +#: apps/admission/models.py:1500 msgid "Interview slots" msgstr "Слоты для собеседований" -#: apps/admission/models.py:1537 +#: apps/admission/models.py:1551 msgid "Expired at" msgstr "Истекает" -#: apps/admission/models.py:1550 +#: apps/admission/models.py:1565 msgid "Interview invitation" msgstr "Приглашение на собеседование" -#: apps/admission/models.py:1551 +#: apps/admission/models.py:1566 msgid "Interview invitations" msgstr "Приглашения на собеседования" -#: apps/admission/models.py:1609 +#: apps/admission/models.py:1624 msgid "Waiting for Confirmation" msgstr "Ожидаем подтверждения" -#: apps/admission/models.py:1610 +#: apps/admission/models.py:1625 msgid "Confirmed" msgstr "Подтверждено" -#: apps/admission/models.py:1624 +#: apps/admission/models.py:1639 msgid "Authorization Code" msgstr "Код авторизации" -#: apps/admission/models.py:1628 +#: apps/admission/models.py:1644 msgid "Acceptance for Studies" msgstr "Запись о поступлении" -#: apps/admission/models.py:1629 +#: apps/admission/models.py:1645 msgid "Acceptances for Studies" msgstr "Записи о поступлении" -#: apps/admission/models.py:1670 +#: apps/admission/models.py:1686 msgid "External ID" msgstr "Внешний ID" -#: apps/admission/models.py:1672 +#: apps/admission/models.py:1688 msgid "Name" msgstr "Название" -#: apps/admission/models.py:1673 +#: apps/admission/models.py:1689 msgid "Display Name" msgstr "" -#: apps/admission/models.py:1676 +#: apps/admission/models.py:1692 msgid "Country" msgstr "Страна" -#: apps/admission/models.py:1683 +#: apps/admission/models.py:1700 msgid "Residence City" msgstr "Город проживания" -#: apps/admission/models.py:1684 +#: apps/admission/models.py:1701 msgid "Residence Cities" msgstr "Города проживания" -#: apps/admission/models.py:1700 +#: apps/admission/models.py:1717 msgid "City" msgstr "Город" -#: apps/admission/models.py:1708 +#: apps/admission/models.py:1726 msgid "Campaign Available in City" msgstr "Отделение в городе" -#: apps/admission/models.py:1709 +#: apps/admission/models.py:1727 msgid "Campaigns Available in City" msgstr "Отделения, доступные в городе" @@ -1145,11 +1151,11 @@ msgstr "Слот для собеседования не найден" msgid "Interview slot is not associated with the invitation" msgstr "Слот для собеседования не связан с указанным приглашением" -#: apps/admission/views.py:764 +#: apps/admission/views.py:763 msgid "Current campaign" msgstr "Активный набор" -#: apps/admission/views.py:774 +#: apps/admission/views.py:773 msgid "All campaigns" msgstr "Все наборы" diff --git a/apps/core/migrations/0019_alter_siteconfiguration_managers.py b/apps/core/migrations/0019_alter_siteconfiguration_managers.py new file mode 100644 index 0000000000..1eb9643e16 --- /dev/null +++ b/apps/core/migrations/0019_alter_siteconfiguration_managers.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.18 on 2024-02-27 15:02 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0018_remove_siteconfiguration_lms_subdomain'), + ] + + operations = [ + migrations.AlterModelManagers( + name='siteconfiguration', + managers=[ + ], + ), + ] diff --git a/apps/courses/migrations/0043_auto_20240227_1502.py b/apps/courses/migrations/0043_auto_20240227_1502.py new file mode 100644 index 0000000000..8f19ce9ef3 --- /dev/null +++ b/apps/courses/migrations/0043_auto_20240227_1502.py @@ -0,0 +1,28 @@ +# Generated by Django 3.2.18 on 2024-02-27 15:02 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('courses', '0042_new_assigneemode'), + ] + + operations = [ + migrations.AlterField( + model_name='assignment', + name='submission_type', + field=models.CharField(choices=[('online', 'Online Submission'), ('ya.contest', 'Yandex.Contest'), ('external', 'External Service'), ('code_review', 'Code Review Submission'), ('penalty', 'Penalty'), ('other', 'No Submission')], max_length=42, verbose_name='Assignment Format'), + ), + migrations.AlterField( + model_name='course', + name='group_mode', + field=models.CharField(choices=[('no_groups', 'No Groups'), ('manual', 'Manual'), ('branch', 'Branches'), ('invite_and_branch', 'Invitations and Branches')], default='branch', help_text='Choose `Branch` to auto generate student groups from course branches.', max_length=100, verbose_name='Student Group Mode'), + ), + migrations.AlterField( + model_name='course', + name='materials_visibility', + field=models.CharField(choices=[('public', 'All Users'), ('participants', 'All Students'), ('private', 'Course Participants')], default='private', help_text='Default visibility for class materials.', max_length=12, verbose_name='Materials Visibility'), + ), + ] diff --git a/apps/htmlpages/locale/en/LC_MESSAGES/django.po b/apps/htmlpages/locale/en/LC_MESSAGES/django.po index bab242cb9e..439952b46c 100644 --- a/apps/htmlpages/locale/en/LC_MESSAGES/django.po +++ b/apps/htmlpages/locale/en/LC_MESSAGES/django.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-03-18 09:16+0100\n" +"POT-Creation-Date: 2024-02-27 18:28+0300\n" "PO-Revision-Date: 2010-05-13 15:35+0200\n" "Last-Translator: Django team\n" "Language-Team: English \n" @@ -13,76 +13,72 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: contrib/flatpages/admin.py:11 +#: apps/htmlpages/admin.py:24 msgid "Advanced options" msgstr "" -#: contrib/flatpages/apps.py:7 +#: apps/htmlpages/apps.py:7 msgid "Flat Pages" msgstr "" -#: contrib/flatpages/forms.py:8 contrib/flatpages/models.py:12 +#: apps/htmlpages/forms.py:10 apps/htmlpages/models.py:11 msgid "URL" msgstr "" -#: contrib/flatpages/forms.py:9 +#: apps/htmlpages/forms.py:11 msgid "" "Example: '/about/contact/'. Make sure to have leading and trailing slashes." msgstr "" -#: contrib/flatpages/forms.py:12 +#: apps/htmlpages/forms.py:14 msgid "" "This value must contain only letters, numbers, dots, underscores, dashes, " "slashes or tildes." msgstr "" -#: contrib/flatpages/forms.py:25 +#: apps/htmlpages/forms.py:27 msgid "URL is missing a leading slash." msgstr "" -#: contrib/flatpages/forms.py:32 +#: apps/htmlpages/forms.py:34 msgid "URL is missing a trailing slash." msgstr "" -#: contrib/flatpages/forms.py:49 +#: apps/htmlpages/forms.py:51 #, python-format -msgid "Flatpage with url %(url)s already exists for site %(site)s" +msgid "Htmlpage with url %(url)s already exists for site %(site)s" msgstr "" -#: contrib/flatpages/models.py:13 +#: apps/htmlpages/models.py:12 msgid "title" msgstr "" -#: contrib/flatpages/models.py:14 +#: apps/htmlpages/models.py:13 msgid "content" msgstr "" -#: contrib/flatpages/models.py:15 -msgid "enable comments" -msgstr "" - -#: contrib/flatpages/models.py:16 +#: apps/htmlpages/models.py:14 msgid "template name" msgstr "" -#: contrib/flatpages/models.py:18 +#: apps/htmlpages/models.py:16 msgid "" -"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " -"will use 'flatpages/default.html'." +"Example: 'htmlpages/contact_page.html'. If this isn't provided, the system " +"will use 'htmlpages/default.html'." msgstr "" -#: contrib/flatpages/models.py:22 +#: apps/htmlpages/models.py:20 msgid "registration required" msgstr "" -#: contrib/flatpages/models.py:23 +#: apps/htmlpages/models.py:21 msgid "If this is checked, only logged-in users will be able to view the page." msgstr "" -#: contrib/flatpages/models.py:29 +#: apps/htmlpages/models.py:27 msgid "flat page" msgstr "" -#: contrib/flatpages/models.py:30 +#: apps/htmlpages/models.py:28 msgid "flat pages" msgstr "" diff --git a/apps/htmlpages/locale/ru/LC_MESSAGES/django.po b/apps/htmlpages/locale/ru/LC_MESSAGES/django.po index d373b880a4..98abd574b4 100644 --- a/apps/htmlpages/locale/ru/LC_MESSAGES/django.po +++ b/apps/htmlpages/locale/ru/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-30 01:19+0000\n" +"POT-Creation-Date: 2024-02-27 18:28+0300\n" "PO-Revision-Date: 2015-03-18 08:34+0000\n" "Last-Translator: Jannis Leidel \n" "Language-Team: Russian (http://www.transifex.com/projects/p/django/language/" @@ -18,8 +18,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: apps/htmlpages/admin.py:24 msgid "Advanced options" diff --git a/apps/learning/migrations/0044_auto_20240227_1502.py b/apps/learning/migrations/0044_auto_20240227_1502.py new file mode 100644 index 0000000000..bbe38ec695 --- /dev/null +++ b/apps/learning/migrations/0044_auto_20240227_1502.py @@ -0,0 +1,25 @@ +# Generated by Django 3.2.18 on 2024-02-27 15:02 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('learning', '0043_studentgroupteacherbucket'), + ] + + operations = [ + migrations.RemoveField( + model_name='studentassignment', + name='first_student_comment_at', + ), + migrations.RemoveField( + model_name='studentassignment', + name='last_comment_from', + ), + migrations.RemoveField( + model_name='studentgroup', + name='meta', + ), + ] diff --git a/apps/notifications/management/commands/notify.py b/apps/notifications/management/commands/notify.py index d9ebdb2637..bfc7b8f185 100644 --- a/apps/notifications/management/commands/notify.py +++ b/apps/notifications/management/commands/notify.py @@ -234,8 +234,7 @@ def send_assignment_notifications(site_configurations: Dict[int, SiteConfigurati 'student_assignment__student', ] notifications = (AssignmentNotification.objects - .filter(is_unread=True, - is_notified=False) + .filter(is_unread=True, is_notified=False, user__is_notification_allowed=True) .select_related("user", "user__branch") .prefetch_related(*prefetch)) for notification in notifications: @@ -256,7 +255,7 @@ def send_course_news_notifications(site_configurations: Dict[int, SiteConfigurat 'course_offering_news__course__semester', ] notifications = (CourseNewsNotification.objects - .filter(is_unread=True, is_notified=False) + .filter(is_unread=True, is_notified=False, user__is_notification_allowed=True) .select_related("user", "course_offering_news") .prefetch_related(*prefetch)) for notification in notifications: diff --git a/apps/notifications/service.py b/apps/notifications/service.py index 7b23fdd413..89597472ab 100644 --- a/apps/notifications/service.py +++ b/apps/notifications/service.py @@ -84,6 +84,11 @@ def notify(self, notification): "as deleted".format(notification.recipient)) Notification.objects.filter(pk=notification.pk).update(deleted=True) return + if not notification.recipient.is_notification_allowed: + self.logger.warning("user {0} disabled notifications. Mark " + "as deleted".format(notification.recipient)) + Notification.objects.filter(pk=notification.pk).update(deleted=True) + return html_content = linebreaks(self._cached_template.render(context)) # FIXME: Don't strip links diff --git a/apps/notifications/tests/test_management.py b/apps/notifications/tests/test_management.py index 7f2f0b5a70..9d1032b19f 100644 --- a/apps/notifications/tests/test_management.py +++ b/apps/notifications/tests/test_management.py @@ -16,7 +16,7 @@ EnrollmentFactory ) from notifications.management.commands.notify import resolve_course_participant_branch -from users.tests.factories import CuratorFactory, StudentFactory, TeacherFactory +from users.tests.factories import CuratorFactory, UserFactory, TeacherFactory @pytest.mark.django_db @@ -31,9 +31,7 @@ def test_command_notify(settings, mocker): out = OutputIO() mail.outbox = [] - student = StudentFactory() - an = AssignmentNotificationFactory(is_about_passed=True, - user=student) + an = AssignmentNotificationFactory(is_about_passed=True) management.call_command("notify", stdout=out) if settings.ENABLE_NON_AUTH_NOTIFICATIONS: assert len(mail.outbox) == 1 @@ -52,9 +50,7 @@ def test_command_notify(settings, mocker): out = OutputIO() mail.outbox = [] - student = StudentFactory() - conn = CourseNewsNotificationFactory.create(user=student) - course = conn.course_offering_news.course + conn = CourseNewsNotificationFactory.create() management.call_command("notify", stdout=out) if settings.ENABLE_NON_AUTH_NOTIFICATIONS: assert len(mail.outbox) == 1 @@ -67,6 +63,14 @@ def test_command_notify(settings, mocker): assert not conn.is_notified assert "sending notification for" not in out.getvalue() + out = OutputIO() + mail.outbox = [] + user = UserFactory(is_notification_allowed=False) + an = AssignmentNotificationFactory(is_about_passed=True, user=user) + management.call_command("notify", stdout=out) + assert not mail.outbox + assert not AssignmentNotification.objects.get(pk=an.pk).is_notified + assert "sending notification for" not in out.getvalue() @pytest.mark.django_db def test_command_notification_cleanup(client, settings): diff --git a/apps/projects/locale/ru/LC_MESSAGES/django.po b/apps/projects/locale/ru/LC_MESSAGES/django.po index fc71d6ee79..8c151b9072 100644 --- a/apps/projects/locale/ru/LC_MESSAGES/django.po +++ b/apps/projects/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-30 01:19+0000\n" +"POT-Creation-Date: 2024-02-27 18:28+0300\n" "PO-Revision-Date: 2022-02-21 15:24+0000\n" "Last-Translator: Сергей Жеревчук \n" "Language-Team: LANGUAGE \n" @@ -16,9 +16,9 @@ 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%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-Translated-Using: django-rosetta 0.9.8\n" #: apps/projects/admin.py:107 apps/projects/filters.py:36 diff --git a/apps/surveys/locale/ru/LC_MESSAGES/django.po b/apps/surveys/locale/ru/LC_MESSAGES/django.po index 570123aee8..48a2bc7c79 100644 --- a/apps/surveys/locale/ru/LC_MESSAGES/django.po +++ b/apps/surveys/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-30 01:19+0000\n" +"POT-Creation-Date: 2024-02-27 18:28+0300\n" "PO-Revision-Date: 2019-10-31 16:30+0000\n" "Last-Translator: b' '\n" "Language-Team: LANGUAGE \n" @@ -16,9 +16,9 @@ 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%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-Translated-Using: django-rosetta 0.9.3\n" #: apps/surveys/admin.py:66 apps/surveys/models.py:255 diff --git a/apps/users/forms.py b/apps/users/forms.py index af9d63895b..006be97304 100644 --- a/apps/users/forms.py +++ b/apps/users/forms.py @@ -66,7 +66,7 @@ class Meta: model = User fields = ('birth_date', 'phone', 'workplace', 'bio', 'time_zone', 'telegram_username', 'yandex_login', 'github_login', 'stepic_id', 'codeforces_login', - 'private_contacts') + 'private_contacts', 'is_notification_allowed') widgets = { 'bio': UbereditorWidget, 'private_contacts': UbereditorWidget, @@ -84,7 +84,8 @@ class Meta: 'github_login': "github.com/GITHUB-ID", 'stepic_id': _("stepik.org/users/USER_ID"), 'codeforces_login': _("codeforces.com/profile/HANDLE"), - 'workplace': _("Specify one or more jobs (comma-separated)") + 'workplace': _("Specify one or more jobs (comma-separated)"), + 'is_notification_allowed': _("Не касается уведомлений аутентификации") } diff --git a/apps/users/migrations/0040_user_is_notification_allowed.py b/apps/users/migrations/0040_user_is_notification_allowed.py new file mode 100644 index 0000000000..dc6254602c --- /dev/null +++ b/apps/users/migrations/0040_user_is_notification_allowed.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.18 on 2024-02-27 15:02 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0039_yandexuserdata'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='is_notification_allowed', + field=models.BooleanField(default=True, help_text='Designates that this user enabled email notifications ', verbose_name='notification permission status'), + ), + ] diff --git a/apps/users/models.py b/apps/users/models.py index de376bd9fe..10a61acc08 100644 --- a/apps/users/models.py +++ b/apps/users/models.py @@ -328,6 +328,14 @@ class User(TimezoneAwareMixin, LearningPermissionsMixin, StudentProfileAbstract, 'explicitly assigning them.' ), ) + + is_notification_allowed = models.BooleanField( + _('notification permission status'), + default=True, + help_text=_( + 'Designates that this user enabled email notifications ' + ), + ) gender = models.CharField(_("Gender"), max_length=1, choices=GenderTypes.choices) phone = models.CharField( diff --git a/apps/users/tests/factories.py b/apps/users/tests/factories.py index 61d5c9e6b1..79a30cb7df 100644 --- a/apps/users/tests/factories.py +++ b/apps/users/tests/factories.py @@ -36,6 +36,7 @@ class Meta: last_name = factory.Sequence(lambda n: "Petrov%03d" % n) branch = None time_zone = factory.LazyAttribute(lambda user: user.branch.time_zone if user.branch is not None else settings.DEFAULT_TIMEZONE) + is_notification_allowed = True @factory.post_generation def groups(self, create, extracted, **kwargs): diff --git a/compscicenter_ru/locale/ru/LC_MESSAGES/django.po b/compscicenter_ru/locale/ru/LC_MESSAGES/django.po index 9cb46f5eee..bce2247675 100644 --- a/compscicenter_ru/locale/ru/LC_MESSAGES/django.po +++ b/compscicenter_ru/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-30 01:19+0000\n" +"POT-Creation-Date: 2024-02-27 18:28+0300\n" "PO-Revision-Date: 2020-02-03 16:52+0000\n" "Last-Translator: b' '\n" "Language-Team: LANGUAGE \n" @@ -16,8 +16,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "%100>=20) ? 1 : 2);\n" "X-Translated-Using: django-rosetta 0.9.3\n" @@ -236,7 +236,6 @@ msgstr "Минимальная высота - 180px" #: compscicenter_ru/apps/publications/models.py:91 #: compscicenter_ru/apps/publications/models.py:146 #: compscicenter_ru/apps/publications/models.py:190 -#: compscicenter_ru/jinja2/compscicenter_ru/courses/course_detail.html:36 msgid "Description" msgstr "Описание" @@ -312,20 +311,6 @@ msgstr "Практики" msgid "Research Works" msgstr "Научно-исследовательские работы" -#: compscicenter_ru/jinja2/compscicenter_ru/courses/class_detail.html:85 -#: compscicenter_ru/jinja2/compscicenter_ru/courses/course_detail.html:100 -#: compscicenter_ru/jinja2/compscicenter_ru/courses/meta_course_detail.html:85 -msgid "Edit in Admin" -msgstr "Редактировать в админ. разделе сайта" - -#: compscicenter_ru/jinja2/compscicenter_ru/courses/course_detail.html:44 -msgid "Teachers" -msgstr "Преподаватели" - -#: compscicenter_ru/jinja2/compscicenter_ru/courses/course_detail.html:61 -msgid "Lectures List" -msgstr "Список лекций" - #: compscicenter_ru/jinja2/compscicenter_ru/layouts/base.html:78 msgid "Privacy Policy" msgstr "Конфиденциальность" @@ -586,6 +571,15 @@ msgstr "Проверяет задания" msgid "Leads seminars" msgstr "Ведёт семинары" +#~ msgid "Edit in Admin" +#~ msgstr "Редактировать в админ. разделе сайта" + +#~ msgid "Teachers" +#~ msgstr "Преподаватели" + +#~ msgid "Lectures List" +#~ msgstr "Список лекций" + #~ msgid "Members Area" #~ msgstr "Личный кабинет" diff --git a/compsciclub_ru/locale/ru/LC_MESSAGES/django.po b/compsciclub_ru/locale/ru/LC_MESSAGES/django.po index fb9c0c207e..d4a0cc7027 100644 --- a/compsciclub_ru/locale/ru/LC_MESSAGES/django.po +++ b/compsciclub_ru/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-30 01:19+0000\n" +"POT-Creation-Date: 2024-02-27 18:28+0300\n" "PO-Revision-Date: 2020-09-09 04:43+0000\n" "Last-Translator: b' '\n" "Language-Team: LANGUAGE \n" @@ -16,8 +16,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Translated-Using: django-rosetta 0.9.4\n" #: compsciclub_ru/apps/international_schools/apps.py:7 @@ -67,228 +67,35 @@ msgstr "" msgid "Submit" msgstr "Отправить" -#: compsciclub_ru/jinja2/compsciclub_ru/course_class_detail.html:21 -msgid "What" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_class_detail.html:25 -msgid "When" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_class_detail.html:29 -msgid "Where" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_class_detail.html:34 -msgid "Slides" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_class_detail.html:41 -msgid "Description" -msgstr "Описание" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_class_detail.html:49 -msgid "Video" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_class_detail.html:53 -msgid "Attached files" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_class_detail.html:66 -msgid "Other materials" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_detail.html:24 -msgid "" -"Enroll in the course to get notifications and to be able to submit home " -"assignments." -msgstr "" -"Запишитесь на курс, чтобы получать уведомления и иметь возможность сдавать " -"домашние задания. Для записи требуется регистрация на сайте." - -#: compsciclub_ru/jinja2/compsciclub_ru/course_detail.html:25 -msgid "Register to enroll now" -msgstr "Перейти к регистрации" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_detail.html:25 -#: compsciclub_ru/jinja2/lms/layouts/_top_menu.html:31 -#: compsciclub_ru/templates/_top_menu.html:36 -msgid "Login" -msgstr "Войти" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_detail.html:66 -msgid "Date and time" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_detail.html:67 -msgid "Class|Name" -msgstr "Занятие" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_detail.html:68 -msgid "Venue|short" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_detail.html:69 -msgid "Materials" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_detail.html:76 -msgid "Lecture" -msgstr "Лекция" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_detail.html:76 -msgid "Seminar" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_detail.html:87 -msgid "No" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_offerings.html:8 -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:22 -msgid "Courses" -msgstr "Курсы" - -#: compsciclub_ru/jinja2/compsciclub_ru/course_offerings.html:38 -msgid "No courses yet" -msgstr "Курсов пока нет" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:5 -msgid "Author photo" -msgstr "Автор фото" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:5 -msgid "Andrey Salnikov" -msgstr "Андрей Сальников" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:10 -msgid "" -"\n" -" The main goal of the Club is to provide undergraduate and graduate " -"students, as well as professionals, access to high quality education in the " -"area of Computer Science. Attendance is open to everyone and is free of " -"charge.\n" -" " -msgstr "" -"\n" -"

Computer Science клуб — это открытые лекции и курсы. В клубе любой " -"желающий может познакомиться с классическими результатами, современным " -"положением дел и открытыми задачами в различных областях Computer Science. " -"Вход на лекции свободный, регистрация не требуется, посещать курсы можно " -"начать в любое время.

" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:16 -msgid "" -"\n" -" The main goal of the Club is to provide undergraduate and graduate " -"students, as well as professionals, access to high quality education in the " -"area of Computer Science. Attendance is open to everyone and is free of " -"charge.\n" -" " -msgstr "" -"\n" -"

Computer Science клуб — это открытые лекции и курсы. В клубе любой " -"желающий может познакомиться с классическими результатами, современным " -"положением дел и открытыми задачами в различных областях Computer Science. " -"Вход на лекции свободный, регистрация не требуется, посещать курсы можно " -"начать в любое время.

" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:26 -msgid "Course name" -msgstr "Название курса" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:27 -#: compsciclub_ru/jinja2/compsciclub_ru/teacher_list.html:7 -msgid "Teachers" -msgstr "Преподаватели" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:28 -msgid "Next lecture" -msgstr "Следующая лекция" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:29 -#: compsciclub_ru/jinja2/lms/layouts/v1_base.html:61 -#: compsciclub_ru/templates/base.html:65 -msgid "Language" -msgstr "Язык" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:44 -msgid "The course is completed" -msgstr "Курс завершён" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:46 -msgid "To be announced" -msgstr "Дата будет объявлена позже" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:50 -msgid "Russian" -msgstr "Русский" - -#: compsciclub_ru/jinja2/compsciclub_ru/index.html:50 -msgid "English" -msgstr "Английский" - -#: compsciclub_ru/jinja2/compsciclub_ru/meta_course_detail.html:11 -msgid "Edit" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/meta_course_detail.html:22 -#: compsciclub_ru/jinja2/compsciclub_ru/teacher_detail.html:29 -msgid "Course Offerings" -msgstr "Прочтения курсов" - -#: compsciclub_ru/jinja2/compsciclub_ru/meta_course_detail.html:26 -#: compsciclub_ru/jinja2/compsciclub_ru/teacher_detail.html:34 -msgid "Semester" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/meta_course_detail.html:27 -msgid "Branch" -msgstr "" - -#: compsciclub_ru/jinja2/compsciclub_ru/teacher_detail.html:21 -msgid "Contact information" +#: compsciclub_ru/jinja2/lms/layouts/v1_base.html:82 +#: compsciclub_ru/templates/base.html:86 +msgid "гг." msgstr "" -#: compsciclub_ru/jinja2/compsciclub_ru/teacher_detail.html:33 -msgid "Course" -msgstr "Курс" - -#: compsciclub_ru/jinja2/compsciclub_ru/teacher_detail.html:47 -msgid "Photos" -msgstr "Фотографии" - -#: compsciclub_ru/jinja2/compsciclub_ru/teacher_detail.html:65 -#: compsciclub_ru/jinja2/lms/layouts/_top_menu.html:26 #: compsciclub_ru/templates/_top_menu.html:31 msgid "Profile" msgstr "Профиль" -#: compsciclub_ru/jinja2/lms/layouts/_top_menu.html:28 -msgid "Logout" -msgstr "" +#: compsciclub_ru/templates/_top_menu.html:36 +msgid "Login" +msgstr "Войти" -#: compsciclub_ru/jinja2/lms/layouts/_top_menu.html:34 #: compsciclub_ru/templates/_top_menu.html:39 #: compsciclub_ru/templates/registration/registration_form.html:10 msgid "Registration" msgstr "Регистрация" -#: compsciclub_ru/jinja2/lms/layouts/v1_base.html:52 #: compsciclub_ru/templates/base.html:55 msgid "Admin" msgstr "Админка" -#: compsciclub_ru/jinja2/lms/layouts/v1_base.html:58 #: compsciclub_ru/templates/base.html:62 msgid "City" msgstr "Город" -#: compsciclub_ru/jinja2/lms/layouts/v1_base.html:82 -#: compsciclub_ru/templates/base.html:86 -msgid "гг." -msgstr "" +#: compsciclub_ru/templates/base.html:65 +msgid "Language" +msgstr "Язык" #: compsciclub_ru/templates/base.html:117 msgid "close all" @@ -411,6 +218,97 @@ msgstr "Регистрация аккаунта на" msgid "Can be passed online" msgstr "Можно сдать через сайт CS клуба" +#~ msgid "Description" +#~ msgstr "Описание" + +#~ msgid "" +#~ "Enroll in the course to get notifications and to be able to submit home " +#~ "assignments." +#~ msgstr "" +#~ "Запишитесь на курс, чтобы получать уведомления и иметь возможность " +#~ "сдавать домашние задания. Для записи требуется регистрация на сайте." + +#~ msgid "Register to enroll now" +#~ msgstr "Перейти к регистрации" + +#~ msgid "Class|Name" +#~ msgstr "Занятие" + +#~ msgid "Lecture" +#~ msgstr "Лекция" + +#~ msgid "Courses" +#~ msgstr "Курсы" + +#~ msgid "No courses yet" +#~ msgstr "Курсов пока нет" + +#~ msgid "Author photo" +#~ msgstr "Автор фото" + +#~ msgid "Andrey Salnikov" +#~ msgstr "Андрей Сальников" + +#~ msgid "" +#~ "\n" +#~ " The main goal of the Club is to provide undergraduate and graduate " +#~ "students, as well as professionals, access to high quality education in " +#~ "the area of Computer Science. Attendance is open to everyone and is free " +#~ "of charge.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "

Computer Science клуб — это открытые лекции и курсы. В клубе любой " +#~ "желающий может познакомиться с классическими результатами, современным " +#~ "положением дел и открытыми задачами в различных областях Computer " +#~ "Science. Вход на лекции свободный, регистрация не требуется, посещать " +#~ "курсы можно начать в любое время.

" + +#~ msgid "" +#~ "\n" +#~ " The main goal of the Club is to provide undergraduate and graduate " +#~ "students, as well as professionals, access to high quality education in " +#~ "the area of Computer Science. Attendance is open to everyone and is free " +#~ "of charge.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "

Computer Science клуб — это открытые лекции и курсы. В клубе любой " +#~ "желающий может познакомиться с классическими результатами, современным " +#~ "положением дел и открытыми задачами в различных областях Computer " +#~ "Science. Вход на лекции свободный, регистрация не требуется, посещать " +#~ "курсы можно начать в любое время.

" + +#~ msgid "Course name" +#~ msgstr "Название курса" + +#~ msgid "Teachers" +#~ msgstr "Преподаватели" + +#~ msgid "Next lecture" +#~ msgstr "Следующая лекция" + +#~ msgid "The course is completed" +#~ msgstr "Курс завершён" + +#~ msgid "To be announced" +#~ msgstr "Дата будет объявлена позже" + +#~ msgid "Russian" +#~ msgstr "Русский" + +#~ msgid "English" +#~ msgstr "Английский" + +#~ msgid "Course Offerings" +#~ msgstr "Прочтения курсов" + +#~ msgid "Course" +#~ msgstr "Курс" + +#~ msgid "Photos" +#~ msgstr "Фотографии" + #~ msgid "teacher" #~ msgstr "преподаватель" diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 0a174f4f34..9096a063b8 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -1,30 +1,3351 @@ # msgid "" msgstr "" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-27 18:28+0300\n" "PO-Revision-Date: 2019-05-14 13:29+0000\n" "Last-Translator: b' '\n" "X-Translated-Using: django-rosetta 0.9.3\n" -#: apps/courses/tabs.py:303 -msgid "CourseTab|About" -msgstr "About" +#: apps/api/admin.py:24 +#, python-format +msgid "" +"New secret token %s has been created. Save it somewhere since you see it " +"here for the last time." +msgstr "" -#: apps/courses/tabs.py:315 -msgid "CourseTab|Classes" -msgstr "Classes" +#: apps/api/apps.py:7 apps/learning/settings.py:145 +msgid "REST API" +msgstr "" -#: apps/courses/tabs.py:328 apps/learning/tabs.py:66 -msgid "CourseTab|Assignments" +#: apps/api/authentication.py:42 +msgid "Invalid token header. No credentials provided." +msgstr "" + +#: apps/api/authentication.py:45 +msgid "Invalid token header. Token string should not contain spaces." +msgstr "" + +#: apps/api/authentication.py:51 +msgid "" +"Invalid token header. Token string should not contain invalid characters." +msgstr "" + +#: apps/api/authentication.py:78 +msgid "User inactive or deleted." +msgstr "" + +#: apps/api/errors.py:17 +msgid "Token is invalid or expired" +msgstr "" + +#: apps/api/models.py:17 +msgid "Access Key" +msgstr "" + +#: apps/api/models.py:20 +#, python-format +msgid "First %s symbols of the secret key" +msgstr "" + +#: apps/api/models.py:23 apps/learning/gallery/models.py:43 +#: apps/learning/models.py:985 apps/learning/models.py:1029 +#: apps/users/models.py:166 apps/users/models.py:256 +msgid "User" +msgstr "" + +#: apps/api/models.py:27 +msgid "Expire at" +msgstr "" + +#: apps/api/models.py:32 apps/learning/models.py:474 +#: apps/learning/models.py:512 +msgid "Token" +msgstr "" + +#: apps/api/models.py:33 +msgid "Tokens" +msgstr "" + +#: apps/api/serializers.py:35 +msgid "No active account found" +msgstr "" + +#: apps/auth/apps.py:12 +msgid "Authentication and Authorization" +msgstr "" + +#: apps/auth/forms.py:44 +msgid "Username" +msgstr "" + +#: apps/auth/forms.py:48 +msgid "Password" +msgstr "" + +#: apps/auth/forms.py:55 +#, python-brace-format +msgid "You can also restore your password" +msgstr "" + +#: apps/auth/forms.py:64 lms/templates/_top_menu.html:50 +msgid "Login" +msgstr "" + +#: apps/auth/forms.py:79 +msgid "" +"You haven't enough access rights to login on this site. Contact curators if " +"you think this is wrong." +msgstr "" + +#: apps/code_reviews/apps.py:8 +#, fuzzy +#| msgid "CourseTab|Reviews" +msgid "Code Review" +msgstr "Reviews" + +#: apps/code_reviews/gerrit/constants.py:17 +#, python-brace-format +msgid "" +"Solution was submitted for code review. Use this link to track progress: " +"{link}." +msgstr "" + +#: apps/code_reviews/gerrit/tasks.py:157 +msgid "Update in Gerrit" +msgstr "" + +#: apps/code_reviews/models.py:11 apps/learning/models.py:789 +#, fuzzy +#| msgid "CourseTab|Assignments" +msgid "Student Assignment" msgstr "Assignments" -#: apps/learning/tabs.py:19 -msgid "CourseTab|Contacts" -msgstr "Contacts" +#: apps/code_reviews/models.py:16 +#, python-brace-format +msgid "" +"Full ID of the change in Gerrit: `{project_name}~{branch_name}~{change_id}`" +msgstr "" -#: apps/learning/tabs.py:34 -msgid "CourseTab|News" +#: apps/code_reviews/models.py:27 +msgid "Gerrit Change" +msgstr "" + +#: apps/code_reviews/models.py:28 +msgid "Gerrit Changes" +msgstr "" + +#: apps/code_reviews/roles.py:11 apps/users/constants.py:45 +msgid "Service User" +msgstr "" + +#: apps/core/apps.py:8 +msgid "Core" +msgstr "" + +#: apps/core/db/fields.py:46 +msgid "Invalid timezone identifier" +msgstr "" + +#: apps/core/db/fields.py:51 +msgid "A pytz timezone instance" +msgstr "" + +#: apps/core/db/models.py:11 +msgid "Enabled" +msgstr "" + +#: apps/core/db/models.py:17 apps/learning/models.py:794 +#: apps/users/models.py:272 +msgid "Changed by" +msgstr "" + +#: apps/core/forms.py:7 apps/templates/forms/simple_delete_confirmation.html:22 +#: apps/templates/learning/enrollment/enrollment_leave.html:25 +msgid "Cancel" +msgstr "" + +#: apps/core/forms.py:10 apps/users/forms.py:97 +msgid "Save" +msgstr "" + +#: apps/core/models.py:37 +msgid "" +"How to style text read here. Partially HTML is enabled too." +msgstr "" + +#: apps/core/models.py:40 +msgid "" +"How to style text read here." +msgstr "" + +#: apps/core/models.py:181 apps/core/models.py:260 +msgid "Code" +msgstr "" + +#: apps/core/models.py:184 +msgid "City name" +msgstr "" + +#: apps/core/models.py:185 apps/core/models.py:363 +msgid "Abbreviation" +msgstr "" + +#: apps/core/models.py:186 apps/core/models.py:276 +msgid "Timezone" +msgstr "" + +#: apps/core/models.py:191 apps/core/models.py:324 apps/core/models.py:366 +#: apps/universities/models.py:30 apps/universities/models.py:46 +msgid "City" +msgstr "" + +#: apps/core/models.py:192 apps/universities/models.py:31 +msgid "Cities" +msgstr "" + +#: apps/core/models.py:263 +msgid "Branch|Name" +msgstr "" + +#: apps/core/models.py:264 +msgid "Established" +msgstr "" + +#: apps/core/models.py:267 +msgid "Active" +msgstr "" + +#: apps/core/models.py:269 apps/courses/models.py:73 +#: apps/learning/gallery/models.py:39 apps/learning/gallery/models.py:72 +#: apps/universities/models.py:27 +msgid "Order" +msgstr "" + +#: apps/core/models.py:270 +msgid "Branch Location" +msgstr "" + +#: apps/core/models.py:273 apps/faq/models.py:11 apps/faq/models.py:27 +#: apps/info_blocks/models.py:43 apps/learning/models.py:280 +#: apps/study_programs/models.py:19 apps/users/models.py:170 +#: apps/users/models.py:778 +msgid "Site" +msgstr "" + +#: apps/core/models.py:279 apps/core/models.py:334 apps/courses/forms.py:171 +#: apps/courses/models.py:70 apps/courses/models.py:280 +#: apps/courses/models.py:825 apps/learning/models.py:1067 +#: apps/templates/learning/event_detail.html:29 +msgid "Description" +msgstr "" + +#: apps/core/models.py:280 +msgid "Branch|Description" +msgstr "" + +#: apps/core/models.py:291 apps/courses/models.py:61 apps/courses/models.py:235 +#: apps/courses/models.py:593 apps/learning/admin.py:67 +#: apps/learning/gradebook/views.py:231 apps/learning/models.py:77 +#: apps/learning/models.py:519 apps/learning/models.py:1057 +#: apps/library/models.py:66 apps/study_programs/models.py:61 +#: apps/templates/learning/invitation/complete_profile.html:23 +#: apps/users/models.py:176 apps/users/models.py:358 apps/users/models.py:802 +msgid "Branch" +msgstr "" + +#: apps/core/models.py:292 apps/courses/models.py:244 +msgid "Branches" +msgstr "" + +#: apps/core/models.py:327 apps/core/models.py:351 +msgid "Location|Name" +msgstr "" + +#: apps/core/models.py:329 apps/courses/models.py:55 +msgid "Address" +msgstr "" + +#: apps/core/models.py:330 +msgid "Should be resolvable by Google Maps" +msgstr "" + +#: apps/core/models.py:337 +msgid "Directions" +msgstr "" + +#: apps/core/models.py:341 +msgid "Flags" +msgstr "" + +#: apps/core/models.py:343 apps/courses/models.py:857 +#: apps/courses/models.py:1019 +msgid "Class" +msgstr "" + +#: apps/core/models.py:344 +msgid "Interview" +msgstr "" + +#: apps/core/models.py:347 +msgid "Set purpose of this place" +msgstr "" + +#: apps/core/models.py:352 +msgid "Locations" +msgstr "" + +#: apps/core/models.py:362 apps/courses/forms.py:508 apps/courses/models.py:65 +#: apps/faq/models.py:9 apps/learning/gallery/models.py:65 +#: apps/learning/models.py:63 apps/learning/models.py:511 +#: apps/universities/models.py:6 apps/universities/models.py:21 +#: apps/universities/models.py:43 apps/universities/models.py:67 +msgid "Name" +msgstr "" + +#: apps/core/models.py:373 apps/universities/models.py:51 +#: apps/universities/models.py:70 apps/users/models.py:818 +msgid "University" +msgstr "" + +#: apps/core/models.py:374 apps/universities/apps.py:8 +#: apps/universities/models.py:52 +msgid "Universities" +msgstr "" + +#: apps/core/models.py:384 apps/grading/models.py:15 apps/grading/models.py:85 +msgid "created" +msgstr "" + +#: apps/core/models.py:385 apps/grading/models.py:86 apps/users/models.py:347 +msgid "modified" +msgstr "" + +#: apps/core/templates/admin/dropdown_listfilter.html:5 +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +#: apps/core/timezone/forms.py:46 +#, python-format +msgid "" +"%(datetime)s couldn't be interpreted in time zone %(instance_tz)s; it may be " +"ambiguous or it may not exist." +msgstr "" + +#: apps/core/validators.py:35 +#, python-format +msgid "" +"Extension '%(extension)s' not allowed. Allowed extensions are: " +"'%(allowed_extensions)s.'" +msgstr "" + +#: apps/core/validators.py:36 +#, python-format +msgid "" +"MIME type '%(mimetype)s' is not valid. Allowed types are: " +"%(allowed_mimetypes)s." +msgstr "" + +#: apps/core/validators.py:37 +#, python-format +msgid "" +"The current file %(size)s, which is too small. The minumum file size is " +"%(allowed_size)s." +msgstr "" + +#: apps/core/validators.py:38 +#, python-format +msgid "" +"The current file %(size)s, which is too large. The maximum file size is " +"%(allowed_size)s." +msgstr "" + +#: apps/courses/admin.py:168 apps/courses/admin.py:249 +msgid "Created" +msgstr "" + +#: apps/courses/admin.py:186 +msgid "" +"Please, double check the list. Some users are not related to the selected " +"course" +msgstr "" + +#: apps/courses/admin.py:253 apps/courses/models.py:1072 +msgid "Assignment|deadline" +msgstr "" + +#: apps/courses/apps.py:7 apps/courses/models.py:211 +#: apps/learning/models.py:525 +#, fuzzy +#| msgid "CourseTab|News" +msgid "Courses" msgstr "News" -#: apps/learning/tabs.py:51 -msgid "CourseTab|Reviews" -msgstr "Reviews" +#: apps/courses/constants.py:15 +msgid "Monday" +msgstr "" + +#: apps/courses/constants.py:16 +msgid "Tuesday" +msgstr "" + +#: apps/courses/constants.py:17 +msgid "Wednesday" +msgstr "" + +#: apps/courses/constants.py:18 +msgid "Thursday" +msgstr "" + +#: apps/courses/constants.py:19 +msgid "Friday" +msgstr "" + +#: apps/courses/constants.py:20 +msgid "Saturday" +msgstr "" + +#: apps/courses/constants.py:21 +msgid "Sunday" +msgstr "" + +#: apps/courses/constants.py:30 +msgid "spring" +msgstr "" + +#: apps/courses/constants.py:31 +msgid "summer" +msgstr "" + +#: apps/courses/constants.py:32 +msgid "autumn" +msgstr "" + +#: apps/courses/constants.py:36 +msgid "Lecture" +msgstr "" + +#: apps/courses/constants.py:37 +msgid "Seminar" +msgstr "" + +#: apps/courses/constants.py:44 +msgid "Lecturer" +msgstr "" + +#: apps/courses/constants.py:45 +msgid "Reviewer" +msgstr "" + +#: apps/courses/constants.py:46 +msgid "Seminarian" +msgstr "" + +#: apps/courses/constants.py:47 +msgid "Spectator" +msgstr "" + +#: apps/courses/constants.py:48 +msgid "Organizer" +msgstr "" + +#: apps/courses/constants.py:52 +msgid "All Users" +msgstr "" + +#: apps/courses/constants.py:53 +msgid "All Students" +msgstr "" + +#: apps/courses/constants.py:54 +msgid "Course Participants" +msgstr "" + +#: apps/courses/constants.py:58 +msgid "Online Submission" +msgstr "" + +#: apps/courses/constants.py:59 apps/grading/constants.py:161 +#: apps/learning/settings.py:146 +msgid "Yandex.Contest" +msgstr "" + +#: apps/courses/constants.py:60 +msgid "External Service" +msgstr "" + +#: apps/courses/constants.py:61 +msgid "Code Review Submission" +msgstr "" + +#: apps/courses/constants.py:62 apps/learning/models.py:600 +msgid "Penalty" +msgstr "" + +#: apps/courses/constants.py:63 +msgid "No Submission" +msgstr "" + +#: apps/courses/constants.py:70 +msgid "AssignmentStatus|New" +msgstr "" + +#: apps/courses/constants.py:71 +msgid "AssignmentStatus|Not submitted" +msgstr "" + +#: apps/courses/constants.py:72 +msgid "AssignmentStatus|On checking" +msgstr "" + +#: apps/courses/constants.py:73 +msgid "AssignmentStatus|Need fixes" +msgstr "" + +#: apps/courses/constants.py:74 +msgid "AssignmentStatus|Completed" +msgstr "" + +#: apps/courses/constants.py:78 +msgid "Without a responsible person" +msgstr "" + +#: apps/courses/constants.py:79 +msgid "Choose from the list" +msgstr "" + +#: apps/courses/constants.py:80 +msgid "Student Group - Default" +msgstr "" + +#: apps/courses/constants.py:81 +msgid "Student Group - Custom" +msgstr "" + +#: apps/courses/constants.py:82 +msgid "Student Group - Balanced" +msgstr "" + +#: apps/courses/forms.py:60 +msgid "To all groups" +msgstr "" + +#: apps/courses/forms.py:67 apps/courses/models.py:188 +#: apps/users/models.py:1001 apps/users/models.py:1018 +#, fuzzy +#| msgid "CourseTab|Classes" +msgid "Course|name" +msgstr "Classes" + +#: apps/courses/forms.py:72 apps/courses/models.py:197 +msgid "Course|description" +msgstr "" + +#: apps/courses/forms.py:134 apps/courses/forms.py:297 +#: apps/info_blocks/models.py:40 apps/learning/gallery/models.py:34 +#: apps/templates/international_schools/international_schools.html:16 +msgid "Title" +msgstr "" + +#: apps/courses/forms.py:139 apps/courses/forms.py:300 +msgid "Text" +msgstr "" + +#: apps/courses/forms.py:162 +msgid "Venue" +msgstr "" + +#: apps/courses/forms.py:165 apps/courses/models.py:815 +#: apps/notifications/models.py:92 apps/users/models.py:782 +msgid "Type" +msgstr "" + +#: apps/courses/forms.py:168 apps/courses/models.py:823 +#: apps/learning/models.py:1065 +#, fuzzy +#| msgid "CourseTab|Classes" +msgid "CourseClass|Name" +msgstr "Classes" + +#: apps/courses/forms.py:176 apps/courses/models.py:829 +msgid "Slides" +msgstr "" + +#: apps/courses/forms.py:180 apps/courses/forms.py:312 +msgid "Attached files" +msgstr "" + +#: apps/courses/forms.py:182 apps/courses/forms.py:314 +msgid "You can select multiple files" +msgstr "" + +#: apps/courses/forms.py:185 apps/courses/models.py:841 +msgid "CourseClass|Other materials" +msgstr "" + +#: apps/courses/forms.py:190 apps/courses/models.py:818 +#: apps/learning/models.py:1070 +msgid "Date" +msgstr "" + +#: apps/courses/forms.py:191 apps/users/forms.py:26 +msgid "Format: dd.mm.yyyy" +msgstr "" + +#: apps/courses/forms.py:195 apps/courses/models.py:819 +#: apps/learning/models.py:1071 +msgid "Starts at" +msgstr "" + +#: apps/courses/forms.py:196 apps/courses/forms.py:200 +msgid "Format: hh:mm" +msgstr "" + +#: apps/courses/forms.py:199 apps/courses/models.py:820 +#: apps/learning/models.py:1072 +msgid "Ends at" +msgstr "" + +#: apps/courses/forms.py:203 apps/courses/forms.py:309 +#: apps/courses/models.py:821 apps/courses/models.py:1073 +#: apps/users/models.py:362 +msgid "Time Zone" +msgstr "" + +#: apps/courses/forms.py:207 apps/courses/forms.py:547 +#: apps/learning/models.py:92 +msgid "Student Groups" +msgstr "" + +#: apps/courses/forms.py:209 +msgid "Restrict course class visibility in the student schedule" +msgstr "" + +#: apps/courses/forms.py:241 +#, python-format +msgid "" +"Inconsistent with this course's semester (from %(starts_at)s to %(ends_at)s)" +msgstr "" + +#: apps/courses/forms.py:254 +msgid "Enter the time spent on the assignment." +msgstr "" + +#: apps/courses/forms.py:255 +msgid "Enter a valid duration in a HH:MM format" +msgstr "" + +#: apps/courses/forms.py:256 +#, python-brace-format +msgid "The number of days must be less than {max_days}." +msgstr "" + +#: apps/courses/forms.py:287 +msgid "" +"There must be an error in the duration specified. Please, contact curators " +"for this problem." +msgstr "" + +#: apps/courses/forms.py:304 +msgid "Deadline" +msgstr "" + +#: apps/courses/forms.py:317 apps/courses/models.py:1085 +msgid "Passing score" +msgstr "" + +#: apps/courses/forms.py:320 apps/courses/models.py:1089 +msgid "Maximum score" +msgstr "" + +#: apps/courses/forms.py:323 apps/courses/models.py:1093 +msgid "Assignment Weight" +msgstr "" + +#: apps/courses/forms.py:326 +msgid "" +"Assignment contribution to the course total score. It takes into account in " +"the gradebook." +msgstr "" + +#: apps/courses/forms.py:330 apps/courses/models.py:1098 +msgid "Time to Completion" +msgstr "" + +#: apps/courses/forms.py:332 apps/courses/models.py:1100 +msgid "Estimated amount of time required for the task to be completed" +msgstr "" + +#: apps/courses/forms.py:336 apps/learning/forms.py:150 +msgid "hours:minutes" +msgstr "" + +#: apps/courses/forms.py:338 +msgid "Available for Groups" +msgstr "" + +#: apps/courses/forms.py:340 +msgid "Restrict assignment to selected groups. Available to all by default." +msgstr "" + +#: apps/courses/forms.py:342 apps/courses/models.py:1120 +#: apps/grading/models.py:32 apps/grading/models.py:52 +msgid "Checking System" +msgstr "" + +#: apps/courses/forms.py:347 +msgid "Checker URL" +msgstr "" + +#: apps/courses/forms.py:349 +msgid "" +"For example, URL of the Yandex.Contest problem: https://contest.yandex.ru/" +"contest/3/problems/A/" +msgstr "" + +#: apps/courses/forms.py:353 +msgid "Selection Mode" +msgstr "" + +#: apps/courses/forms.py:391 +msgid "URL is specified but checking system is empty" +msgstr "" + +#: apps/courses/forms.py:511 apps/learning/roles.py:156 +#: apps/users/constants.py:37 +msgid "Teacher" +msgstr "" + +#: apps/courses/forms.py:556 apps/learning/models.py:225 +#: apps/users/models.py:1019 +msgid "Teachers" +msgstr "" + +#: apps/courses/models.py:67 +msgid "The location name will be added to the end if provided" +msgstr "" + +#: apps/courses/models.py:76 +msgid "Learning Space" +msgstr "" + +#: apps/courses/models.py:77 +msgid "Learning Spaces" +msgstr "" + +#: apps/courses/models.py:95 apps/study_programs/models.py:59 +msgid "Year" +msgstr "" + +#: apps/courses/models.py:98 +msgid "Semester|type" +msgstr "" + +#: apps/courses/models.py:101 +msgid "Semester|StartsAt" +msgstr "" + +#: apps/courses/models.py:102 apps/courses/models.py:106 +msgid "Datetime in UTC and is predefined." +msgstr "" + +#: apps/courses/models.py:105 +msgid "Semester|EndsAt" +msgstr "" + +#: apps/courses/models.py:109 +msgid "Semester index" +msgstr "" + +#: apps/courses/models.py:110 +msgid "System field. Used for sort order and filter." +msgstr "" + +#: apps/courses/models.py:115 apps/courses/models.py:271 +#: apps/learning/gallery/models.py:83 apps/learning/models.py:284 +#: apps/learning/models.py:515 apps/users/admin.py:181 +#: apps/users/models.py:1022 +msgid "Semester" +msgstr "" + +#: apps/courses/models.py:116 +msgid "Semesters" +msgstr "" + +#: apps/courses/models.py:190 +msgid "News|slug" +msgstr "" + +#: apps/courses/models.py:192 +msgid "" +"Short dash-separated string for human-readable URLs, as in test.com/news/" +"some-news/" +msgstr "" + +#: apps/courses/models.py:200 +msgid "Course|short_description" +msgstr "" + +#: apps/courses/models.py:203 +msgid "MetaCourse|cover" +msgstr "" + +#: apps/courses/models.py:210 apps/courses/models.py:253 +#: apps/courses/models.py:597 apps/courses/models.py:725 +#: apps/courses/models.py:808 apps/learning/admin.py:239 +#: apps/learning/study/forms.py:77 +#, fuzzy +#| msgid "CourseTab|News" +msgid "Course" +msgstr "News" + +#: apps/courses/models.py:232 +msgid "System" +msgstr "" + +#: apps/courses/models.py:233 apps/courses/models.py:243 +msgid "Manual" +msgstr "" + +#: apps/courses/models.py:236 apps/learning/models.py:84 +#: apps/learning/models.py:152 apps/learning/models.py:386 +#: apps/learning/models.py:536 apps/users/models.py:872 +msgid "Invitation" +msgstr "" + +#: apps/courses/models.py:242 +msgid "No Groups" +msgstr "" + +#: apps/courses/models.py:245 +msgid "Invitations and Branches" +msgstr "" + +#: apps/courses/models.py:257 +msgid "CourseOffering|grading_type" +msgstr "" + +#: apps/courses/models.py:261 +msgid "CourseOffering|capacity" +msgstr "" + +#: apps/courses/models.py:263 +msgid "0 - unlimited" +msgstr "" + +#: apps/courses/models.py:266 +#, fuzzy +#| msgid "CourseTab|Contacts" +msgid "Course|teachers" +msgstr "Contacts" + +#: apps/courses/models.py:274 +msgid "Date of completion" +msgstr "" + +#: apps/courses/models.py:276 +msgid "Consider the course as completed from the specified day (inclusive)." +msgstr "" + +#: apps/courses/models.py:281 +msgid "LaTeX+Markdown+HTML is enabled" +msgstr "" + +#: apps/courses/models.py:284 +msgid "Internal Information" +msgstr "" + +#: apps/courses/models.py:285 apps/courses/models.py:290 +msgid "Visible to course listeners only. LaTeX+Markdown+HTML is enabled." +msgstr "" + +#: apps/courses/models.py:289 +#, fuzzy +#| msgid "CourseTab|Contacts" +msgid "Contacts" +msgstr "Contacts" + +#: apps/courses/models.py:294 +msgid "Survey URL" +msgstr "" + +#: apps/courses/models.py:296 +msgid "Leave empty if you want to fetch survey url from DB" +msgstr "" + +#: apps/courses/models.py:297 apps/users/models.py:1002 +msgid "Online Course URL" +msgstr "" + +#: apps/courses/models.py:299 +msgid "Ask Enrollment Reason" +msgstr "" + +#: apps/courses/models.py:300 +msgid "" +"Ask a student why they wants to enroll in the course when they clicks the " +"'Enroll' button." +msgstr "" + +#: apps/courses/models.py:304 +msgid "Ask Time to Completion" +msgstr "" + +#: apps/courses/models.py:305 +msgid "" +"Teacher must specify estimated amount of time required for an assignment to " +"be completed. Student enters the actual time on submitting the solution." +msgstr "" + +#: apps/courses/models.py:310 +msgid "Published in video section" +msgstr "" + +#: apps/courses/models.py:313 +msgid "Do we see this course in certificates and diplomas?" +msgstr "" + +#: apps/courses/models.py:317 apps/courses/models.py:600 +msgid "Main Branch" +msgstr "" + +#: apps/courses/models.py:322 apps/courses/models.py:605 +#, fuzzy +#| msgid "CourseTab|News" +msgid "Course Branches" +msgstr "News" + +#: apps/courses/models.py:324 +msgid "All branches where the course is available for enrollment" +msgstr "" + +#: apps/courses/models.py:327 +msgid "Student Group Mode" +msgstr "" + +#: apps/courses/models.py:331 +msgid "Choose `Branch` to auto generate student groups from course branches." +msgstr "" + +#: apps/courses/models.py:334 +msgid "Language" +msgstr "" + +#: apps/courses/models.py:336 +msgid "The language in which lectures are given." +msgstr "" + +#: apps/courses/models.py:340 apps/courses/models.py:845 +msgid "Materials Visibility" +msgstr "" + +#: apps/courses/models.py:342 +msgid "Default visibility for class materials." +msgstr "" + +#: apps/courses/models.py:348 +msgid "Public Slides" +msgstr "" + +#: apps/courses/models.py:352 +msgid "Public Attachments" +msgstr "" + +#: apps/courses/models.py:374 apps/courses/models.py:1070 +#: apps/learning/gallery/models.py:49 apps/learning/models.py:67 +#: apps/learning/models.py:358 apps/learning/models.py:472 +msgid "Course offering" +msgstr "" + +#: apps/courses/models.py:375 +msgid "Course offerings" +msgstr "" + +#: apps/courses/models.py:604 +msgid "Course Branch" +msgstr "" + +#: apps/courses/models.py:637 apps/notifications/models.py:194 +msgid "Notifications" +msgstr "" + +#: apps/courses/models.py:643 +#, fuzzy +#| msgid "CourseTab|News" +msgid "Course Teacher" +msgstr "News" + +#: apps/courses/models.py:644 +#, fuzzy +#| msgid "CourseTab|News" +msgid "Course Teachers" +msgstr "News" + +#: apps/courses/models.py:701 apps/courses/models.py:730 +#: apps/learning/models.py:451 apps/learning/models.py:852 +#: apps/users/models.py:980 +msgid "Author" +msgstr "" + +#: apps/courses/models.py:705 +#, fuzzy +#| msgid "CourseTab|Reviews" +msgid "CourseReview|text" +msgstr "Reviews" + +#: apps/courses/models.py:713 +#, fuzzy +#| msgid "CourseTab|Reviews" +msgid "Course Review" +msgstr "Reviews" + +#: apps/courses/models.py:714 +#, fuzzy +#| msgid "CourseTab|Reviews" +msgid "Course Reviews" +msgstr "Reviews" + +#: apps/courses/models.py:727 +#, fuzzy +#| msgid "CourseTab|News" +msgid "CourseNews|title" +msgstr "News" + +#: apps/courses/models.py:733 +#, fuzzy +#| msgid "CourseTab|News" +msgid "CourseNews|text" +msgstr "News" + +#: apps/courses/models.py:738 +msgid "Course news-singular" +msgstr "" + +#: apps/courses/models.py:739 +msgid "Course news-plural" +msgstr "" + +#: apps/courses/models.py:812 apps/learning/models.py:1062 +#, fuzzy +#| msgid "CourseTab|Classes" +msgid "CourseClass|Venue" +msgstr "Classes" + +#: apps/courses/models.py:834 +msgid "SlideShare URL" +msgstr "" + +#: apps/courses/models.py:836 +msgid "Video Recording" +msgstr "" + +#: apps/courses/models.py:838 +msgid "Both YouTube and Yandex Video are supported" +msgstr "" + +#: apps/courses/models.py:847 +msgid "Slides, attachments and other materials" +msgstr "" + +#: apps/courses/models.py:851 apps/courses/models.py:1114 +#: apps/learning/gradebook/forms.py:120 apps/learning/models.py:221 +msgid "Groups" +msgstr "" + +#: apps/courses/models.py:858 apps/learning/icalendar.py:232 +msgid "Classes" +msgstr "" + +#: apps/courses/models.py:873 +msgid "Class should end after it started" +msgstr "" + +#: apps/courses/models.py:974 +msgid "slides" +msgstr "" + +#: apps/courses/models.py:978 +msgid "video" +msgstr "" + +#: apps/courses/models.py:986 +msgid "files" +msgstr "" + +#: apps/courses/models.py:990 +msgid "other" +msgstr "" + +#: apps/courses/models.py:1028 +msgid "Class attachment" +msgstr "" + +#: apps/courses/models.py:1029 +msgid "Class attachments" +msgstr "" + +#: apps/courses/models.py:1076 apps/learning/study/forms.py:62 +msgid "Assignment Format" +msgstr "" + +#: apps/courses/models.py:1080 +msgid "Assignment|name" +msgstr "" + +#: apps/courses/models.py:1082 +msgid "Assignment|text" +msgstr "" + +#: apps/courses/models.py:1102 +msgid "Assignee mode" +msgstr "" + +#: apps/courses/models.py:1103 +msgid "Automatic assignment mode of a responsible teacher" +msgstr "" + +#: apps/courses/models.py:1108 +msgid "Assignment Assignees" +msgstr "" + +#: apps/courses/models.py:1109 +msgid "Has lower priority than student group assignees" +msgstr "" + +#: apps/courses/models.py:1131 apps/courses/models.py:1233 +#: apps/grading/admin.py:25 apps/learning/admin.py:258 +#: apps/learning/models.py:174 apps/learning/models.py:215 +#: apps/learning/models.py:240 +#, fuzzy +#| msgid "CourseTab|Assignments" +msgid "Assignment" +msgstr "Assignments" + +#: apps/courses/models.py:1132 apps/learning/icalendar.py:233 +#, fuzzy +#| msgid "CourseTab|Assignments" +msgid "Assignments" +msgstr "Assignments" + +#: apps/courses/models.py:1141 +msgid "Course modification is not allowed" +msgstr "" + +#: apps/courses/models.py:1143 +msgid "Passing score should be less than (or equal to) maximum one" +msgstr "" + +#: apps/courses/models.py:1241 +msgid "Assignment attachment" +msgstr "" + +#: apps/courses/models.py:1242 +msgid "Assignment attachments" +msgstr "" + +#: apps/courses/tabs.py:308 +msgid "CourseTab|About" +msgstr "About" + +#: apps/courses/tabs.py:320 +msgid "CourseTab|Classes" +msgstr "Classes" + +#: apps/courses/tabs.py:337 apps/learning/tabs.py:68 +msgid "CourseTab|Assignments" +msgstr "Assignments" + +#: apps/courses/views/course_class.py:144 +#, python-format +msgid "The class '%s' was successfully created." +msgstr "" + +#: apps/courses/views/course_class.py:174 +#, python-format +msgid "The class '%s' was successfully updated." +msgstr "" + +#: apps/courses/views/course_news.py:48 +msgid "News was successfully created" +msgstr "" + +#: apps/courses/views/course_news.py:51 +msgid "News wasn't created. Try again." +msgstr "" + +#: apps/faq/apps.py:7 +msgid "FAQ" +msgstr "" + +#: apps/faq/models.py:10 apps/faq/models.py:26 apps/info_blocks/models.py:42 +#: apps/staff/models.py:12 +msgid "Sort order" +msgstr "" + +#: apps/faq/models.py:16 +msgid "Category" +msgstr "" + +#: apps/faq/models.py:17 apps/faq/models.py:31 +msgid "Categories" +msgstr "" + +#: apps/faq/models.py:24 apps/faq/models.py:37 apps/staff/models.py:10 +msgid "Question" +msgstr "" + +#: apps/faq/models.py:25 apps/staff/models.py:11 +msgid "Answer" +msgstr "" + +#: apps/faq/models.py:38 +msgid "Questions" +msgstr "" + +#: apps/grading/admin.py:29 apps/learning/admin.py:307 +#: apps/learning/models.py:350 apps/learning/roles.py:92 +#: apps/users/constants.py:36 apps/users/models.py:797 apps/users/models.py:975 +#: apps/users/models.py:999 apps/users/models.py:1016 apps/users/models.py:1048 +msgid "Student" +msgstr "" + +#: apps/grading/constants.py:165 apps/grading/tests/test_models.py:11 +msgid "New" +msgstr "" + +#: apps/grading/constants.py:167 apps/grading/tests/test_models.py:13 +msgid "Not Submitted" +msgstr "" + +#: apps/grading/constants.py:168 apps/grading/tests/test_models.py:12 +msgid "Checking" +msgstr "" + +#: apps/grading/constants.py:169 +msgid "Wrong Answer" +msgstr "" + +#: apps/grading/constants.py:170 +msgid "Correct Answer" +msgstr "" + +#: apps/grading/models.py:16 +msgid "CheckingSystem|Name" +msgstr "" + +#: apps/grading/models.py:18 +msgid "CheckingSystem|Type" +msgstr "" + +#: apps/grading/models.py:21 +msgid "What can it be used for?" +msgstr "" + +#: apps/grading/models.py:25 +msgid "CheckingSystem|Details" +msgstr "" + +#: apps/grading/models.py:28 +msgid "Access token, etc" +msgstr "" + +#: apps/grading/models.py:33 +msgid "Checking Systems" +msgstr "" + +#: apps/grading/models.py:44 +msgid "" +"Access token should be specified,or participant's OAuth token shouldbe used " +"for submission." +msgstr "" + +#: apps/grading/models.py:55 +msgid "Checker|URL" +msgstr "" + +#: apps/grading/models.py:57 +msgid "Checker|Settings" +msgstr "" + +#: apps/grading/models.py:60 +msgid "Contest id, problem id, etc" +msgstr "" + +#: apps/grading/models.py:64 +msgid "Checker" +msgstr "" + +#: apps/grading/models.py:65 +msgid "Checkers" +msgstr "" + +#: apps/grading/models.py:76 +msgid "Please check that the following settings are provided: {}" +msgstr "" + +#: apps/grading/models.py:89 apps/learning/models.py:949 +msgid "Assignment Submission" +msgstr "" + +#: apps/grading/models.py:93 apps/learning/forms.py:76 +#: apps/learning/study/forms.py:69 apps/users/models.py:221 +#: apps/users/models.py:807 apps/users/models.py:971 +msgid "Status" +msgstr "" + +#: apps/grading/models.py:97 +msgid "Settings" +msgstr "" + +#: apps/grading/models.py:100 +msgid "Selected compiler, etc" +msgstr "" + +#: apps/grading/models.py:103 +msgid "Meta" +msgstr "" + +#: apps/grading/models.py:106 +msgid "Returned submission id or error details" +msgstr "" + +#: apps/grading/models.py:110 +msgid "Submission" +msgstr "" + +#: apps/grading/models.py:111 +msgid "Submissions" +msgstr "" + +#: apps/grading/models.py:146 +#, python-format +msgid " [test %d]" +msgstr "" + +#: apps/grading/utils.py:52 +msgid "Not a Yandex.Contest URL" +msgstr "" + +#: apps/grading/utils.py:57 +msgid "Wrong Yandex.Contest URL format" +msgstr "" + +#: apps/grading/utils.py:63 +msgid "Contest ID should be positive" +msgstr "" + +#: apps/grading/utils.py:67 +msgid "URL does not contain ID of the problem" +msgstr "" + +#: apps/info_blocks/admin.py:38 apps/info_blocks/models.py:19 +msgid "Infoblock Tags" +msgstr "" + +#: apps/info_blocks/apps.py:7 apps/info_blocks/models.py:54 +msgid "Infoblocks" +msgstr "" + +#: apps/info_blocks/models.py:18 +msgid "Infoblock Tag" +msgstr "" + +#: apps/info_blocks/models.py:41 +msgid "Content" +msgstr "" + +#: apps/info_blocks/models.py:53 +msgid "Infoblock" +msgstr "" + +#: apps/learning/admin.py:92 +msgid "Assignment|assigned_to" +msgstr "" + +#: apps/learning/admin.py:97 +msgid "Asssignment|name" +msgstr "" + +#: apps/learning/admin.py:142 apps/learning/models.py:366 +msgid "Enrollment|grade changed" +msgstr "" + +#: apps/learning/admin.py:169 +msgid "Watchers" +msgstr "" + +#: apps/learning/admin.py:170 +msgid "Watcher" +msgstr "" + +#: apps/learning/admin.py:331 +msgid "Invitation Link" +msgstr "" + +#: apps/learning/api/serializers.py:58 +#, python-format +msgid "Score can't be larger than %s" +msgstr "" + +#: apps/learning/api/views.py:190 +#, python-format +msgid "Invalid course teacher %s" +msgstr "" + +#: apps/learning/apps.py:7 +msgid "Learning" +msgstr "" + +#: apps/learning/forms.py:61 apps/learning/models.py:825 +#: apps/users/models.py:855 +msgid "Comment" +msgstr "" + +#: apps/learning/forms.py:125 +msgid "Please select a valid status" +msgstr "" + +#: apps/learning/forms.py:130 +msgid "Form is empty." +msgstr "" + +#: apps/learning/forms.py:146 +msgid "Time Spent on Assignment" +msgstr "" + +#: apps/learning/forms.py:151 +msgid "" +"Requires the full format including minutes. Do not include the time of " +"previous submissions." +msgstr "" + +#: apps/learning/forms.py:179 apps/learning/forms.py:228 +msgid "Send Solution" +msgstr "" + +#: apps/learning/forms.py:189 +#: apps/learning/services/personal_assignment_service.py:167 +#: apps/learning/study/forms.py:55 +msgid "Either text or file should be non-empty" +msgstr "" + +#: apps/learning/forms.py:196 +msgid "File name is not provided" +msgstr "" + +#: apps/learning/forms.py:200 +#, python-format +msgid "`%(value)s` file name has no extension" +msgstr "" + +#: apps/learning/forms.py:207 +msgid "Compiler" +msgstr "" + +#: apps/learning/forms.py:210 +msgid "Solution file" +msgstr "" + +#: apps/learning/forms.py:237 +msgid "File should be non-empty" +msgstr "" + +#: apps/learning/forms.py:260 +msgid "Text should be non-empty" +msgstr "" + +#: apps/learning/forms.py:288 +msgid " ?" +msgstr "" + +#: apps/learning/gallery/apps.py:9 +msgid "Gallery" +msgstr "" + +#: apps/learning/gallery/models.py:37 apps/learning/gallery/models.py:100 +msgid "Album" +msgstr "" + +#: apps/learning/gallery/models.py:40 +msgid "File" +msgstr "" + +#: apps/learning/gallery/models.py:57 +msgid "Image" +msgstr "" + +#: apps/learning/gallery/models.py:58 +msgid "Images" +msgstr "" + +#: apps/learning/gallery/models.py:68 +msgid "Slug" +msgstr "" + +#: apps/learning/gallery/models.py:70 +msgid "Short name in ASCII, used in images upload path" +msgstr "" + +#: apps/learning/gallery/models.py:73 +msgid "Brief" +msgstr "" + +#: apps/learning/gallery/models.py:75 +msgid "Short description" +msgstr "" + +#: apps/learning/gallery/models.py:78 apps/learning/gallery/models.py:118 +msgid "Head" +msgstr "" + +#: apps/learning/gallery/models.py:86 +msgid "Set semester for album and all uploaded images will inherit it." +msgstr "" + +#: apps/learning/gallery/models.py:89 +msgid "Parent" +msgstr "" + +#: apps/learning/gallery/models.py:92 +msgid "Parent album" +msgstr "" + +#: apps/learning/gallery/models.py:101 +msgid "Albums" +msgstr "" + +#: apps/learning/gallery/models.py:109 +msgid "Empty album" +msgstr "" + +#: apps/learning/gradebook/services.py:221 +msgid "Header '{}' not found" +msgstr "" + +#: apps/learning/gradebook/services.py:232 +msgid "Invalid score format '{}'" +msgstr "" + +#: apps/learning/gradebook/tests.py:99 apps/learning/gradebook/views.py:228 +msgid "Last name" +msgstr "" + +#: apps/learning/gradebook/views.py:144 +msgid ", !
. ." +msgstr "" + +#: apps/learning/gradebook/views.py:151 +msgid "Gradebook successfully saved." +msgstr "" + +#: apps/learning/gradebook/views.py:161 +msgid "Gradebook hasn't been saved." +msgstr "" + +#: apps/learning/gradebook/views.py:229 +msgid "First name" +msgstr "" + +#: apps/learning/gradebook/views.py:230 +msgid "Patronymic" +msgstr "" + +#: apps/learning/gradebook/views.py:232 apps/users/models.py:180 +msgid "Role" +msgstr "" + +#: apps/learning/gradebook/views.py:233 apps/learning/models.py:245 +#: apps/learning/models.py:267 +msgid "Group" +msgstr "" + +#: apps/learning/gradebook/views.py:234 apps/users/models.py:259 +#: apps/users/models.py:368 +msgid "Yandex Login" +msgstr "" + +#: apps/learning/gradebook/views.py:236 apps/users/models.py:386 +msgid "Codeforces Handle" +msgstr "" + +#: apps/learning/gradebook/views.py:239 +msgid "Final grade" +msgstr "" + +#: apps/learning/gradebook/views.py:240 +msgid "Total" +msgstr "" + +#: apps/learning/gradebook/views.py:314 +msgid "Imported records for assignment {} - {} out of {}" +msgstr "" + +#: apps/learning/gradebook/views.py:318 +msgid "Not all records were processed. Import stopped by an error:
" +msgstr "" + +#: apps/learning/gradebook/views.py:392 +msgid " {} - {} {} ." +msgstr "" + +#: apps/learning/icalendar.py:234 +msgid "Events" +msgstr "" + +#: apps/learning/invitation/forms.py:37 +msgid "Submit" +msgstr "" + +#: apps/learning/invitation/views.py:197 +msgid " ." +msgstr "" + +#: apps/learning/models.py:58 +msgid "Group Type" +msgstr "" + +#: apps/learning/models.py:71 +msgid "Enrollment key" +msgstr "" + +#: apps/learning/models.py:91 apps/learning/models.py:165 +#: apps/learning/models.py:379 +msgid "Student Group" +msgstr "" + +#: apps/learning/models.py:106 +msgid "Branch is not specified for the `branch` group type" +msgstr "" + +#: apps/learning/models.py:109 +msgid "Invite is not specified for the `invite` group type" +msgstr "" + +#: apps/learning/models.py:117 +#, python-brace-format +msgid "Fields {mutually_exclusive} are mutually exclusive" +msgstr "" + +#: apps/learning/models.py:127 +msgid "A student group with the same name already exists in the course" +msgstr "" + +#: apps/learning/models.py:170 apps/learning/models.py:609 +msgid "Assignee" +msgstr "" + +#: apps/learning/models.py:179 +msgid "Student Group Assignee" +msgstr "" + +#: apps/learning/models.py:180 +msgid "Student Group Assignees" +msgstr "" + +#: apps/learning/models.py:197 +msgid "User is not a course teacher of the selected student group" +msgstr "" + +#: apps/learning/models.py:200 +msgid "" +"Assignment was not found among the course assignments for the selected " +"student group." +msgstr "" + +#: apps/learning/models.py:229 +msgid "Student groups teachers bucket" +msgstr "" + +#: apps/learning/models.py:230 +msgid "Student groups teachers buckets" +msgstr "" + +#: apps/learning/models.py:252 +msgid "Assignment Group" +msgstr "" + +#: apps/learning/models.py:253 +msgid "Assignment Groups" +msgstr "" + +#: apps/learning/models.py:263 +#, fuzzy +#| msgid "CourseTab|Classes" +msgid "Course Class" +msgstr "Classes" + +#: apps/learning/models.py:287 +msgid "Starts on" +msgstr "" + +#: apps/learning/models.py:290 +msgid "Leave blank to fill in with the date of the beginning of the term" +msgstr "" + +#: apps/learning/models.py:293 +msgid "Closing Day" +msgstr "" + +#: apps/learning/models.py:296 +msgid "" +"Inclusive. Leave blank to calculate based on a default duration ({} days)" +msgstr "" + +#: apps/learning/models.py:305 +msgid "Enrollment Period" +msgstr "" + +#: apps/learning/models.py:306 +msgid "Enrollment Periods" +msgstr "" + +#: apps/learning/models.py:326 +msgid "Start of the enrollment period should be inside term boundaries" +msgstr "" + +#: apps/learning/models.py:332 +msgid "Deadline should be later than the expected term start ({})" +msgstr "" + +#: apps/learning/models.py:335 +msgid "Deadline should be later than the start of the enrollment period" +msgstr "" + +#: apps/learning/models.py:354 apps/learning/models.py:1117 +#: apps/users/models.py:882 +msgid "Student Profile" +msgstr "" + +#: apps/learning/models.py:361 apps/learning/models.py:442 +#: apps/users/models.py:1026 +msgid "Enrollment|grade" +msgstr "" + +#: apps/learning/models.py:369 +msgid "The student left the course" +msgstr "" + +#: apps/learning/models.py:372 +msgid "Entry reason" +msgstr "" + +#: apps/learning/models.py:375 +msgid "Leave reason" +msgstr "" + +#: apps/learning/models.py:396 apps/learning/models.py:446 +msgid "Enrollment" +msgstr "" + +#: apps/learning/models.py:397 +msgid "Enrollments" +msgstr "" + +#: apps/learning/models.py:409 +msgid "Student profile does not match selected user" +msgstr "" + +#: apps/learning/models.py:411 +msgid "" +"Student group must refer to one of the student groups of the selected course" +msgstr "" + +#: apps/learning/models.py:428 +msgid "Satisfactory" +msgstr "" + +#: apps/learning/models.py:438 apps/users/models.py:967 +msgid "Entry Added" +msgstr "" + +#: apps/learning/models.py:454 apps/learning/models.py:805 +msgid "Source" +msgstr "" + +#: apps/learning/models.py:468 +msgid "Course Invitation" +msgstr "" + +#: apps/learning/models.py:477 +msgid "Enrollment Invitation" +msgstr "" + +#: apps/learning/models.py:478 +msgid "Enrollment Invitations" +msgstr "" + +#: apps/learning/models.py:491 +msgid "Course semester should match invitation semester" +msgstr "" + +#: apps/learning/models.py:529 +msgid "Enrolled students" +msgstr "" + +#: apps/learning/models.py:531 +msgid "Students who took advantage of the invitation" +msgstr "" + +#: apps/learning/models.py:537 +msgid "Invitations" +msgstr "" + +#: apps/learning/models.py:581 +msgid "StudentAssignment|assignment" +msgstr "" + +#: apps/learning/models.py:585 +msgid "StudentAssignment|student" +msgstr "" + +#: apps/learning/models.py:588 +msgid "StudentAssignment|Status" +msgstr "" + +#: apps/learning/models.py:593 +msgid "Grade" +msgstr "" + +#: apps/learning/models.py:605 +msgid "Assignment|grade changed" +msgstr "" + +#: apps/learning/models.py:621 +msgid "Student Assignment Watchers" +msgstr "" + +#: apps/learning/models.py:626 +msgid "Execution Time" +msgstr "" + +#: apps/learning/models.py:629 +msgid "The time spent by the student executing this task" +msgstr "" + +#: apps/learning/models.py:642 +#, fuzzy +#| msgid "CourseTab|Assignments" +msgid "Personal Assignment" +msgstr "Assignments" + +#: apps/learning/models.py:643 +#, fuzzy +#| msgid "CourseTab|Assignments" +msgid "Personal Assignments" +msgstr "Assignments" + +#: apps/learning/models.py:648 +#, python-brace-format +msgid "Grade can't be larger than maximum one ({0})" +msgstr "" + +#: apps/learning/models.py:797 +msgid "Previous Score" +msgstr "" + +#: apps/learning/models.py:801 +msgid "New Score" +msgstr "" + +#: apps/learning/models.py:810 +msgid "Assignment score audit log" +msgstr "" + +#: apps/learning/models.py:826 +msgid "Solution" +msgstr "" + +#: apps/learning/models.py:834 +msgid "AssignmentComment|student_assignment" +msgstr "" + +#: apps/learning/models.py:837 +msgid "AssignmentComment|Type" +msgstr "" + +#: apps/learning/models.py:842 +msgid "Solution Execution Time" +msgstr "" + +#: apps/learning/models.py:844 +msgid "The time spent by the student executing this submission" +msgstr "" + +#: apps/learning/models.py:845 +msgid "Published" +msgstr "" + +#: apps/learning/models.py:847 +msgid "AssignmentComment|text" +msgstr "" + +#: apps/learning/models.py:848 apps/users/models.py:365 +#: apps/users/models.py:397 apps/users/models.py:404 +msgid "LaTeX+Markdown is enabled" +msgstr "" + +#: apps/learning/models.py:855 +msgid "Attached File" +msgstr "" + +#: apps/learning/models.py:871 +msgid "Assignment-comment" +msgstr "" + +#: apps/learning/models.py:872 +msgid "Assignment-comments" +msgstr "" + +#: apps/learning/models.py:958 +msgid "Assignment Submission Attachment" +msgstr "" + +#: apps/learning/models.py:959 +msgid "Assignment Submission Attachments" +msgstr "" + +#: apps/learning/models.py:989 +#, fuzzy +#| msgid "CourseTab|Assignments" +msgid "student_assignment" +msgstr "Assignments" + +#: apps/learning/models.py:991 +#, fuzzy +#| msgid "CourseTab|Assignments" +msgid "About passed assignment" +msgstr "Assignments" + +#: apps/learning/models.py:993 +#, fuzzy +#| msgid "CourseTab|Assignments" +msgid "About created assignment" +msgstr "Assignments" + +#: apps/learning/models.py:995 +msgid "About change of deadline" +msgstr "" + +#: apps/learning/models.py:997 apps/learning/models.py:1035 +msgid "Unread" +msgstr "" + +#: apps/learning/models.py:999 apps/learning/models.py:1037 +msgid "User is notified" +msgstr "" + +#: apps/learning/models.py:1007 +msgid "Assignment notification" +msgstr "" + +#: apps/learning/models.py:1008 +msgid "Assignment notifications" +msgstr "" + +#: apps/learning/models.py:1012 +msgid "Only teachers can receive notifications of passed assignments" +msgstr "" + +#: apps/learning/models.py:1033 +msgid "Course offering news" +msgstr "" + +#: apps/learning/models.py:1045 +msgid "Course offering news notification" +msgstr "" + +#: apps/learning/models.py:1046 +msgid "Course offering news notifications" +msgstr "" + +#: apps/learning/models.py:1078 +msgid "Non-course event" +msgstr "" + +#: apps/learning/models.py:1079 +msgid "Non-course events" +msgstr "" + +#: apps/learning/models.py:1088 +msgid "Event should end after it's start" +msgstr "" + +#: apps/learning/models.py:1113 +msgid "Visibility" +msgstr "" + +#: apps/learning/models.py:1121 +msgid "Graduated on" +msgstr "" + +#: apps/learning/models.py:1122 +msgid "Graduation ceremony date" +msgstr "" + +#: apps/learning/models.py:1125 apps/users/models.py:852 +msgid "Fields of study" +msgstr "" + +#: apps/learning/models.py:1126 +msgid "Academic disciplines that the student graduated from" +msgstr "" + +#: apps/learning/models.py:1129 +msgid "Graduation Year" +msgstr "" + +#: apps/learning/models.py:1130 +msgid "Helps filtering by year" +msgstr "" + +#: apps/learning/models.py:1133 +msgid "Photo" +msgstr "" + +#: apps/learning/models.py:1138 +msgid "Testimonial" +msgstr "" + +#: apps/learning/models.py:1139 +msgid "Testimonial about Computer Science Center" +msgstr "" + +#: apps/learning/models.py:1142 +msgid "Details" +msgstr "" + +#: apps/learning/models.py:1147 apps/users/models.py:836 +msgid "Diploma Number" +msgstr "" + +#: apps/learning/models.py:1152 +msgid "Registration Number" +msgstr "" + +#: apps/learning/models.py:1153 +msgid "Registration number in the registry of education" +msgstr "" + +#: apps/learning/models.py:1158 apps/users/models.py:842 +msgid "Diploma Issued on" +msgstr "" + +#: apps/learning/models.py:1166 +msgid "Graduate Profile" +msgstr "" + +#: apps/learning/models.py:1167 +msgid "Graduate Profiles" +msgstr "" + +#: apps/learning/roles.py:49 apps/users/constants.py:40 +msgid "Curator" +msgstr "" + +#: apps/learning/roles.py:118 apps/users/constants.py:39 +#: apps/users/models.py:743 +msgid "Co-worker" +msgstr "" + +#: apps/learning/roles.py:120 apps/users/constants.py:46 +#: apps/users/models.py:745 +msgid "Master's Degree Student" +msgstr "" + +#: apps/learning/roles.py:122 apps/users/constants.py:44 +msgid "Invited User" +msgstr "" + +#: apps/learning/roles.py:146 apps/users/constants.py:38 +msgid "Graduate" +msgstr "" + +#: apps/learning/services/personal_assignment_service.py:174 +msgid "At least one of text, file, meta.score, meta.status must be provided" +msgstr "" + +#: apps/learning/services/personal_assignment_service.py:298 +msgid "Nothing to process" +msgstr "" + +#: apps/learning/services/personal_assignment_service.py:306 +msgid "" +"The score or status has been changed by someone. Review the changes to " +"resolve the conflict." +msgstr "" + +#: apps/learning/services/student_group_service.py:189 +msgid "Please, check your group enrollment key" +msgstr "" + +#: apps/learning/settings.py:17 +msgid "Saint Petersburg" +msgstr "" + +#: apps/learning/settings.py:18 +msgid "Novosibirsk" +msgstr "" + +#: apps/learning/settings.py:19 apps/learning/settings.py:20 +msgid "Branches|Distance" +msgstr "" + +#: apps/learning/settings.py:25 +msgid "1 course bachelor, speciality" +msgstr "" + +#: apps/learning/settings.py:26 +msgid "2 course bachelor, speciality" +msgstr "" + +#: apps/learning/settings.py:27 +msgid "3 course bachelor, speciality" +msgstr "" + +#: apps/learning/settings.py:28 +msgid "4 course bachelor, speciality" +msgstr "" + +#: apps/learning/settings.py:29 +msgid "5 course speciality" +msgstr "" + +#: apps/learning/settings.py:30 +msgid "6 course speciality" +msgstr "" + +#: apps/learning/settings.py:31 +msgid "1 course magistracy" +msgstr "" + +#: apps/learning/settings.py:32 +msgid "2 course magistracy" +msgstr "" + +#: apps/learning/settings.py:33 +msgid "postgraduate" +msgstr "" + +#: apps/learning/settings.py:34 +msgid "graduate" +msgstr "" + +#: apps/learning/settings.py:35 +msgid "Other" +msgstr "" + +#: apps/learning/settings.py:39 +msgid "StudentInfo|Expelled" +msgstr "" + +#: apps/learning/settings.py:40 +msgid "StudentStatus|Academic leave" +msgstr "" + +#: apps/learning/settings.py:41 +msgid "Second academic leave" +msgstr "" + +#: apps/learning/settings.py:42 +msgid "StudentInfo|Reinstalled" +msgstr "" + +#: apps/learning/settings.py:43 +msgid "StudentInfo|Will graduate" +msgstr "" + +#: apps/learning/settings.py:44 +msgid "StudentInfo|Graduate" +msgstr "" + +#: apps/learning/settings.py:58 +msgid "Default" +msgstr "" + +#: apps/learning/settings.py:59 +msgid "Pass/Fail" +msgstr "" + +#: apps/learning/settings.py:60 +msgid "Pass/Fail + Excellent" +msgstr "" + +#: apps/learning/settings.py:61 +msgid "10-point scale" +msgstr "" + +#: apps/learning/settings.py:68 apps/users/constants.py:53 +msgid "Not graded" +msgstr "" + +#: apps/learning/settings.py:70 +msgid "Enrollment|Unsatisfactory" +msgstr "" + +#: apps/learning/settings.py:73 +msgid "Enrollment|Pass" +msgstr "" + +#: apps/learning/settings.py:76 apps/users/constants.py:56 +msgid "Good" +msgstr "" + +#: apps/learning/settings.py:77 apps/users/constants.py:57 +msgid "Excellent" +msgstr "" + +#: apps/learning/settings.py:80 +msgid "Enrollment|Re-credit" +msgstr "" + +#: apps/learning/settings.py:137 apps/learning/settings.py:152 +msgid "Gradebook" +msgstr "" + +#: apps/learning/settings.py:138 apps/learning/settings.py:147 +msgid "Imported from CSV by Yandex.Login" +msgstr "" + +#: apps/learning/settings.py:139 apps/learning/settings.py:148 +msgid "Imported from CSV by stepik.org ID" +msgstr "" + +#: apps/learning/settings.py:140 apps/learning/settings.py:149 +msgid "Imported from CSV by LMS Student ID" +msgstr "" + +#: apps/learning/settings.py:141 apps/learning/settings.py:150 +msgid "Admin Panel" +msgstr "" + +#: apps/learning/settings.py:151 +msgid "Form on Assignment Detail Page" +msgstr "" + +#: apps/learning/settings.py:153 +msgid "Gerrit Webhook" +msgstr "" + +#: apps/learning/study/forms.py:35 +msgid "Update Draft" +msgstr "" + +#: apps/learning/study/forms.py:37 +msgid "Save Draft" +msgstr "" + +#: apps/learning/study/forms.py:42 +msgid "Send Comment" +msgstr "" + +#: apps/learning/study/forms.py:93 +msgid "" +msgstr "" + +#: apps/learning/study/views.py:241 +msgid "Comment successfully saved" +msgstr "" + +#: apps/learning/study/views.py:276 +msgid "Solution successfully saved" +msgstr "" + +#: apps/learning/tabs.py:20 +msgid "CourseTab|Contacts" +msgstr "Contacts" + +#: apps/learning/tabs.py:37 +msgid "CourseTab|News" +msgstr "News" + +#: apps/learning/tabs.py:51 +msgid "CourseTab|Reviews" +msgstr "Reviews" + +#: apps/learning/tests/test_assignments.py:55 +msgid "News" +msgstr "" + +#: apps/learning/tests/test_enrollment.py:85 +#: apps/learning/tests/test_enrollment.py:89 +#: apps/learning/tests/test_enrollment.py:109 +#: apps/learning/tests/test_enrollment.py:117 +msgid "Places available" +msgstr "" + +#: apps/learning/tests/test_enrollment.py:100 +#: apps/learning/tests/test_enrollment.py:131 +#: apps/learning/tests/test_enrollment.py:136 +msgid "Enroll in" +msgstr "" + +#: apps/learning/utils.py:71 +msgid "{} hrs {:02d} min" +msgstr "" + +#: apps/learning/views/enrollment.py:43 apps/learning/views/enrollment.py:68 +#: apps/learning/views/enrollment.py:133 apps/learning/views/enrollment.py:162 +msgid "No places available, sorry" +msgstr "" + +#: apps/learning/views/enrollment.py:62 apps/learning/views/enrollment.py:154 +msgid "You are successfully enrolled in the course" +msgstr "" + +#: apps/learning/views/enrollment.py:65 apps/learning/views/enrollment.py:158 +msgid "You are already enrolled in the course" +msgstr "" + +#: apps/library/admin.py:68 +msgid "Copies available" +msgstr "" + +#: apps/library/admin.py:82 apps/library/models.py:28 apps/library/models.py:61 +msgid "Book" +msgstr "" + +#: apps/library/apps.py:7 +msgid "Library" +msgstr "" + +#: apps/library/models.py:16 +msgid "Book Tag" +msgstr "" + +#: apps/library/models.py:17 +msgid "Book Tags" +msgstr "" + +#: apps/library/models.py:32 +msgid "Tag" +msgstr "" + +#: apps/library/models.py:39 apps/library/templates/library/stock_list.html:29 +msgid "Book|author" +msgstr "" + +#: apps/library/models.py:40 apps/library/templates/library/stock_list.html:28 +msgid "Book|title" +msgstr "" + +#: apps/library/models.py:42 +msgid "Book|description" +msgstr "" + +#: apps/library/models.py:44 +msgid "Book|cover" +msgstr "" + +#: apps/library/models.py:53 +msgid "book" +msgstr "" + +#: apps/library/models.py:54 +msgid "books" +msgstr "" + +#: apps/library/models.py:70 +msgid "Book|number of copies" +msgstr "" + +#: apps/library/models.py:75 +msgid "Stock" +msgstr "" + +#: apps/library/models.py:76 +msgid "Stocks" +msgstr "" + +#: apps/library/models.py:100 +msgid "Borrow|student" +msgstr "" + +#: apps/library/models.py:101 +msgid "Borrow|borrowed on" +msgstr "" + +#: apps/library/models.py:104 +msgid "Borrowed Book" +msgstr "" + +#: apps/library/models.py:105 +msgid "Borrowed Books" +msgstr "" + +#: apps/library/templates/library/stock_detail.html:31 +#: apps/library/templates/library/stock_list.html:30 +msgid "Book|read by" +msgstr "" + +#: apps/library/templates/library/stock_list.html:11 +msgid "library" +msgstr "" + +#: apps/library/templates/library/stock_list.html:31 +msgid "Book|number of copies left" +msgstr "" + +#: apps/notifications/models.py:87 +msgid "" +"Check if you want to save\n" +" related notifications in DB, but show,\n" +" that you are not using this notification type anymore." +msgstr "" + +#: apps/notifications/models.py:93 +msgid "Types" +msgstr "" + +#: apps/notifications/models.py:193 +msgid "Notification" +msgstr "" + +#: apps/staff/filters.py:57 apps/staff/filters.py:99 +msgid "Filter" +msgstr "" + +#: apps/staff/forms.py:13 +msgid "Date of Graduation" +msgstr "" + +#: apps/staff/models.py:16 +msgid "Hint" +msgstr "" + +#: apps/staff/models.py:17 +msgid "Warehouse" +msgstr "" + +#: apps/staff/templates/staff/gradebook_list.html:43 +#: apps/templates/learning/teaching/gradebook_list.html:27 +#: lms/templates/lms/course_offerings.html:85 +msgid "No courses yet" +msgstr "" + +#: apps/stats/apps.py:7 +msgid "Statistics" +msgstr "" + +#: apps/study_programs/apps.py:7 apps/study_programs/models.py:81 +msgid "Study Programs" +msgstr "" + +#: apps/study_programs/models.py:17 +msgid "PK|Code" +msgstr "" + +#: apps/study_programs/models.py:23 +msgid "AreaOfStudy|Name" +msgstr "" + +#: apps/study_programs/models.py:25 +msgid "AcademicDiscipline|cover" +msgstr "" + +#: apps/study_programs/models.py:29 +msgid "AcademicDiscipline|icon" +msgstr "" + +#: apps/study_programs/models.py:32 +msgid "AreaOfStudy|description" +msgstr "" + +#: apps/study_programs/models.py:37 +msgid "Area of study" +msgstr "" + +#: apps/study_programs/models.py:38 +msgid "Areas of study" +msgstr "" + +#: apps/study_programs/models.py:66 +msgid "Area of Study" +msgstr "" + +#: apps/study_programs/models.py:70 +msgid "Activity" +msgstr "" + +#: apps/study_programs/models.py:71 +msgid "" +"Show on syllabus page. Other activity flags for selected branch and academic " +"discipline will be deactivated." +msgstr "" + +#: apps/study_programs/models.py:75 +msgid "StudyProgram|description" +msgstr "" + +#: apps/study_programs/models.py:80 apps/study_programs/models.py:113 +msgid "Study Program" +msgstr "" + +#: apps/study_programs/models.py:109 +msgid "StudyProgramCourseGroup|courses" +msgstr "" + +#: apps/study_programs/models.py:110 +msgid "Courses will be grouped with boolean OR" +msgstr "" + +#: apps/study_programs/models.py:119 +msgid "Study Program Course" +msgstr "" + +#: apps/study_programs/models.py:120 +msgid "Study Program Courses" +msgstr "" + +#: apps/templates/admin/base_site.html:8 +msgid "Django site admin" +msgstr "" + +#: apps/templates/admin/base_site.html:13 +msgid "Django administration" +msgstr "" + +#: apps/templates/bootstrap_pagination/pagination.html:7 +msgid "First Page" +msgstr "" + +#: apps/templates/bootstrap_pagination/pagination.html:14 +msgid "Previous Page" +msgstr "" + +#: apps/templates/bootstrap_pagination/pagination.html:21 +msgid "Current Page" +msgstr "" + +#: apps/templates/bootstrap_pagination/pagination.html:25 +#, python-format +msgid "Page %(pagenum)s of %(num_pages)s" +msgstr "" + +#: apps/templates/bootstrap_pagination/pagination.html:32 +msgid "Next Page" +msgstr "" + +#: apps/templates/bootstrap_pagination/pagination.html:39 +msgid "Last Page" +msgstr "" + +#: apps/templates/courses/venue_list.html:9 +msgid "CSCenter learning venues" +msgstr "" + +#: apps/templates/emails/activation_email_body.txt:2 +#, python-format +msgid "" +"\n" +"You (or someone pretending to be you) have asked to register an account at\n" +"%(site_name)s. If this wasn't you, please ignore this email\n" +"and your address will be removed from our records.\n" +msgstr "" + +#: apps/templates/emails/activation_email_body.txt:7 +#, python-format +msgid "" +"\n" +"To activate this account, please click the following link within the next\n" +"%(expiration_days)s days:\n" +msgstr "" + +#: apps/templates/emails/activation_email_body.txt:14 +#, python-format +msgid "" +"\n" +"Sincerely,\n" +"%(site_name)s Management\n" +msgstr "" + +#: apps/templates/emails/activation_email_subject.txt:1 +msgid "Account activation on" +msgstr "" + +#: apps/templates/forms/simple_delete_confirmation.html:15 +msgid "Are you sure you want to delete" +msgstr "" + +#: apps/templates/forms/simple_delete_confirmation.html:20 +msgid "Delete" +msgstr "" + +#: apps/templates/international_schools/international_schools.html:6 +msgid "International Computer Science Student Schools" +msgstr "" + +#: apps/templates/international_schools/international_schools.html:7 +msgid "" +"\n" +" If you would like a school to be added to this list email the club " +"coordinator: Alexander Kulikov, kulikov()logic.pdmi.ras.ru
\n" +" Subscribe: Facebook\n" +" " +msgstr "" + +#: apps/templates/international_schools/international_schools.html:15 +msgctxt "international Schools" +msgid "Deadline" +msgstr "" + +#: apps/templates/international_schools/international_schools.html:17 +msgid "Dates" +msgstr "" + +#: apps/templates/international_schools/international_schools.html:18 +msgid "Location" +msgstr "" + +#: apps/templates/international_schools/international_schools.html:19 +msgid "Grants" +msgstr "" + +#: apps/templates/international_schools/international_schools.html:29 +msgid "yes" +msgstr "" + +#: apps/templates/international_schools/international_schools.html:29 +msgid "no" +msgstr "" + +#: apps/templates/learning/enrollment/enrollment_leave.html:17 +msgid "Why did you decide to unenroll in the course?" +msgstr "" + +#: apps/templates/learning/enrollment/enrollment_leave.html:23 +msgid "To leave the course" +msgstr "" + +#: apps/templates/learning/event_detail.html:19 +msgid "When" +msgstr "" + +#: apps/templates/learning/event_detail.html:23 +msgid "Where" +msgstr "" + +#: apps/templates/learning/invitation/activation_complete.html:4 +msgid "Account Activated" +msgstr "" + +#: apps/templates/learning/invitation/activation_fail.html:4 +msgid "Activation Failure" +msgstr "" + +#: apps/templates/learning/invitation/activation_fail.html:10 +msgid "Account activation failed." +msgstr "" + +#: apps/templates/learning/invitation/complete_profile.html:5 +#: apps/templates/learning/invitation/complete_profile.html:11 +msgid "Profile Update" +msgstr "" + +#: apps/templates/learning/invitation/complete_profile.html:43 +msgid "Continue" +msgstr "" + +#: apps/templates/learning/invitation/registration.html:5 +msgid "Register for an account" +msgstr "" + +#: apps/templates/learning/invitation/registration.html:13 +msgid "Registration" +msgstr "" + +#: apps/templates/learning/invitation/registration_complete.html:4 +msgid "Activation email sent" +msgstr "" + +#: apps/templates/learning/invitation/registration_complete.html:10 +msgid "Please check your email to complete the registration process." +msgstr "" + +#: apps/templates/learning/teaching/modal_update_assignment_comment.html:8 +#: apps/templates/projects/modal_update_report_comment.html:9 +msgid "Close" +msgstr "" + +#: apps/templates/login.html:5 +msgid "Log in" +msgstr "" + +#: apps/templates/login.html:35 +msgid "Password Reset" +msgstr "" + +#: apps/templates/login.html:35 +msgid "Forgot?" +msgstr "" + +#: apps/templates/login.html:38 +msgid "Sign in" +msgstr "" + +#: apps/templates/projects/project_detail.html:116 +msgid "Please correct the error below." +msgstr "" + +#: apps/templates/projects/project_detail.html:117 +msgid "Please correct the errors below." +msgstr "" + +#: apps/templates/registration/_password_reset_container.html:4 +#: apps/templates/registration/password_reset_complete.html:8 +#: apps/templates/registration/password_reset_done.html:4 +#: apps/templates/registration/password_reset_done.html:8 +#: apps/templates/registration/password_reset_form.html:6 +msgid "Password recovery" +msgstr "" + +#: apps/templates/registration/password_reset_complete.html:4 +msgid "Password successfully changed." +msgstr "" + +#: apps/templates/registration/password_reset_complete.html:9 +msgid "Password changed" +msgstr "" + +#: apps/templates/registration/password_reset_confirm.html:4 +#: apps/templates/registration/password_reset_confirm.html:12 +msgid "Change password" +msgstr "" + +#: apps/templates/registration/password_reset_confirm.html:7 +msgid "Password change" +msgstr "" + +#: apps/templates/registration/password_reset_confirm.html:15 +msgid "Sorry, the link is invalid" +msgstr "" + +#: apps/templates/registration/password_reset_done.html:9 +msgid "An email with instructions for setting a new password has been sent" +msgstr "" + +#: apps/templates/registration/password_reset_form.html:8 +msgid "Enter your email" +msgstr "" + +#: apps/templates/registration/password_reset_form.html:17 +msgid "Restore password" +msgstr "" + +#: apps/templates/users/reference_csc_detail.html:10 +msgid "Reference|Detail|request" +msgstr "" + +#: apps/templates/users/reference_csc_detail.html:12 +msgid "Reference|Detail|title" +msgstr "" + +#: apps/templates/users/reference_csc_detail.html:41 +msgid "Reference|Detail|signature" +msgstr "" + +#: apps/templates/users/reference_csc_detail.html:46 +msgid "Reference|Detail|info" +msgstr "" + +#: apps/universities/models.py:9 apps/universities/models.py:24 +msgid "Country" +msgstr "" + +#: apps/universities/models.py:10 +msgid "Countries" +msgstr "" + +#: apps/universities/models.py:20 apps/universities/models.py:42 +#: apps/universities/models.py:66 +msgid "External ID" +msgstr "" + +#: apps/universities/models.py:22 apps/universities/models.py:44 +#: apps/universities/models.py:68 apps/users/models.py:264 +msgid "Display Name" +msgstr "" + +#: apps/universities/models.py:75 +msgid "Faculty" +msgstr "" + +#: apps/universities/models.py:76 +msgid "Faculties" +msgstr "" + +#: apps/users/admin.py:57 +msgid "Create Student Profile before adding student permissions" +msgstr "" + +#: apps/users/admin.py:62 +msgid "Selected branch does not match branch {} from the student profile" +msgstr "" + +#: apps/users/admin.py:68 +msgid "You have to specify branch for user before adding teacher permissions" +msgstr "" + +#: apps/users/admin.py:72 +msgid "Assign branch relative to the selected site" +msgstr "" + +#: apps/users/admin.py:82 apps/users/admin.py:135 +msgid "Permissions" +msgstr "" + +#: apps/users/admin.py:130 +msgid "Personal info" +msgstr "" + +#: apps/users/admin.py:137 +msgid "External services" +msgstr "" + +#: apps/users/admin.py:141 +msgid "Important dates" +msgstr "" + +#: apps/users/admin.py:209 +msgid "" +"Regular student profile already exists for this admission campaign year." +msgstr "" + +#: apps/users/admin.py:229 +msgid "Official Student Info" +msgstr "" + +#: apps/users/admin.py:233 +msgid "Curator's note" +msgstr "" + +#: apps/users/admin.py:259 apps/users/forms.py:25 apps/users/models.py:345 +msgid "Date of Birth" +msgstr "" + +#: apps/users/admin.py:278 +msgid "Anytask" +msgstr "" + +#: apps/users/apps.py:7 +msgid "Users" +msgstr "" + +#: apps/users/constants.py:10 +msgid "Male" +msgstr "" + +#: apps/users/constants.py:11 +msgid "Female" +msgstr "" + +#: apps/users/constants.py:12 +msgid "Other/Prefer Not to Say" +msgstr "" + +#: apps/users/constants.py:41 +msgid "Interviewer [Admission]" +msgstr "" + +#: apps/users/constants.py:42 +msgid "Project reviewer" +msgstr "" + +#: apps/users/constants.py:43 +msgid "Curator of projects" +msgstr "" + +#: apps/users/constants.py:54 +msgid "SHADCourseGrade|Unsatisfactory" +msgstr "" + +#: apps/users/constants.py:55 +msgid "SHADCourseGrade|Pass" +msgstr "" + +#: apps/users/forms.py:77 +msgid "Tell something about yourself" +msgstr "" + +#: apps/users/forms.py:82 apps/users/models.py:405 +msgid "will be shown only to logged-in users" +msgstr "" + +#: apps/users/forms.py:85 +msgid "stepik.org/users/USER_ID" +msgstr "" + +#: apps/users/forms.py:86 +msgid "codeforces.com/profile/HANDLE" +msgstr "" + +#: apps/users/forms.py:87 +msgid "Specify one or more jobs (comma-separated)" +msgstr "" + +#: apps/users/models.py:146 +msgid "name" +msgstr "" + +#: apps/users/models.py:149 +msgid "group" +msgstr "" + +#: apps/users/models.py:150 +msgid "groups" +msgstr "" + +#: apps/users/models.py:189 +msgid "Access Group" +msgstr "" + +#: apps/users/models.py:190 +msgid "Access Groups" +msgstr "" + +#: apps/users/models.py:225 +msgid "Index Redirect Option" +msgstr "" + +#: apps/users/models.py:260 +msgid "Yandex UID" +msgstr "" + +#: apps/users/models.py:262 apps/users/models.py:303 +msgid "first name" +msgstr "" + +#: apps/users/models.py:263 apps/users/models.py:304 +msgid "last name" +msgstr "" + +#: apps/users/models.py:265 +msgid "Real name" +msgstr "" + +#: apps/users/models.py:279 +msgid "Data from Yandex.ID" +msgstr "" + +#: apps/users/models.py:294 +msgid "username" +msgstr "" + +#: apps/users/models.py:297 +msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only." +msgstr "" + +#: apps/users/models.py:300 +msgid "A user with that username already exists." +msgstr "" + +#: apps/users/models.py:306 +msgid "CSCUser|patronymic" +msgstr "" + +#: apps/users/models.py:309 +msgid "email address" +msgstr "" + +#: apps/users/models.py:311 +msgid "staff status" +msgstr "" + +#: apps/users/models.py:313 +msgid "Designates whether the user can log into this admin site." +msgstr "" + +#: apps/users/models.py:316 +msgid "active" +msgstr "" + +#: apps/users/models.py:319 +msgid "" +"Designates whether this user should be treated as active. Unselect this " +"instead of deleting accounts." +msgstr "" + +#: apps/users/models.py:324 +msgid "superuser status" +msgstr "" + +#: apps/users/models.py:327 +msgid "" +"Designates that this user has all permissions without explicitly assigning " +"them." +msgstr "" + +#: apps/users/models.py:333 +msgid "notification permission status" +msgstr "" + +#: apps/users/models.py:336 +msgid "Designates that this user enabled email notifications " +msgstr "" + +#: apps/users/models.py:339 +msgid "Gender" +msgstr "" + +#: apps/users/models.py:342 +msgid "Phone" +msgstr "" + +#: apps/users/models.py:346 +msgid "date joined" +msgstr "" + +#: apps/users/models.py:349 +msgid "CSCUser|photo" +msgstr "" + +#: apps/users/models.py:364 +msgid "CSCUser|note" +msgstr "" + +#: apps/users/models.py:376 +msgid "Github Login" +msgstr "" + +#: apps/users/models.py:381 +msgid "Telegram" +msgstr "" + +#: apps/users/models.py:390 +msgid "stepik.org ID" +msgstr "" + +#: apps/users/models.py:393 +msgid "Anytask URL" +msgstr "" + +#: apps/users/models.py:395 +msgid "Social Networks" +msgstr "" + +#: apps/users/models.py:398 +msgid "will be shown to curators only" +msgstr "" + +#: apps/users/models.py:402 +msgid "Contact information" +msgstr "" + +#: apps/users/models.py:408 +msgid "Workplace" +msgstr "" + +#: apps/users/models.py:418 +msgid "CSCUser|user" +msgstr "" + +#: apps/users/models.py:419 +msgid "CSCUser|users" +msgstr "" + +#: apps/users/models.py:742 +msgid "Regular Student" +msgstr "" + +#: apps/users/models.py:744 +msgid "Invited Student" +msgstr "" + +#: apps/users/models.py:772 +msgid "Partner Tag" +msgstr "" + +#: apps/users/models.py:773 +msgid "Partner Tags" +msgstr "" + +#: apps/users/models.py:786 +msgid "Priority" +msgstr "" + +#: apps/users/models.py:791 +msgid "Magistracy" +msgstr "" + +#: apps/users/models.py:811 +msgid "Student|admission year" +msgstr "" + +#: apps/users/models.py:813 +msgid "CSCUser|Curriculum year" +msgstr "" + +#: apps/users/models.py:822 +msgid "StudentInfo|University year" +msgstr "" + +#: apps/users/models.py:827 +msgid "Official Student" +msgstr "" + +#: apps/users/models.py:828 +msgid "Passport, consent for processing personal data, diploma (optional)" +msgstr "" + +#: apps/users/models.py:832 +msgid "Paid Basis" +msgstr "" + +#: apps/users/models.py:838 +msgid "Number of higher education diploma" +msgstr "" + +#: apps/users/models.py:846 +msgid "Diploma Issued by" +msgstr "" + +#: apps/users/models.py:859 +msgid "Comment changed" +msgstr "" + +#: apps/users/models.py:865 +msgid "Author of last edit" +msgstr "" + +#: apps/users/models.py:883 +msgid "Student Profiles" +msgstr "" + +#: apps/users/models.py:913 +msgid "Value should be >= {} (year of the branch establishment)" +msgstr "" + +#: apps/users/models.py:935 apps/users/models.py:993 +msgid "Studying" +msgstr "" + +#: apps/users/models.py:984 +msgid "Student Status Log" +msgstr "" + +#: apps/users/models.py:1006 +msgid "Online course record" +msgstr "" + +#: apps/users/models.py:1007 +msgid "Online course records" +msgstr "" + +#: apps/users/models.py:1032 +msgid "SHAD course record" +msgstr "" + +#: apps/users/models.py:1033 +msgid "SHAD course records" +msgstr "" + +#: apps/users/models.py:1044 +msgid "Reference|signature" +msgstr "" + +#: apps/users/models.py:1045 +msgid "Reference|note" +msgstr "" + +#: apps/users/models.py:1053 +msgid "Student Reference" +msgstr "" + +#: apps/users/models.py:1054 +msgid "Student References" +msgstr "" + +#: apps/users/tests/test_certificates_of_participation.py:81 +#: apps/users/tests/test_certificates_of_participation.py:89 +msgid "Create reference" +msgstr "" + +#: apps/users/tests/test_certificates_of_participation.py:104 +#: apps/users/tests/test_certificates_of_participation.py:109 +msgid "Student references" +msgstr "" + +#: lk_yandexdataschool_ru/apps/application/apps.py:7 +msgid "Application" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:10 +#, fuzzy +#| msgid "CourseTab|News" +msgctxt "menu" +msgid "Courses" +msgstr "News" + +#: lk_yandexdataschool_ru/menu.py:18 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:22 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:23 +msgctxt "menu" +msgid " " +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:24 lk_yandexdataschool_ru/menu.py:56 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:25 lk_yandexdataschool_ru/menu.py:60 +msgctxt "menu" +msgid " " +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:26 lk_yandexdataschool_ru/menu.py:69 +#: lk_yandexdataschool_ru/menu.py:101 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:27 +msgctxt "menu" +msgid " " +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:28 +msgctxt "menu" +msgid " " +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:37 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:42 +msgctxt "menu" +msgid " " +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:51 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:65 lk_yandexdataschool_ru/menu.py:96 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:78 lk_yandexdataschool_ru/menu.py:83 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:82 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:84 +msgctxt "menu" +msgid " " +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:85 +msgctxt "menu" +msgid " " +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:92 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:97 +msgctxt "menu" +msgid " " +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:98 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:102 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:103 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:108 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:112 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:113 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:114 +msgctxt "menu" +msgid " " +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:115 +msgctxt "menu" +msgid "" +msgstr "" + +#: lk_yandexdataschool_ru/menu.py:116 +msgctxt "menu" +msgid "" +msgstr "" + +#: lms/jinja2/lms/layouts/v1_base.html:66 lms/templates/base.html:61 +msgid "." +msgstr "" + +#: lms/jinja2/lms/layouts/v2_base.html:46 +msgid "Privacy Policy" +msgstr "" + +#: lms/templates/_top_menu.html:37 +msgid "Profile" +msgstr "" + +#: lms/templates/_top_menu.html:43 +msgid "Logout" +msgstr "" + +#: lms/templates/base.html:75 +msgid "close all" +msgstr "" + +#: lms/templates/lms/course_offerings.html:15 +#: lms/templates/lms/course_offerings.html:74 +msgid "CS club course" +msgstr "" + +#: lms/views.py:104 +msgctxt "adjective" +msgid "autumn" +msgstr "" + +#: lms/views.py:105 +msgctxt "adjective" +msgid "spring" +msgstr "" diff --git a/locale/ru/LC_MESSAGES/django.po b/locale/ru/LC_MESSAGES/django.po index f544bc15f6..928fc7f3ff 100644 --- a/locale/ru/LC_MESSAGES/django.po +++ b/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-30 01:19+0000\n" +"POT-Creation-Date: 2024-02-27 18:28+0300\n" "PO-Revision-Date: 2023-03-30 01:14+0000\n" "Last-Translator: \n" "Language-Team: LANGUAGE \n" @@ -16,8 +16,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Translated-Using: django-rosetta 0.9.8\n" #: apps/api/admin.py:24 @@ -101,8 +101,7 @@ msgstr "Пароль" msgid "You can also restore your password" msgstr "Вы также можете восстановить ваш пароль" -#: apps/auth/forms.py:64 lms/jinja2/lms/layouts/_top_menu.html:47 -#: lms/templates/_top_menu.html:50 +#: apps/auth/forms.py:64 lms/templates/_top_menu.html:50 msgid "Login" msgstr "Войти" @@ -176,30 +175,26 @@ msgstr "Кем изменено" #: apps/core/forms.py:7 apps/templates/forms/simple_delete_confirmation.html:22 #: apps/templates/learning/enrollment/enrollment_leave.html:25 -#: lms/jinja2/lms/courses/course_class_form.html:79 msgid "Cancel" msgstr "Отмена" #: apps/core/forms.py:10 apps/users/forms.py:97 -#: lms/jinja2/lms/courses/course_class_form.html:80 -#: lms/jinja2/lms/gradebook/gradebook_form.html:33 -#: lms/jinja2/lms/user_profile/_profile_upload_photo.html:40 msgid "Save" msgstr "Сохранить" #: apps/core/models.py:37 msgid "" -"How to style text read here. Partially HTML is enabled too." +"How to style text read here. Partially HTML is enabled too." msgstr "" "В вашем распоряжении Markdown, Latex для формул и HTML. Памятку по " -"оформлению можно найти по ссылке." +"оформлению можно найти по ссылке." #: apps/core/models.py:40 msgid "" -"How to style text read here." +"How to style text read here." msgstr "" "Как правильно оформлять текст, читайте по ссылке." @@ -254,15 +249,14 @@ msgstr "Местонахождение" #: apps/core/models.py:273 apps/faq/models.py:11 apps/faq/models.py:27 #: apps/info_blocks/models.py:43 apps/learning/models.py:280 #: apps/study_programs/models.py:19 apps/users/models.py:170 -#: apps/users/models.py:770 +#: apps/users/models.py:778 msgid "Site" msgstr "Сайт" #: apps/core/models.py:279 apps/core/models.py:334 apps/courses/forms.py:171 #: apps/courses/models.py:70 apps/courses/models.py:280 -#: apps/courses/models.py:824 apps/learning/models.py:1067 +#: apps/courses/models.py:825 apps/learning/models.py:1067 #: apps/templates/learning/event_detail.html:29 -#: lms/jinja2/lms/courses/course_class_detail.html:53 msgid "Description" msgstr "Описание" @@ -271,13 +265,12 @@ msgid "Branch|Description" msgstr "Общее описание, правила обучения" #: apps/core/models.py:291 apps/courses/models.py:61 apps/courses/models.py:235 -#: apps/courses/models.py:592 apps/learning/admin.py:67 +#: apps/courses/models.py:593 apps/learning/admin.py:67 #: apps/learning/gradebook/views.py:231 apps/learning/models.py:77 #: apps/learning/models.py:519 apps/learning/models.py:1057 #: apps/library/models.py:66 apps/study_programs/models.py:61 #: apps/templates/learning/invitation/complete_profile.html:23 -#: apps/users/models.py:176 apps/users/models.py:350 apps/users/models.py:794 -#: lms/jinja2/lms/courses/meta_detail.html:27 +#: apps/users/models.py:176 apps/users/models.py:358 apps/users/models.py:802 msgid "Branch" msgstr "Отделение" @@ -305,8 +298,8 @@ msgstr "Как добраться" msgid "Flags" msgstr "Флаги" -#: apps/core/models.py:343 apps/courses/models.py:856 -#: apps/courses/models.py:1018 +#: apps/core/models.py:343 apps/courses/models.py:857 +#: apps/courses/models.py:1019 msgid "Class" msgstr "Занятие" @@ -331,8 +324,7 @@ msgid "Name" msgstr "Имя" #: apps/core/models.py:373 apps/universities/models.py:51 -#: apps/universities/models.py:70 apps/users/models.py:810 -#: lms/jinja2/lms/user_profile/_tab_student_profiles.html:118 +#: apps/universities/models.py:70 apps/users/models.py:818 msgid "University" msgstr "Университет" @@ -345,7 +337,7 @@ msgstr "Университеты" msgid "created" msgstr "Создан" -#: apps/core/models.py:385 apps/grading/models.py:86 apps/users/models.py:339 +#: apps/core/models.py:385 apps/grading/models.py:86 apps/users/models.py:347 msgid "modified" msgstr "изменено" @@ -406,7 +398,7 @@ msgstr "" "Пожалуйста, перепроверьте список выбранных преподавателей. Кто-то из них не " "имеет отношения к выбранному прочтению курса." -#: apps/courses/admin.py:253 apps/courses/models.py:1071 +#: apps/courses/admin.py:253 apps/courses/models.py:1072 msgid "Assignment|deadline" msgstr "Срок сдачи" @@ -455,15 +447,11 @@ msgstr "лето" msgid "autumn" msgstr "осень" -#: apps/courses/constants.py:36 lms/jinja2/lms/courses/course_detail.html:111 -#: lms/jinja2/lms/learning/timetable.html:55 -#: lms/jinja2/lms/teaching/timetable.html:53 +#: apps/courses/constants.py:36 msgid "Lecture" msgstr "Лекция" -#: apps/courses/constants.py:37 lms/jinja2/lms/courses/course_detail.html:111 -#: lms/jinja2/lms/learning/timetable.html:57 -#: lms/jinja2/lms/teaching/timetable.html:55 +#: apps/courses/constants.py:37 msgid "Seminar" msgstr "Семинар" @@ -568,8 +556,8 @@ msgstr "Студенческие группы сбалансированно" msgid "To all groups" msgstr "Всем группам" -#: apps/courses/forms.py:67 apps/courses/models.py:188 apps/users/models.py:993 -#: apps/users/models.py:1010 +#: apps/courses/forms.py:67 apps/courses/models.py:188 +#: apps/users/models.py:1001 apps/users/models.py:1018 msgid "Course|name" msgstr "Название" @@ -580,7 +568,6 @@ msgstr "Описание" #: apps/courses/forms.py:134 apps/courses/forms.py:297 #: apps/info_blocks/models.py:40 apps/learning/gallery/models.py:34 #: apps/templates/international_schools/international_schools.html:16 -#: lms/jinja2/lms/courses/course_detail.html:144 msgid "Title" msgstr "Название" @@ -592,24 +579,21 @@ msgstr "Текст" msgid "Venue" msgstr "Место проведения" -#: apps/courses/forms.py:165 apps/courses/models.py:814 -#: apps/notifications/models.py:92 apps/users/models.py:774 +#: apps/courses/forms.py:165 apps/courses/models.py:815 +#: apps/notifications/models.py:92 apps/users/models.py:782 msgid "Type" msgstr "Тип" -#: apps/courses/forms.py:168 apps/courses/models.py:822 +#: apps/courses/forms.py:168 apps/courses/models.py:823 #: apps/learning/models.py:1065 msgid "CourseClass|Name" msgstr "Название" -#: apps/courses/forms.py:176 apps/courses/models.py:828 -#: lms/jinja2/lms/courses/course_class_detail.html:46 +#: apps/courses/forms.py:176 apps/courses/models.py:829 msgid "Slides" msgstr "Слайды" #: apps/courses/forms.py:180 apps/courses/forms.py:312 -#: lms/jinja2/lms/courses/course_class_detail.html:66 -#: lms/jinja2/lms/teaching/assignment_detail.html:54 msgid "Attached files" msgstr "Приложенные файлы" @@ -617,11 +601,11 @@ msgstr "Приложенные файлы" msgid "You can select multiple files" msgstr "Вы можете выбрать несколько файлов" -#: apps/courses/forms.py:185 apps/courses/models.py:840 +#: apps/courses/forms.py:185 apps/courses/models.py:841 msgid "CourseClass|Other materials" msgstr "Другие материалы" -#: apps/courses/forms.py:190 apps/courses/models.py:817 +#: apps/courses/forms.py:190 apps/courses/models.py:818 #: apps/learning/models.py:1070 msgid "Date" msgstr "Дата" @@ -630,7 +614,7 @@ msgstr "Дата" msgid "Format: dd.mm.yyyy" msgstr "Формат: дд.мм.гггг" -#: apps/courses/forms.py:195 apps/courses/models.py:818 +#: apps/courses/forms.py:195 apps/courses/models.py:819 #: apps/learning/models.py:1071 msgid "Starts at" msgstr "Начало" @@ -639,14 +623,14 @@ msgstr "Начало" msgid "Format: hh:mm" msgstr "Формат: чч:мм" -#: apps/courses/forms.py:199 apps/courses/models.py:819 +#: apps/courses/forms.py:199 apps/courses/models.py:820 #: apps/learning/models.py:1072 msgid "Ends at" msgstr "Конец" #: apps/courses/forms.py:203 apps/courses/forms.py:309 -#: apps/courses/models.py:820 apps/courses/models.py:1072 -#: apps/users/models.py:354 lms/jinja2/lms/user_profile/_tab_account.html:116 +#: apps/courses/models.py:821 apps/courses/models.py:1073 +#: apps/users/models.py:362 msgid "Time Zone" msgstr "Часовой пояс" @@ -684,29 +668,19 @@ msgid "" "for this problem." msgstr "" -#: apps/courses/forms.py:304 lms/jinja2/lms/courses/course_detail.html:143 -#: lms/jinja2/lms/study/assignment_list.html:24 -#: lms/jinja2/lms/study/assignment_list.html:86 -#: lms/jinja2/lms/study/student_assignment_detail.html:141 -#: lms/jinja2/lms/teaching/assignment_detail.html:35 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:232 +#: apps/courses/forms.py:304 msgid "Deadline" msgstr "Срок сдачи" -#: apps/courses/forms.py:317 apps/courses/models.py:1084 -#: lms/jinja2/lms/study/student_assignment_detail.html:147 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:240 +#: apps/courses/forms.py:317 apps/courses/models.py:1085 msgid "Passing score" msgstr "Проходной балл" -#: apps/courses/forms.py:320 apps/courses/models.py:1088 +#: apps/courses/forms.py:320 apps/courses/models.py:1089 msgid "Maximum score" msgstr "Максимальный балл" -#: apps/courses/forms.py:323 apps/courses/models.py:1092 -#: lms/jinja2/lms/study/student_assignment_detail.html:150 -#: lms/jinja2/lms/teaching/assignment_detail.html:42 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:245 +#: apps/courses/forms.py:323 apps/courses/models.py:1093 msgid "Assignment Weight" msgstr "Вес задания" @@ -716,11 +690,11 @@ msgid "" "the gradebook." msgstr "Вклад задания в сумму баллов по курсу." -#: apps/courses/forms.py:330 apps/courses/models.py:1097 +#: apps/courses/forms.py:330 apps/courses/models.py:1098 msgid "Time to Completion" msgstr "Время для завершения" -#: apps/courses/forms.py:332 apps/courses/models.py:1099 +#: apps/courses/forms.py:332 apps/courses/models.py:1100 msgid "Estimated amount of time required for the task to be completed" msgstr "" "Сколько, по вашему мнению, студенту потребуется времени, чтобы выполнить " @@ -739,7 +713,7 @@ msgid "Restrict assignment to selected groups. Available to all by default." msgstr "" "Задание будет доступно только выбранным группам. По умолчанию доступно всем." -#: apps/courses/forms.py:342 apps/courses/models.py:1119 +#: apps/courses/forms.py:342 apps/courses/models.py:1120 #: apps/grading/models.py:32 apps/grading/models.py:52 msgid "Checking System" msgstr "Проверяющая система" @@ -770,7 +744,7 @@ msgid "Teacher" msgstr "Преподаватель" #: apps/courses/forms.py:556 apps/learning/models.py:225 -#: apps/users/models.py:1011 +#: apps/users/models.py:1019 msgid "Teachers" msgstr "Преподаватели" @@ -817,10 +791,7 @@ msgstr "Системное поле. Используется для сорти #: apps/courses/models.py:115 apps/courses/models.py:271 #: apps/learning/gallery/models.py:83 apps/learning/models.py:284 #: apps/learning/models.py:515 apps/users/admin.py:181 -#: apps/users/models.py:1014 lms/jinja2/lms/courses/meta_detail.html:26 -#: lms/jinja2/lms/courses/teacher_detail.html:32 -#: lms/jinja2/lms/study/course_list.html:103 -#: lms/jinja2/lms/teaching/course_list.html:11 +#: apps/users/models.py:1022 msgid "Semester" msgstr "Семестр" @@ -849,14 +820,9 @@ msgid "MetaCourse|cover" msgstr "Обложка" #: apps/courses/models.py:210 apps/courses/models.py:253 -#: apps/courses/models.py:596 apps/courses/models.py:724 -#: apps/courses/models.py:807 apps/learning/admin.py:239 +#: apps/courses/models.py:597 apps/courses/models.py:725 +#: apps/courses/models.py:808 apps/learning/admin.py:239 #: apps/learning/study/forms.py:77 -#: lms/jinja2/lms/courses/teacher_detail.html:31 -#: lms/jinja2/lms/learning/timetable.html:34 -#: lms/jinja2/lms/study/assignment_list.html:26 -#: lms/jinja2/lms/study/assignment_list.html:88 -#: lms/jinja2/lms/teaching/timetable.html:36 msgid "Course" msgstr "Курс" @@ -870,7 +836,7 @@ msgstr "Ручной" #: apps/courses/models.py:236 apps/learning/models.py:84 #: apps/learning/models.py:152 apps/learning/models.py:386 -#: apps/learning/models.py:536 apps/users/models.py:864 +#: apps/learning/models.py:536 apps/users/models.py:872 msgid "Invitation" msgstr "Приглашение" @@ -922,7 +888,7 @@ msgstr "" "Поле увидят только слушатели курса. Доступны LaTeX для формул, Markdown и " "HTML" -#: apps/courses/models.py:289 lms/jinja2/lms/courses/course_detail.html:58 +#: apps/courses/models.py:289 msgid "Contacts" msgstr "Контакты" @@ -936,7 +902,7 @@ msgstr "" "Если оставить пустым, то ссылка будет генерироваться на основе последнего " "активного опроса." -#: apps/courses/models.py:297 apps/users/models.py:994 +#: apps/courses/models.py:297 apps/users/models.py:1002 msgid "Online Course URL" msgstr "URL онлайн-курса" @@ -972,11 +938,11 @@ msgstr "Публиковать в разделе «Видео»" msgid "Do we see this course in certificates and diplomas?" msgstr "Отображается ли курс в справках и дипломах" -#: apps/courses/models.py:317 apps/courses/models.py:599 +#: apps/courses/models.py:317 apps/courses/models.py:600 msgid "Main Branch" msgstr "Главное отделение" -#: apps/courses/models.py:322 apps/courses/models.py:604 +#: apps/courses/models.py:322 apps/courses/models.py:605 msgid "Course Branches" msgstr "Отделения курса" @@ -1001,7 +967,7 @@ msgstr "Язык" msgid "The language in which lectures are given." msgstr "Укажите язык прочтения лекций." -#: apps/courses/models.py:340 apps/courses/models.py:844 +#: apps/courses/models.py:340 apps/courses/models.py:845 msgid "Materials Visibility" msgstr "Видимость материалов" @@ -1017,185 +983,175 @@ msgstr "Публичные слайды" msgid "Public Attachments" msgstr "Публичные приложения" -#: apps/courses/models.py:374 apps/courses/models.py:1069 +#: apps/courses/models.py:374 apps/courses/models.py:1070 #: apps/learning/gallery/models.py:49 apps/learning/models.py:67 #: apps/learning/models.py:358 apps/learning/models.py:472 -#: lms/jinja2/lms/user_profile/_tab_assignments.html:10 msgid "Course offering" msgstr "Прочтение курса" -#: apps/courses/models.py:375 lms/jinja2/lms/courses/teacher_detail.html:27 +#: apps/courses/models.py:375 msgid "Course offerings" msgstr "Прочтения курсов" -#: apps/courses/models.py:603 +#: apps/courses/models.py:604 msgid "Course Branch" msgstr "Отделение курса" -#: apps/courses/models.py:636 apps/notifications/models.py:194 +#: apps/courses/models.py:637 apps/notifications/models.py:194 msgid "Notifications" msgstr "Уведомления" -#: apps/courses/models.py:642 +#: apps/courses/models.py:643 msgid "Course Teacher" msgstr "Преподаватель курса" -#: apps/courses/models.py:643 +#: apps/courses/models.py:644 msgid "Course Teachers" msgstr "Преподаватели курса" -#: apps/courses/models.py:700 apps/courses/models.py:729 +#: apps/courses/models.py:701 apps/courses/models.py:730 #: apps/learning/models.py:451 apps/learning/models.py:852 -#: apps/users/models.py:972 +#: apps/users/models.py:980 msgid "Author" msgstr "Автор" -#: apps/courses/models.py:704 +#: apps/courses/models.py:705 msgid "CourseReview|text" msgstr "Текст" -#: apps/courses/models.py:712 +#: apps/courses/models.py:713 msgid "Course Review" msgstr "Отзыв о курсе" -#: apps/courses/models.py:713 +#: apps/courses/models.py:714 msgid "Course Reviews" msgstr "Отзывы о курсе" -#: apps/courses/models.py:726 +#: apps/courses/models.py:727 msgid "CourseNews|title" msgstr "Заголовок" -#: apps/courses/models.py:732 +#: apps/courses/models.py:733 msgid "CourseNews|text" msgstr "Текст" -#: apps/courses/models.py:737 +#: apps/courses/models.py:738 msgid "Course news-singular" msgstr "Новость" -#: apps/courses/models.py:738 +#: apps/courses/models.py:739 msgid "Course news-plural" msgstr "Новости" -#: apps/courses/models.py:811 apps/learning/models.py:1062 +#: apps/courses/models.py:812 apps/learning/models.py:1062 msgid "CourseClass|Venue" msgstr "Место проведения" -#: apps/courses/models.py:833 +#: apps/courses/models.py:834 msgid "SlideShare URL" msgstr "SlideShare URL" -#: apps/courses/models.py:835 +#: apps/courses/models.py:836 msgid "Video Recording" msgstr "Видео" -#: apps/courses/models.py:837 +#: apps/courses/models.py:838 msgid "Both YouTube and Yandex Video are supported" msgstr "Поддерживаются ссылки на YouTube и Яндекс.Видео" -#: apps/courses/models.py:846 +#: apps/courses/models.py:847 msgid "Slides, attachments and other materials" msgstr "Слайды, приложенные файлы и др." -#: apps/courses/models.py:850 apps/courses/models.py:1113 +#: apps/courses/models.py:851 apps/courses/models.py:1114 #: apps/learning/gradebook/forms.py:120 apps/learning/models.py:221 -#: lms/jinja2/lms/staff/student_search.html:59 msgid "Groups" msgstr "Группы" -#: apps/courses/models.py:857 apps/learning/icalendar.py:232 +#: apps/courses/models.py:858 apps/learning/icalendar.py:232 msgid "Classes" msgstr "Занятия" -#: apps/courses/models.py:872 +#: apps/courses/models.py:873 msgid "Class should end after it started" msgstr "Конец занятия должен быть позже начала" -#: apps/courses/models.py:973 +#: apps/courses/models.py:974 msgid "slides" msgstr "слайды" -#: apps/courses/models.py:977 +#: apps/courses/models.py:978 msgid "video" msgstr "видео" -#: apps/courses/models.py:985 +#: apps/courses/models.py:986 msgid "files" msgstr "файлы" -#: apps/courses/models.py:989 +#: apps/courses/models.py:990 msgid "other" msgstr "другое" -#: apps/courses/models.py:1027 +#: apps/courses/models.py:1028 msgid "Class attachment" msgstr "Приложение к занятию" -#: apps/courses/models.py:1028 +#: apps/courses/models.py:1029 msgid "Class attachments" msgstr "Приложения к занятию" -#: apps/courses/models.py:1075 apps/learning/study/forms.py:62 -#: lms/jinja2/lms/courses/course_detail.html:145 -#: lms/jinja2/lms/study/assignment_list.html:28 -#: lms/jinja2/lms/study/assignment_list.html:90 -#: lms/jinja2/lms/study/student_assignment_detail.html:144 -#: lms/jinja2/lms/teaching/assignment_detail.html:39 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:237 +#: apps/courses/models.py:1076 apps/learning/study/forms.py:62 msgid "Assignment Format" msgstr "Формат задания" -#: apps/courses/models.py:1079 +#: apps/courses/models.py:1080 msgid "Assignment|name" msgstr "Название" -#: apps/courses/models.py:1081 +#: apps/courses/models.py:1082 msgid "Assignment|text" msgstr "Текст" -#: apps/courses/models.py:1101 +#: apps/courses/models.py:1102 msgid "Assignee mode" msgstr "Режим назначения" -#: apps/courses/models.py:1102 +#: apps/courses/models.py:1103 msgid "Automatic assignment mode of a responsible teacher" msgstr "Режим автоматического назначения ответственного преподавателя" -#: apps/courses/models.py:1107 +#: apps/courses/models.py:1108 msgid "Assignment Assignees" msgstr "Ответственные за задание" -#: apps/courses/models.py:1108 +#: apps/courses/models.py:1109 msgid "Has lower priority than student group assignees" msgstr "Приоритет ниже, чем у ответственных за студенческие группы" -#: apps/courses/models.py:1130 apps/courses/models.py:1232 +#: apps/courses/models.py:1131 apps/courses/models.py:1233 #: apps/grading/admin.py:25 apps/learning/admin.py:258 #: apps/learning/models.py:174 apps/learning/models.py:215 #: apps/learning/models.py:240 -#: lms/jinja2/lms/user_profile/_tab_assignments.html:11 msgid "Assignment" msgstr "Задание" -#: apps/courses/models.py:1131 apps/learning/icalendar.py:233 -#: lms/jinja2/lms/user_profile/_tab_assignments.html:3 +#: apps/courses/models.py:1132 apps/learning/icalendar.py:233 msgid "Assignments" msgstr "Задания" -#: apps/courses/models.py:1140 +#: apps/courses/models.py:1141 msgid "Course modification is not allowed" msgstr "Изменение курса запрещено" -#: apps/courses/models.py:1142 +#: apps/courses/models.py:1143 msgid "Passing score should be less than (or equal to) maximum one" msgstr " Проходной балл должен быть меньше или равен максимальному баллу" -#: apps/courses/models.py:1240 +#: apps/courses/models.py:1241 msgid "Assignment attachment" msgstr "Приложение к заданию" -#: apps/courses/models.py:1241 +#: apps/courses/models.py:1242 msgid "Assignment attachments" msgstr "Приложения к заданиям" @@ -1260,12 +1216,8 @@ msgstr "Вопросы" #: apps/grading/admin.py:29 apps/learning/admin.py:307 #: apps/learning/models.py:350 apps/learning/roles.py:92 -#: apps/users/constants.py:36 apps/users/models.py:789 apps/users/models.py:967 -#: apps/users/models.py:991 apps/users/models.py:1008 apps/users/models.py:1040 -#: lms/jinja2/lms/projects/project_report.html:261 -#: lms/jinja2/lms/study/student_assignment_detail.html:138 -#: lms/jinja2/lms/teaching/assignment_detail.html:75 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:191 +#: apps/users/constants.py:36 apps/users/models.py:797 apps/users/models.py:975 +#: apps/users/models.py:999 apps/users/models.py:1016 apps/users/models.py:1048 msgid "Student" msgstr "Студент" @@ -1351,8 +1303,7 @@ msgstr "Посылка к заданию" #: apps/grading/models.py:93 apps/learning/forms.py:76 #: apps/learning/study/forms.py:69 apps/users/models.py:221 -#: apps/users/models.py:799 apps/users/models.py:963 -#: lms/jinja2/lms/staff/student_search.html:69 +#: apps/users/models.py:807 apps/users/models.py:971 msgid "Status" msgstr "Статус" @@ -1462,8 +1413,7 @@ msgid "Learning" msgstr "Обучение" #: apps/learning/forms.py:61 apps/learning/models.py:825 -#: apps/users/models.py:847 -#: lms/jinja2/lms/user_profile/_tab_student_profiles.html:137 +#: apps/users/models.py:855 msgid "Comment" msgstr "Комментарий" @@ -1476,7 +1426,6 @@ msgid "Form is empty." msgstr "Недостаточно данных." #: apps/learning/forms.py:146 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:196 msgid "Time Spent on Assignment" msgstr "Время, затраченное на выполнение задания" @@ -1633,11 +1582,11 @@ msgid "Group" msgstr "Группа" #: apps/learning/gradebook/views.py:234 apps/users/models.py:259 -#: apps/users/models.py:360 +#: apps/users/models.py:368 msgid "Yandex Login" msgstr "Логин на Яндексе" -#: apps/learning/gradebook/views.py:236 apps/users/models.py:378 +#: apps/learning/gradebook/views.py:236 apps/users/models.py:386 msgid "Codeforces Handle" msgstr "" @@ -1646,7 +1595,6 @@ msgid "Final grade" msgstr "Итоговая оценка" #: apps/learning/gradebook/views.py:240 -#: lms/jinja2/lms/gradebook/gradebook_form.html:122 msgid "Total" msgstr "Сумма баллов" @@ -1708,7 +1656,6 @@ msgid "A student group with the same name already exists in the course" msgstr "" #: apps/learning/models.py:170 apps/learning/models.py:609 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:206 msgid "Assignee" msgstr "Проверяющий" @@ -1794,12 +1741,12 @@ msgstr "" "курсы" #: apps/learning/models.py:354 apps/learning/models.py:1117 -#: apps/users/models.py:874 +#: apps/users/models.py:882 msgid "Student Profile" msgstr "Профиль студента" #: apps/learning/models.py:361 apps/learning/models.py:442 -#: apps/users/models.py:1018 +#: apps/users/models.py:1026 msgid "Enrollment|grade" msgstr "Оценка" @@ -1836,7 +1783,7 @@ msgstr "Значение должно указывать на одну из гр msgid "Satisfactory" msgstr "Удовлетворительно" -#: apps/learning/models.py:438 apps/users/models.py:959 +#: apps/learning/models.py:438 apps/users/models.py:967 msgid "Entry Added" msgstr "Дата изменения" @@ -1886,10 +1833,7 @@ msgstr "Студент" msgid "StudentAssignment|Status" msgstr "Статус" -#: apps/learning/models.py:593 lms/jinja2/lms/study/course_list.html:102 -#: lms/jinja2/lms/study/student_assignment_detail.html:122 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:181 -#: lms/jinja2/lms/user_profile/_tab_assignments.html:12 +#: apps/learning/models.py:593 msgid "Grade" msgstr "Оценка" @@ -1964,8 +1908,8 @@ msgstr "Опубликовано" msgid "AssignmentComment|text" msgstr "Текст" -#: apps/learning/models.py:848 apps/users/models.py:357 -#: apps/users/models.py:389 apps/users/models.py:396 +#: apps/learning/models.py:848 apps/users/models.py:365 +#: apps/users/models.py:397 apps/users/models.py:404 msgid "LaTeX+Markdown is enabled" msgstr "доступны LaTeX и Markdown" @@ -2061,7 +2005,7 @@ msgstr "Дата выпуска" msgid "Graduation ceremony date" msgstr "Дата выпускного считается датой выпуска студента" -#: apps/learning/models.py:1125 apps/users/models.py:844 +#: apps/learning/models.py:1125 apps/users/models.py:852 msgid "Fields of study" msgstr "Направления обучения" @@ -2093,7 +2037,7 @@ msgstr "Отзыв о CS центре" msgid "Details" msgstr "Детали" -#: apps/learning/models.py:1147 apps/users/models.py:828 +#: apps/learning/models.py:1147 apps/users/models.py:836 msgid "Diploma Number" msgstr "Номер диплома" @@ -2105,7 +2049,7 @@ msgstr "Регистрационный номер" msgid "Registration number in the registry of education" msgstr "Номер в федеральном реестре (ФРДО)" -#: apps/learning/models.py:1158 apps/users/models.py:834 +#: apps/learning/models.py:1158 apps/users/models.py:842 msgid "Diploma Issued on" msgstr "Дата выдачи диплома" @@ -2122,12 +2066,12 @@ msgid "Curator" msgstr "Куратор" #: apps/learning/roles.py:118 apps/users/constants.py:39 -#: apps/users/models.py:735 +#: apps/users/models.py:743 msgid "Co-worker" msgstr "Сотрудник" #: apps/learning/roles.py:120 apps/users/constants.py:46 -#: apps/users/models.py:737 +#: apps/users/models.py:745 msgid "Master's Degree Student" msgstr "Студент магистратуры" @@ -2355,8 +2299,6 @@ msgstr "Новости" #: apps/learning/tests/test_enrollment.py:89 #: apps/learning/tests/test_enrollment.py:109 #: apps/learning/tests/test_enrollment.py:117 -#: lms/jinja2/lms/courses/course_detail.html:228 -#: lms/jinja2/lms/courses/course_detail.html:237 msgid "Places available" msgstr "Осталось мест" @@ -2427,7 +2369,7 @@ msgstr "Обложка" msgid "book" msgstr "Книга" -#: apps/library/models.py:54 lms/jinja2/lms/user_profile/_tab_curators.html:55 +#: apps/library/models.py:54 msgid "books" msgstr "Книги" @@ -2544,8 +2486,6 @@ msgid "Area of study" msgstr "Направление обучения" #: apps/study_programs/models.py:38 -#: lms/jinja2/lms/staff/student_search.html:102 -#: lms/jinja2/lms/user_profile/_tab_student_profiles.html:127 msgid "Areas of study" msgstr "Направления обучения" @@ -2664,8 +2604,6 @@ msgid "Are you sure you want to delete" msgstr "Вы уверены, что хотите удалить" #: apps/templates/forms/simple_delete_confirmation.html:20 -#: lms/jinja2/lms/courses/course_class_detail.html:20 -#: lms/jinja2/lms/teaching/assignment_detail.html:21 msgid "Delete" msgstr "Удалить" @@ -2678,14 +2616,14 @@ msgid "" "\n" " If you would like a school to be added to this list email the club " "coordinator: Alexander Kulikov, kulikov()logic.pdmi.ras.ru
\n" -" Subscribe: Facebook\n" +" Subscribe: Facebook\n" " " msgstr "" "\n" -"Список школ также поддерживается в группе Вконтакте и в группе в Фейсбуке.
\n" +"Список школ также поддерживается в группе Вконтакте и в группе в Фейсбуке.
\n" "Для добавления анонса школы свяжитесь с координатором клуба: Александр " "Куликов, alexander.s.kulikov@gmail.com." @@ -2723,12 +2661,10 @@ msgid "To leave the course" msgstr "Покинуть курс" #: apps/templates/learning/event_detail.html:19 -#: lms/jinja2/lms/courses/course_class_detail.html:37 msgid "When" msgstr "Когда" #: apps/templates/learning/event_detail.html:23 -#: lms/jinja2/lms/courses/course_class_detail.html:41 msgid "Where" msgstr "Где" @@ -2771,13 +2707,6 @@ msgstr "Пожалуйста, проверьте свой email для заве #: apps/templates/learning/teaching/modal_update_assignment_comment.html:8 #: apps/templates/projects/modal_update_report_comment.html:9 -#: lms/jinja2/lms/gradebook/_modal_import_csv_enrollments.html:47 -#: lms/jinja2/lms/gradebook/_modal_import_csv_enrollments.html:93 -#: lms/jinja2/lms/gradebook/_modal_import_csv_stepik.html:41 -#: lms/jinja2/lms/gradebook/_modal_import_csv_stepik.html:89 -#: lms/jinja2/lms/gradebook/_modal_import_csv_yandex_login.html:41 -#: lms/jinja2/lms/gradebook/_modal_import_csv_yandex_login.html:88 -#: lms/jinja2/lms/gradebook/_modal_import_yandex_contest_problem.html:34 msgid "Close" msgstr "Закрыть" @@ -2798,12 +2727,10 @@ msgid "Sign in" msgstr "Войти" #: apps/templates/projects/project_detail.html:116 -#: lms/jinja2/lms/admission/admission_results.html:32 msgid "Please correct the error below." msgstr "Пожалуйста, исправьте ошибку." #: apps/templates/projects/project_detail.html:117 -#: lms/jinja2/lms/admission/admission_results.html:33 msgid "Please correct the errors below." msgstr "Пожалуйста, исправьте ошибки." @@ -2938,8 +2865,7 @@ msgstr "Официальный студент" msgid "Curator's note" msgstr "Заметка куратора" -#: apps/users/admin.py:259 apps/users/forms.py:25 apps/users/models.py:337 -#: lms/jinja2/lms/user_profile/_tab_account.html:137 +#: apps/users/admin.py:259 apps/users/forms.py:25 apps/users/models.py:345 msgid "Date of Birth" msgstr "Дата рождения" @@ -2987,7 +2913,7 @@ msgstr "Удовлетворительно" msgid "Tell something about yourself" msgstr "Расскажите что-нибудь о себе" -#: apps/users/forms.py:82 apps/users/models.py:397 +#: apps/users/forms.py:82 apps/users/models.py:405 msgid "will be shown only to logged-in users" msgstr "показывается только залогиненным пользователям" @@ -3097,190 +3023,194 @@ msgid "" "them." msgstr "" -#: apps/users/models.py:331 +#: apps/users/models.py:333 +msgid "notification permission status" +msgstr "Разрешить уведомления" + +#: apps/users/models.py:336 +msgid "Designates that this user enabled email notifications " +msgstr "" + +#: apps/users/models.py:339 msgid "Gender" msgstr "Пол" -#: apps/users/models.py:334 lms/jinja2/lms/user_profile/_tab_account.html:120 +#: apps/users/models.py:342 msgid "Phone" msgstr "Телефон" -#: apps/users/models.py:338 +#: apps/users/models.py:346 msgid "date joined" msgstr "" -#: apps/users/models.py:341 +#: apps/users/models.py:349 msgid "CSCUser|photo" msgstr "Фото" -#: apps/users/models.py:356 +#: apps/users/models.py:364 msgid "CSCUser|note" msgstr "Дополнительно" -#: apps/users/models.py:368 +#: apps/users/models.py:376 msgid "Github Login" msgstr "Логин на github.com" -#: apps/users/models.py:373 +#: apps/users/models.py:381 msgid "Telegram" msgstr "" -#: apps/users/models.py:382 +#: apps/users/models.py:390 msgid "stepik.org ID" msgstr "stepik.org ID" -#: apps/users/models.py:385 +#: apps/users/models.py:393 msgid "Anytask URL" msgstr "" -#: apps/users/models.py:387 +#: apps/users/models.py:395 msgid "Social Networks" msgstr "Социальные сети" -#: apps/users/models.py:390 +#: apps/users/models.py:398 msgid "will be shown to curators only" msgstr "будут показаны только кураторам" -#: apps/users/models.py:394 lms/jinja2/lms/courses/teacher_detail.html:19 -#: lms/jinja2/lms/user_profile/_tab_account.html:220 +#: apps/users/models.py:402 msgid "Contact information" msgstr "Контактная информация" -#: apps/users/models.py:400 lms/jinja2/lms/user_profile/_tab_account.html:133 +#: apps/users/models.py:408 msgid "Workplace" msgstr "Место работы" -#: apps/users/models.py:410 +#: apps/users/models.py:418 msgid "CSCUser|user" msgstr "Пользователь" -#: apps/users/models.py:411 +#: apps/users/models.py:419 msgid "CSCUser|users" msgstr "Пользователи" -#: apps/users/models.py:734 +#: apps/users/models.py:742 msgid "Regular Student" msgstr "Студент" -#: apps/users/models.py:736 +#: apps/users/models.py:744 msgid "Invited Student" msgstr "Приглашенный студент" -#: apps/users/models.py:764 +#: apps/users/models.py:772 msgid "Partner Tag" msgstr "Партнер" -#: apps/users/models.py:765 +#: apps/users/models.py:773 msgid "Partner Tags" msgstr "Партнеры" -#: apps/users/models.py:778 +#: apps/users/models.py:786 msgid "Priority" msgstr "Приоритет" -#: apps/users/models.py:783 +#: apps/users/models.py:791 msgid "Magistracy" msgstr "Магистратура" -#: apps/users/models.py:803 lms/jinja2/lms/staff/student_search.html:35 -#: lms/jinja2/lms/user_profile/_tab_student_profiles.html:25 +#: apps/users/models.py:811 msgid "Student|admission year" msgstr "Год поступления" -#: apps/users/models.py:805 lms/jinja2/lms/staff/student_search.html:47 +#: apps/users/models.py:813 msgid "CSCUser|Curriculum year" msgstr "Год программы обучения" -#: apps/users/models.py:814 +#: apps/users/models.py:822 msgid "StudentInfo|University year" msgstr "Курс при поступлении" -#: apps/users/models.py:819 +#: apps/users/models.py:827 msgid "Official Student" msgstr "Официальный студент" -#: apps/users/models.py:820 +#: apps/users/models.py:828 msgid "Passport, consent for processing personal data, diploma (optional)" msgstr "" "Передал данные о паспорте, соглашение о персональных данных, диплом и т.д." -#: apps/users/models.py:824 +#: apps/users/models.py:832 msgid "Paid Basis" msgstr "Платная форма обучения" -#: apps/users/models.py:830 +#: apps/users/models.py:838 msgid "Number of higher education diploma" msgstr "Номер диплома о высшем образовании" -#: apps/users/models.py:838 +#: apps/users/models.py:846 msgid "Diploma Issued by" msgstr "Кем выдан диплом" -#: apps/users/models.py:851 +#: apps/users/models.py:859 msgid "Comment changed" msgstr "Комментарий изменён" -#: apps/users/models.py:857 +#: apps/users/models.py:865 msgid "Author of last edit" msgstr "Автор последней правки" -#: apps/users/models.py:875 +#: apps/users/models.py:883 msgid "Student Profiles" msgstr "Профили студентов" -#: apps/users/models.py:905 +#: apps/users/models.py:913 msgid "Value should be >= {} (year of the branch establishment)" msgstr "" -#: apps/users/models.py:927 apps/users/models.py:985 +#: apps/users/models.py:935 apps/users/models.py:993 msgid "Studying" msgstr "Учится" -#: apps/users/models.py:976 lms/jinja2/lms/teaching/assignment_detail.html:15 +#: apps/users/models.py:984 msgid "Student Status Log" msgstr "Лог изменения статуса" -#: apps/users/models.py:998 +#: apps/users/models.py:1006 msgid "Online course record" msgstr "Запись об онлайн-курсе" -#: apps/users/models.py:999 +#: apps/users/models.py:1007 msgid "Online course records" msgstr "Записи об онлайн-курсах" -#: apps/users/models.py:1024 +#: apps/users/models.py:1032 msgid "SHAD course record" msgstr "Запись о курсе ШАД" -#: apps/users/models.py:1025 +#: apps/users/models.py:1033 msgid "SHAD course records" msgstr "Записи о курсах ШАД" -#: apps/users/models.py:1036 +#: apps/users/models.py:1044 msgid "Reference|signature" msgstr "Подпись" -#: apps/users/models.py:1037 +#: apps/users/models.py:1045 msgid "Reference|note" msgstr "Текст в свободной форме" -#: apps/users/models.py:1045 +#: apps/users/models.py:1053 msgid "Student Reference" msgstr "Справка студента" -#: apps/users/models.py:1046 +#: apps/users/models.py:1054 msgid "Student References" msgstr "Справки студента" #: apps/users/tests/test_certificates_of_participation.py:81 #: apps/users/tests/test_certificates_of_participation.py:89 -#: lms/jinja2/lms/user_profile/_tab_curators.html:90 msgid "Create reference" msgstr "Выдать справку" #: apps/users/tests/test_certificates_of_participation.py:104 #: apps/users/tests/test_certificates_of_participation.py:109 -#: lms/jinja2/lms/user_profile/_tab_curators.html:70 msgid "Student references" msgstr "Справки студента" @@ -3310,17 +3240,18 @@ msgctxt "menu" msgid "Моё расписание" msgstr "" -#: lk_yandexdataschool_ru/menu.py:24 lk_yandexdataschool_ru/menu.py:54 +#: lk_yandexdataschool_ru/menu.py:24 lk_yandexdataschool_ru/menu.py:56 msgctxt "menu" msgid "Календарь" msgstr "" -#: lk_yandexdataschool_ru/menu.py:25 lk_yandexdataschool_ru/menu.py:58 +#: lk_yandexdataschool_ru/menu.py:25 lk_yandexdataschool_ru/menu.py:60 msgctxt "menu" msgid "Мои курсы" msgstr "" -#: lk_yandexdataschool_ru/menu.py:26 lk_yandexdataschool_ru/menu.py:95 +#: lk_yandexdataschool_ru/menu.py:26 lk_yandexdataschool_ru/menu.py:69 +#: lk_yandexdataschool_ru/menu.py:101 msgctxt "menu" msgid "Полезное" msgstr "" @@ -3332,475 +3263,358 @@ msgstr "" #: lk_yandexdataschool_ru/menu.py:28 msgctxt "menu" -msgid "Проекты организаторов" +msgid "Программы обучения" msgstr "" -#: lk_yandexdataschool_ru/menu.py:35 +#: lk_yandexdataschool_ru/menu.py:37 msgctxt "menu" msgid "Преподавание" msgstr "" -#: lk_yandexdataschool_ru/menu.py:40 +#: lk_yandexdataschool_ru/menu.py:42 msgctxt "menu" msgid "Очередь проверки" msgstr "" -#: lk_yandexdataschool_ru/menu.py:49 +#: lk_yandexdataschool_ru/menu.py:51 msgctxt "menu" msgid "Расписание" msgstr "" -#: lk_yandexdataschool_ru/menu.py:63 lk_yandexdataschool_ru/menu.py:90 +#: lk_yandexdataschool_ru/menu.py:65 lk_yandexdataschool_ru/menu.py:96 msgctxt "menu" msgid "Ведомости" msgstr "" -#: lk_yandexdataschool_ru/menu.py:72 lk_yandexdataschool_ru/menu.py:77 +#: lk_yandexdataschool_ru/menu.py:78 lk_yandexdataschool_ru/menu.py:83 msgctxt "menu" msgid "Проекты" msgstr "" -#: lk_yandexdataschool_ru/menu.py:76 +#: lk_yandexdataschool_ru/menu.py:82 msgctxt "menu" msgid "Отчеты" msgstr "" -#: lk_yandexdataschool_ru/menu.py:78 +#: lk_yandexdataschool_ru/menu.py:84 msgctxt "menu" msgid "Все проекты" msgstr "" -#: lk_yandexdataschool_ru/menu.py:79 +#: lk_yandexdataschool_ru/menu.py:85 msgctxt "menu" msgid "Все отчеты" msgstr "" -#: lk_yandexdataschool_ru/menu.py:86 +#: lk_yandexdataschool_ru/menu.py:92 msgctxt "menu" msgid "Курирование" msgstr "" -#: lk_yandexdataschool_ru/menu.py:91 +#: lk_yandexdataschool_ru/menu.py:97 msgctxt "menu" msgid "Поиск студентов" msgstr "" -#: lk_yandexdataschool_ru/menu.py:92 +#: lk_yandexdataschool_ru/menu.py:98 msgctxt "menu" msgid "Файлы" msgstr "" -#: lk_yandexdataschool_ru/menu.py:96 +#: lk_yandexdataschool_ru/menu.py:102 msgctxt "menu" msgid "Фейсбук" msgstr "" -#: lk_yandexdataschool_ru/menu.py:97 +#: lk_yandexdataschool_ru/menu.py:103 msgctxt "menu" msgid "Пересечения" msgstr "" -#: lk_yandexdataschool_ru/menu.py:102 +#: lk_yandexdataschool_ru/menu.py:108 msgctxt "menu" msgid "Набор" msgstr "" -#: lk_yandexdataschool_ru/menu.py:106 +#: lk_yandexdataschool_ru/menu.py:112 msgctxt "menu" msgid "Собеседования" msgstr "" -#: lk_yandexdataschool_ru/menu.py:107 +#: lk_yandexdataschool_ru/menu.py:113 msgctxt "menu" msgid "Анкеты" msgstr "" -#: lk_yandexdataschool_ru/menu.py:108 +#: lk_yandexdataschool_ru/menu.py:114 msgctxt "menu" msgid "Отправка приглашений" msgstr "" -#: lk_yandexdataschool_ru/menu.py:109 +#: lk_yandexdataschool_ru/menu.py:115 msgctxt "menu" msgid "Приглашения" msgstr "" -#: lk_yandexdataschool_ru/menu.py:110 +#: lk_yandexdataschool_ru/menu.py:116 msgctxt "menu" msgid "Результаты" msgstr "" -#: lms/jinja2/lms/courses/calendar.html:17 -#: lms/jinja2/lms/learning/timetable.html:16 -#: lms/jinja2/lms/teaching/timetable.html:16 -msgid "List" -msgstr "Список" - -#: lms/jinja2/lms/courses/calendar.html:18 -#: lms/jinja2/lms/learning/timetable.html:17 -#: lms/jinja2/lms/teaching/timetable.html:19 -msgid "Calendar" -msgstr "Календарь" - -#: lms/jinja2/lms/courses/course_class_detail.html:17 -#: lms/jinja2/lms/courses/meta_detail.html:11 -#: lms/jinja2/lms/teaching/assignment_detail.html:18 -#: lms/jinja2/lms/user_profile/connected_social_services.html:45 -#: lms/jinja2/lms/user_profile/user_detail.html:31 -msgid "Edit" -msgstr "Редактировать" - -#: lms/jinja2/lms/courses/course_class_detail.html:33 -msgid "What" -msgstr "Что" - -#: lms/jinja2/lms/courses/course_class_detail.html:62 -msgid "Video" -msgstr "Видео" +#: lms/jinja2/lms/layouts/v1_base.html:66 lms/templates/base.html:61 +msgid "гг." +msgstr "" -#: lms/jinja2/lms/courses/course_class_detail.html:79 -msgid "Other materials" -msgstr "Другие материалы" +#: lms/jinja2/lms/layouts/v2_base.html:46 +msgid "Privacy Policy" +msgstr "" -#: lms/jinja2/lms/courses/course_class_form.html:45 -#: lms/jinja2/lms/courses/course_detail.html:101 -msgid "Materials" -msgstr "Материалы" +#: lms/templates/_top_menu.html:37 +msgid "Profile" +msgstr "Профиль" -#: lms/jinja2/lms/courses/course_class_form.html:63 -msgid "Visibility Settings" -msgstr "Настройки отображения" +#: lms/templates/_top_menu.html:43 +msgid "Logout" +msgstr "Выйти" -#: lms/jinja2/lms/courses/course_class_form.html:76 -msgid "Save and add" -msgstr "Сохранить и добавить ещё" +#: lms/templates/base.html:75 +msgid "close all" +msgstr "закрыть все" -#: lms/jinja2/lms/courses/course_detail.html:98 -msgid "Date and time" -msgstr "Дата и время" +#: lms/templates/lms/course_offerings.html:15 +#: lms/templates/lms/course_offerings.html:74 +msgid "CS club course" +msgstr "Курс CS клуба" -#: lms/jinja2/lms/courses/course_detail.html:99 -#: lms/jinja2/lms/learning/timetable.html:33 -#: lms/jinja2/lms/teaching/timetable.html:35 -msgid "Class|Name" -msgstr "Название" +#: lms/views.py:104 +msgctxt "adjective" +msgid "autumn" +msgstr "осенний" -#: lms/jinja2/lms/courses/course_detail.html:100 -#: lms/jinja2/lms/learning/timetable.html:35 -#: lms/jinja2/lms/teaching/timetable.html:37 -msgid "Venue|short" -msgstr "Место" - -#: lms/jinja2/lms/courses/course_detail.html:125 -msgid "No" -msgstr "Нет" - -#: lms/jinja2/lms/courses/course_detail.html:146 -msgid "Files" -msgstr "Файлы" - -#: lms/jinja2/lms/courses/course_detail.html:203 -msgid "delete" -msgstr "удалить" - -#: lms/jinja2/lms/courses/course_detail.html:204 -msgid "edit" -msgstr "редактировать" - -#: lms/jinja2/lms/courses/course_detail.html:220 -#: lms/jinja2/lms/enrollment/invitation_courses.html:29 -msgid "Unenroll from the course" -msgstr "Отписаться от курса" - -#: lms/jinja2/lms/courses/course_detail.html:226 -#: lms/jinja2/lms/courses/course_detail.html:235 -msgid "Enroll in the course" -msgstr "Записаться на курс" - -#: lms/jinja2/lms/courses/course_detail.html:250 -msgid "Add assignment" -msgstr "Добавить задание" - -#: lms/jinja2/lms/courses/course_detail.html:253 -msgid "Edit description" -msgstr "Редактировать описание" - -#: lms/jinja2/lms/courses/course_detail.html:256 -#: lms/jinja2/lms/teaching/course_list.html:33 -msgid "Add news" -msgstr "Добавить новость" - -#: lms/jinja2/lms/courses/course_detail.html:259 -msgid "Add class" -msgstr "Добавить занятие" - -#: lms/jinja2/lms/courses/course_detail.html:267 -msgid "Start survey" -msgstr "Оставить отзыв о курсе" - -#: lms/jinja2/lms/courses/meta_detail.html:22 -msgid "Course Offerings" -msgstr "Прочтения курсов" +#: lms/views.py:105 +msgctxt "adjective" +msgid "spring" +msgstr "весенний" -#: lms/jinja2/lms/gradebook/_modal_import_csv_enrollments.html:11 -msgid "Import scores from CSV" -msgstr "Импорт оценок из CSV-файла" - -#: lms/jinja2/lms/gradebook/_modal_import_csv_enrollments.html:17 -msgid "Choose assignment" -msgstr "Выберите задание" - -#: lms/jinja2/lms/gradebook/_modal_import_csv_enrollments.html:26 -#: lms/jinja2/lms/gradebook/_modal_import_csv_stepik.html:27 -#: lms/jinja2/lms/gradebook/_modal_import_csv_yandex_login.html:27 -msgid "Score will be imported for selected assignment" -msgstr "Оценки будут импортированы для выбранного задания" - -#: lms/jinja2/lms/gradebook/_modal_import_csv_enrollments.html:29 -#: lms/jinja2/lms/gradebook/_modal_import_csv_enrollments.html:71 -msgid "Choose csv file" -msgstr "Выберите csv-файл" - -#: lms/jinja2/lms/gradebook/_modal_import_csv_enrollments.html:48 -#: lms/jinja2/lms/gradebook/_modal_import_csv_enrollments.html:94 -#: lms/jinja2/lms/gradebook/_modal_import_csv_stepik.html:42 -#: lms/jinja2/lms/gradebook/_modal_import_csv_stepik.html:90 -#: lms/jinja2/lms/gradebook/_modal_import_csv_yandex_login.html:42 -#: lms/jinja2/lms/gradebook/_modal_import_csv_yandex_login.html:89 -#: lms/jinja2/lms/gradebook/_modal_import_yandex_contest_problem.html:35 -msgid "Import" -msgstr "Импортировать" - -#: lms/jinja2/lms/gradebook/_modal_import_csv_stepik.html:11 -msgid "Import stepik statements" -msgstr "Импортировать баллы по stepik.org ID" - -#: lms/jinja2/lms/gradebook/_modal_import_csv_stepik.html:17 -#: lms/jinja2/lms/gradebook/_modal_import_csv_yandex_login.html:17 -#: lms/jinja2/lms/gradebook/_modal_import_yandex_contest_problem.html:13 -msgid "Select assignment" -msgstr "Выбрать задание" - -#: lms/jinja2/lms/gradebook/_modal_import_csv_stepik.html:30 -#: lms/jinja2/lms/gradebook/_modal_import_csv_stepik.html:65 -#: lms/jinja2/lms/gradebook/_modal_import_csv_yandex_login.html:30 -#: lms/jinja2/lms/gradebook/_modal_import_csv_yandex_login.html:65 -msgid "Select csv file" -msgstr "Выбрать csv-файл" - -#: lms/jinja2/lms/gradebook/_modal_import_csv_yandex_login.html:11 -msgid "Import yandex statements" -msgstr "Импортировать баллы по Яндекс-логину" - -#: lms/jinja2/lms/gradebook/gradebook_form.html:27 -msgid "Marks sheet" -msgstr "Ведомость" +#~ msgid "List" +#~ msgstr "Список" -#: lms/jinja2/lms/gradebook/gradebook_form.html:119 -#: lms/jinja2/lms/gradebook/gradebook_form.html:170 -msgid "Students" -msgstr "Студенты" +#~ msgid "Calendar" +#~ msgstr "Календарь" -#: lms/jinja2/lms/gradebook/gradebook_form.html:120 -msgid "Grades" -msgstr "Итоговая оценка" +#~ msgid "Edit" +#~ msgstr "Редактировать" -#: lms/jinja2/lms/layouts/_top_menu.html:34 -#: lms/jinja2/lms/user_profile/user_detail.html:6 -#: lms/templates/_top_menu.html:37 -msgid "Profile" -msgstr "Профиль" +#~ msgid "What" +#~ msgstr "Что" -#: lms/jinja2/lms/layouts/_top_menu.html:40 lms/templates/_top_menu.html:43 -msgid "Logout" -msgstr "Выйти" +#~ msgid "Video" +#~ msgstr "Видео" -#: lms/jinja2/lms/layouts/_v2_top_menu.html:36 -#: lms/jinja2/lms/layouts/_v2_top_menu.html:48 -msgid "Members Area" -msgstr "Личный кабинет" +#~ msgid "Other materials" +#~ msgstr "Другие материалы" -#: lms/jinja2/lms/layouts/v1_base.html:66 lms/templates/base.html:61 -msgid "гг." -msgstr "" +#~ msgid "Materials" +#~ msgstr "Материалы" -#: lms/jinja2/lms/layouts/v2_base.html:46 -msgid "Privacy Policy" -msgstr "" +#~ msgid "Visibility Settings" +#~ msgstr "Настройки отображения" + +#~ msgid "Save and add" +#~ msgstr "Сохранить и добавить ещё" + +#~ msgid "Date and time" +#~ msgstr "Дата и время" + +#~ msgid "Class|Name" +#~ msgstr "Название" + +#~ msgid "Venue|short" +#~ msgstr "Место" + +#~ msgid "No" +#~ msgstr "Нет" + +#~ msgid "Files" +#~ msgstr "Файлы" + +#~ msgid "delete" +#~ msgstr "удалить" + +#~ msgid "edit" +#~ msgstr "редактировать" + +#~ msgid "Unenroll from the course" +#~ msgstr "Отписаться от курса" + +#~ msgid "Enroll in the course" +#~ msgstr "Записаться на курс" + +#~ msgid "Add assignment" +#~ msgstr "Добавить задание" + +#~ msgid "Edit description" +#~ msgstr "Редактировать описание" + +#~ msgid "Add news" +#~ msgstr "Добавить новость" + +#~ msgid "Add class" +#~ msgstr "Добавить занятие" + +#~ msgid "Start survey" +#~ msgstr "Оставить отзыв о курсе" + +#~ msgid "Course Offerings" +#~ msgstr "Прочтения курсов" + +#~ msgid "Import scores from CSV" +#~ msgstr "Импорт оценок из CSV-файла" + +#~ msgid "Choose assignment" +#~ msgstr "Выберите задание" + +#~ msgid "Score will be imported for selected assignment" +#~ msgstr "Оценки будут импортированы для выбранного задания" + +#~ msgid "Choose csv file" +#~ msgstr "Выберите csv-файл" + +#~ msgid "Import" +#~ msgstr "Импортировать" + +#~ msgid "Import stepik statements" +#~ msgstr "Импортировать баллы по stepik.org ID" + +#~ msgid "Select assignment" +#~ msgstr "Выбрать задание" -#: lms/jinja2/lms/learning/timetable.html:32 -#: lms/jinja2/lms/teaching/timetable.html:34 -msgid "Time" -msgstr "Время" +#~ msgid "Select csv file" +#~ msgstr "Выбрать csv-файл" -#: lms/jinja2/lms/learning/timetable.html:69 -#: lms/jinja2/lms/teaching/timetable.html:67 -msgid "No classes yet" -msgstr "Список занятий пуст" +#~ msgid "Import yandex statements" +#~ msgstr "Импортировать баллы по Яндекс-логину" + +#~ msgid "Marks sheet" +#~ msgstr "Ведомость" + +#~ msgid "Students" +#~ msgstr "Студенты" + +#~ msgid "Grades" +#~ msgstr "Итоговая оценка" + +#~ msgid "Members Area" +#~ msgstr "Личный кабинет" + +#~ msgid "Time" +#~ msgstr "Время" + +#~ msgid "No classes yet" +#~ msgstr "Список занятий пуст" -#: lms/jinja2/lms/projects/project_report.html:195 -#: lms/jinja2/lms/projects/project_report.html:207 #, python-format -msgid "%(counter)s point" -msgid_plural "%(counter)s points" -msgstr[0] "%(counter)s балл" -msgstr[1] "%(counter)s балла" -msgstr[2] "%(counter)s баллов" - -#: lms/jinja2/lms/projects/project_report.html:261 -#: lms/jinja2/lms/teaching/assignment_detail.html:84 -msgid "Volunteer" -msgstr "Вольный слушатель" - -#: lms/jinja2/lms/staff/student_search.html:7 -msgid "Student search" -msgstr "Поиск студентов" - -#: lms/jinja2/lms/staff/student_search.html:18 -msgid "Name, full or partial" -msgstr "Имя, целиком или часть" - -#: lms/jinja2/lms/staff/student_search.html:85 -msgid "Passed courses" -msgstr "Сданные курсы" - -#: lms/jinja2/lms/study/assignment_list.html:12 -msgid "No assignments yet" -msgstr "Список заданий пуст" - -#: lms/jinja2/lms/study/assignment_list.html:21 -msgid "Open assignments" -msgstr "Открытые задания" - -#: lms/jinja2/lms/study/assignment_list.html:27 -#: lms/jinja2/lms/study/assignment_list.html:89 -#: lms/jinja2/lms/teaching/assignment_detail.html:77 -msgid "State" -msgstr "Статус" +#~ msgid "%(counter)s point" +#~ msgid_plural "%(counter)s points" +#~ msgstr[0] "%(counter)s балл" +#~ msgstr[1] "%(counter)s балла" +#~ msgstr[2] "%(counter)s баллов" -#: lms/jinja2/lms/study/assignment_list.html:83 -msgid "Archive" -msgstr "Архив" +#~ msgid "Volunteer" +#~ msgstr "Вольный слушатель" -#: lms/jinja2/lms/study/course_list.html:45 -#: lms/jinja2/lms/study/course_list.html:73 -#: lms/jinja2/lms/study/student_assignment_detail.html:128 -#: lms/jinja2/lms/teaching/course_list.html:12 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:220 -msgid "Professors" -msgstr "Преподаватели" +#~ msgid "Student search" +#~ msgstr "Поиск студентов" -#: lms/jinja2/lms/study/course_list.html:54 -msgid "Start survey!" -msgstr "Оставить отзыв" +#~ msgid "Name, full or partial" +#~ msgstr "Имя, целиком или часть" -#: lms/jinja2/lms/study/course_list.html:60 -msgid "Leave course" -msgstr "Покинуть курс" +#~ msgid "Passed courses" +#~ msgstr "Сданные курсы" -#: lms/jinja2/lms/study/course_list.html:83 -msgid "Enroll" -msgstr "Записаться" +#~ msgid "No assignments yet" +#~ msgstr "Список заданий пуст" -#: lms/jinja2/lms/study/student_assignment_detail.html:108 -msgid "" -"Comment doesn't change status.
\n" -" For the teacher to see an update to the solution, use the «Send " -"solution» tab." -msgstr "" -"Комментарий не меняет статус задания.
\n" -"Чтобы преподаватель увидел обновление к решению, используйте окно «Добавить " -"решение»." +#~ msgid "Open assignments" +#~ msgstr "Открытые задания" -#: lms/jinja2/lms/study/student_assignment_detail.html:126 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:218 -msgid "Professor" -msgstr "Преподаватель" +#~ msgid "State" +#~ msgstr "Статус" -#: lms/jinja2/lms/study/student_assignment_detail.html:148 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:242 -msgid "out of" -msgstr "из" +#~ msgid "Archive" +#~ msgstr "Архив" -#: lms/jinja2/lms/study/student_assignment_detail.html:153 -#: lms/jinja2/lms/teaching/student_assignment_detail.html:248 -msgid "Assignment created" -msgstr "Задание добавлено" +#~ msgid "Professors" +#~ msgstr "Преподаватели" -#: lms/jinja2/lms/teaching/assignment_detail.html:45 -msgid "Estimated Execution Time" -msgstr "Оценочное время выполнения" +#~ msgid "Start survey!" +#~ msgstr "Оставить отзыв" -#: lms/jinja2/lms/teaching/assignment_detail.html:48 -msgid "Mean Execution Time" -msgstr "Среднее время выполнения" +#~ msgid "Leave course" +#~ msgstr "Покинуть курс" -#: lms/jinja2/lms/teaching/assignment_detail.html:51 -msgid "Median Execution Time" -msgstr "Медианное время выполнения" +#~ msgid "Enroll" +#~ msgstr "Записаться" -#: lms/jinja2/lms/teaching/student_assignment_detail.html:177 -msgid "Next unchecked[assignment]" -msgstr "Следующее непроверенное" +#~ msgid "" +#~ "Comment doesn't change status.
\n" +#~ " For the teacher to see an update to the solution, use the " +#~ "«Send solution» tab." +#~ msgstr "" +#~ "Комментарий не меняет статус задания.
\n" +#~ "Чтобы преподаватель увидел обновление к решению, используйте окно " +#~ "«Добавить решение»." -#: lms/jinja2/lms/teaching/student_assignment_detail.html:199 -msgid "No value is specified" -msgstr "Не указано" +#~ msgid "Professor" +#~ msgstr "Преподаватель" -#: lms/jinja2/lms/user_profile/_profile_upload_photo.html:6 -msgid "Profile photo" -msgstr "Фото профиля" +#~ msgid "out of" +#~ msgstr "из" -#: lms/jinja2/lms/user_profile/_profile_upload_photo.html:25 -msgid "Select a file" -msgstr "Выбрать изображение" +#~ msgid "Assignment created" +#~ msgstr "Задание добавлено" -#: lms/jinja2/lms/user_profile/_profile_upload_photo.html:39 -msgid "Back to upload" -msgstr "Назад к загрузке фото" +#~ msgid "Estimated Execution Time" +#~ msgstr "Оценочное время выполнения" -#: lms/jinja2/lms/user_profile/_tab_account.html:49 -msgid "Online courses" -msgstr "Онлайн-курсы" +#~ msgid "Mean Execution Time" +#~ msgstr "Среднее время выполнения" -#: lms/jinja2/lms/user_profile/_tab_account.html:105 -msgid "Email" -msgstr "Email" +#~ msgid "Median Execution Time" +#~ msgstr "Медианное время выполнения" -#: lms/jinja2/lms/user_profile/_tab_student_profiles.html:78 -msgid "Curriculum year" -msgstr "Год программы обучения" +#~ msgid "Next unchecked[assignment]" +#~ msgstr "Следующее непроверенное" -#: lms/jinja2/lms/user_profile/user_detail.html:6 -msgid "on site" -msgstr "на сайте" +#~ msgid "No value is specified" +#~ msgstr "Не указано" -#: lms/jinja2/lms/user_profile/user_detail.html:30 -msgid "Change photo" -msgstr "Изменить фото" +#~ msgid "Profile photo" +#~ msgstr "Фото профиля" -#: lms/jinja2/lms/user_profile/user_detail.html:74 -msgid "Review of the Organization" -msgstr "Отзыв" +#~ msgid "Select a file" +#~ msgstr "Выбрать изображение" -#: lms/templates/base.html:75 -msgid "close all" -msgstr "закрыть все" +#~ msgid "Back to upload" +#~ msgstr "Назад к загрузке фото" -#: lms/templates/lms/course_offerings.html:15 -#: lms/templates/lms/course_offerings.html:74 -msgid "CS club course" -msgstr "Курс CS клуба" +#~ msgid "Online courses" +#~ msgstr "Онлайн-курсы" -#: lms/views.py:104 -msgctxt "adjective" -msgid "autumn" -msgstr "осенний" +#~ msgid "Email" +#~ msgstr "Email" -#: lms/views.py:105 -msgctxt "adjective" -msgid "spring" -msgstr "весенний" +#~ msgid "Curriculum year" +#~ msgstr "Год программы обучения" + +#~ msgid "on site" +#~ msgstr "на сайте" + +#~ msgid "Change photo" +#~ msgstr "Изменить фото" + +#~ msgid "Review of the Organization" +#~ msgstr "Отзыв" #~ msgid "YANDEX.ID@yandex.ru" #~ msgstr "YANDEX.ID@yandex.ru"