diff --git a/locale/ar/LC_MESSAGES/django.po b/locale/ar/LC_MESSAGES/django.po index db47f1667d..3659542415 100644 --- a/locale/ar/LC_MESSAGES/django.po +++ b/locale/ar/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-21 00:48\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Arabic, Saudi Arabia\n" "Language: ar_SA\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "الكاتالونية" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "الألمانية" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "الانجليزية" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "الإسبانية" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "الفرنسية" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "الكرواتية" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "الهنغارية" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "يابانية" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "الكورية" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "البرتغالية" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "" @@ -148,19 +148,19 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "مسألة" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -255,7 +255,7 @@ msgstr[5] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -266,7 +266,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." @@ -277,15 +277,15 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "اسم المستخدم" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "افتراضي" @@ -297,9 +297,9 @@ msgstr "سبيل الرابط" msgid "Summary" msgstr "ملخص" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "مستخدم" @@ -330,8 +330,8 @@ msgid "Taxonomy" msgstr "" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" @@ -340,9 +340,9 @@ msgstr "" msgid "Limits" msgstr "" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "" @@ -399,8 +399,8 @@ msgstr[5] "" msgid "Mark problems as private" msgstr "" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -411,19 +411,19 @@ msgstr "" msgid "timezone" msgstr "" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "" @@ -446,26 +446,26 @@ msgstr[5] "" msgid "Recalculate scores" msgstr "" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "" @@ -497,19 +497,19 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "" -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "" -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." @@ -520,38 +520,38 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -576,6 +576,7 @@ msgid "Comment body" msgstr "" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "" @@ -695,7 +696,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -711,7 +712,7 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." @@ -722,83 +723,83 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "" @@ -821,26 +822,42 @@ msgstr "" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 -msgid "Leave as LaTeX" +#: judge/models/choices.py:24 +msgid "Follow site theme" msgstr "" #: judge/models/choices.py:60 -msgid "SVG only" +msgid "Leave as LaTeX" msgstr "" #: judge/models/choices.py:61 -msgid "MathML only" +msgid "SVG only" msgstr "" #: judge/models/choices.py:62 -msgid "MathJax with SVG fallback" +msgid "MathML only" msgstr "" #: judge/models/choices.py:63 +msgid "MathJax with SVG fallback" +msgstr "" + +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" @@ -1022,7 +1039,7 @@ msgstr "" msgid "problems" msgstr "" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "" @@ -1270,213 +1287,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1953,7 +1970,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2125,7 +2142,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "" @@ -2166,7 +2183,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2191,26 +2208,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2220,200 +2241,200 @@ msgstr "" msgid "Admin" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2656,15 +2677,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2753,60 +2774,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -3036,7 +3057,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -3061,7 +3082,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -3069,12 +3090,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "" @@ -3083,111 +3104,111 @@ msgstr "" msgid "Contests" msgstr "" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3229,63 +3250,63 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3296,7 +3317,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3307,7 +3328,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3318,7 +3339,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3329,83 +3350,83 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3505,17 +3526,17 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3545,11 +3566,11 @@ msgstr "" msgid "Register" msgstr "" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "" @@ -3561,7 +3582,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "" @@ -3592,46 +3613,46 @@ msgstr "" msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3686,99 +3707,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3807,13 +3832,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3833,48 +3858,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -4075,15 +4100,15 @@ msgstr "" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4164,7 +4189,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "" @@ -4391,7 +4416,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "" @@ -4399,7 +4424,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4568,19 +4593,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "" @@ -4767,7 +4792,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "" @@ -4803,59 +4828,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4877,86 +4902,86 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." @@ -4967,7 +4992,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" @@ -4978,7 +5003,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -5059,11 +5084,11 @@ msgstr "" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "" @@ -5108,14 +5133,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "" @@ -5153,8 +5170,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "" @@ -5163,7 +5180,7 @@ msgid "Random" msgstr "" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "" @@ -5175,20 +5192,20 @@ msgstr "" msgid "Date" msgstr "" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" @@ -5199,11 +5216,11 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5419,7 +5436,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5432,36 +5449,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5503,17 +5520,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5522,7 +5539,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5540,12 +5557,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5643,23 +5660,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5823,23 +5840,23 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" @@ -5849,11 +5866,11 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5904,129 +5921,133 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/ar/LC_MESSAGES/djangojs.po b/locale/ar/LC_MESSAGES/djangojs.po index 57b4abeb27..0c7125f53a 100644 --- a/locale/ar/LC_MESSAGES/djangojs.po +++ b/locale/ar/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Arabic, Saudi Arabia\n" "Language: ar_SA\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -28,7 +28,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr " " diff --git a/locale/ca/LC_MESSAGES/django.po b/locale/ca/LC_MESSAGES/django.po index 09559a19fa..92a36a60d9 100644 --- a/locale/ca/LC_MESSAGES/django.po +++ b/locale/ca/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:51\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Catalan\n" "Language: ca_ES\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Català" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Alemany" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Grec" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Anglès" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Castellà" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Francès" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Croat" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Hongarès" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Japonès" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Coreà" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "Portuguès (Brasil)" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Romanès" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Rus" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Serbi (llatí)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Turc" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Vietnamita" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Xinès simplificat" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Xinès tradicional" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Inici" @@ -140,19 +140,19 @@ msgid "Included contests" msgstr "Concursos inclosos" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problema" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Problemes" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -231,29 +231,29 @@ msgstr[1] "Concursos %d desbloquejats amb èxit." msgid "Unlock contest submissions" msgstr "Desbloqueja els enviaments al concurs" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "Enviament %d s'ha planificat per a ser rejutjat amb èxit." msgstr[1] "Enviaments %d s'han planificat per a ser rejutjats amb èxit." -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "Participació %d recalculada." msgstr[1] "Participacions %d recalculades." -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "Recalcular els resultats" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "nom d'usuari" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "virtual" @@ -265,9 +265,9 @@ msgstr "path a l'enllaç" msgid "Summary" msgstr "Resum" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "usuari" @@ -298,8 +298,8 @@ msgid "Taxonomy" msgstr "Taxonomia" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Punts" @@ -308,9 +308,9 @@ msgstr "Punts" msgid "Limits" msgstr "Límits" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Llenguatge" @@ -355,8 +355,8 @@ msgstr[1] "Problemes %d marcats com a privats amb èxit." msgid "Mark problems as private" msgstr "Marca els problemes com a privats" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -367,19 +367,19 @@ msgstr "problema" msgid "timezone" msgstr "zona horària" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Usuari" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "Correu electrònic" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Zona horària" @@ -398,26 +398,26 @@ msgstr[1] "S'ha recalculat la puntuació dels usuaris %d." msgid "Recalculate scores" msgstr "Recalcular les puntuacions" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "Regenera" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Descripció" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Informació" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Característiques" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Cap" @@ -449,57 +449,57 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s en %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "No tens permís per rejutjar enviaments." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "No tens permís per rejutjar TANTS enviaments." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "Rejutja els enviaments seleccionats" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "Enviament %d ha estat requalificat amb èxit." msgstr[1] "Enviaments %d han estat requalificats amb èxit." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "Requalifica els enviaments seleccionats" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Codi del problema" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Nom del problema" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Temps" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Memòria" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "Bloquejat" @@ -524,6 +524,7 @@ msgid "Comment body" msgstr "Cos del comentari" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "No se suposa que hagis de parlar, patufet." @@ -631,7 +632,7 @@ msgstr "Token d'autenticació en dos passos invàlid." msgid "Scratch codes must be 16 Base32 characters." msgstr "Els codis Scratch han de ser de 16 caràcters en Base32." -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "El codi Scratch no és vàlid." @@ -647,90 +648,90 @@ msgstr "Activa les actualitzacions experimentals" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "No pots formar part de més d'{count} organització pública." msgstr[1] "No pots formar part de més de {count} organitzacions públiques." -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "Descarregar comentaris?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "Descarregar enviaments?" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "Filtrar per el glob del codi de problema:" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "Deixar-ho buit per a incluir tots els enviaments" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "Filtra per resultats:" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "Siusplau, seleccioneu com a mínim una cosa a descarregar." -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "Qualsevol jutge" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Nom d'usuari" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Contrasenya" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "Longitud del codi invàlida." -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "Resposta WebAuthn invàlida." -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "No hi ha hagut resposta WebAuthn." -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "Credencial WebAuthn invàlida." -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "Token d'autenticació en dos passos o codi Scratch invàlid." -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "S'ha d'especificar un totp_token o una webauthn_response." -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "El codi del problema ha de ser ^[a-z0-9]+$" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "Ja existeix un problema amb aquest codi." -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "La id del concurs ha de ser ^[a-z0-9]+$" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "Ja existeix un concurs amb aquesta clau." @@ -753,26 +754,42 @@ msgstr "en {time}" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Deixar-ho com LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "Només SVG" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "Només MathML" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax amb SVG en cas d'errada" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "Detectar la millor qualitat" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "El codi de la pàgina ha de ser ^[pcs]:[a-z0-9]+$|^b:\\d+$" @@ -954,7 +971,7 @@ msgstr "descripció" msgid "problems" msgstr "problemes" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "hora d'inici" @@ -1202,213 +1219,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "Veure concursos privats" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "Editar els concursos propis" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "Editar tots els concursos" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "Clonar concurs" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "Passar el MOSS al concurs" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "Puntuar concursos" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "Codi d'accés al concurs" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "Crear concursos privats" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "Canviar la visibilitat d'un concurs" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "Editar el script d'etiquetat del problema d'un concurs" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "Canviar el estatus de bloqueig del concurs" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "concurs" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "concursos" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "concurs associat" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "puntuació" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "temps acumulat" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "està desqualificat" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "Si aquest participant ha estat desqualificat." -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "camp de desempat" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "id de participació virtual" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "0 significa no virtual. En cas contrari la n-èssima participació virtual." -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "dades específiques del format del concurs" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "participació al concurs" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "participacions al concurs" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "punts" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "parcial" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "s'han passat els casos de prova preliminars" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "ordre" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "sobreescriptura de la longitud de prefix de sortida" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "Nombre màxim d'enviaments per a aquest problema, o deixa-ho en blanc per a no posar límit." -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "Per què incloure un problema al que no pots fer enviaments?" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "problema del concurs" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "problemes del concurs" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "enviament" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "participació" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "Si aquest enviament ha estat provat només en casos preliminars." -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "enviament de concurs" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "enviaments de concurs" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "classificació" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "puntuació" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "última puntuació" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "puntuació del concurs" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "puntuacions del concurs" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "resultat del MOSS del concurs" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "resultats del MOSS del concurs" @@ -1885,8 +1902,8 @@ msgid "Non-trailing spaces" msgstr "Espais que no estan al principi ni al final" #: judge/models/problem_data.py:28 -msgid "Unordered" -msgstr "No-ordenat" +msgid "Sorted" +msgstr "Ordenat" #: judge/models/problem_data.py:29 msgid "Byte identical" @@ -2057,7 +2074,7 @@ msgid "Edit all organizations" msgstr "Edita totes les organitzacions" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "organització" @@ -2098,7 +2115,7 @@ msgstr "membres" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2123,26 +2140,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 +msgid "site theme" +msgstr "" + +#: judge/models/profile.py:159 msgid "last access time" msgstr "data últim accés" -#: judge/models/profile.py:159 +#: judge/models/profile.py:160 msgid "last IP" msgstr "última IP" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "mostrar rang" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "Usuari Normal" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "Creador de Problemes" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2152,200 +2173,200 @@ msgstr "Creador de Problemes" msgid "Admin" msgstr "Administrador" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "silenciar el comentari" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "Alguns usuaris son més macos callats." -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "usuari desllistat" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "Aquest usuari no serà classificat." -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "script d'usuari" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "JavaScript definit per l'usuari per a la personalització del lloc." -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "concurs actual" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "motor matemàtic" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "El motor fet servir per a representar les matemàtiques." -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "TOTP 2FA activat" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "Fes clic per a activar l'Autenticació de dos passos basada en TOTP." -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn 2FA activat" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "Fes clic per a activar l'Autenticació de dos passos basada en WebAuthn." -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "clau TOTP" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "Clau de 32 caràcters en Base32 per a TOTP." -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "La clau TOTP ha d'estar buida o ser Base32." -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "codis Scratch" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "Array JSON de codis de 16 caràcters en Base32." -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "Els codis Scratch han d'estar buits o ser un Array JSON de codis de 16 caràcters en Base32." -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "Token de l'API" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "Token d'accés a l'API de 64 caràcters hexadecimals." -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "El token de l'API ha d'estar buit o ser hexadecimal" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "notes internes" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "Notes dels administradors sobre aquest usuari." -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "última data de descàrrega de dades" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "Mostra coses de desenvolupament en progrès" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "Editar ajustos de TOTP" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "perfil d'usuari" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "perfils d'usuaris" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "nom de dispositiu" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "ID de la credencial" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "clau pública" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "comptador de firmes" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "data de solicitud" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "estat" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "Pendent" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "Aprovat" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Rebutjat" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "motiu" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "petició d'unir-se a organització" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "peticions d'unir-se a organització" @@ -2588,15 +2609,15 @@ msgstr "Error Intern (error en el servidor del jutge)" msgid "submission time" msgstr "temps d'enviament" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "temps d'execució" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "ús de memòria" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "punts atorgats" @@ -2685,60 +2706,60 @@ msgstr "Canviar l'estat de bloqueig d'un enviament" msgid "submissions" msgstr "enviaments" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "enviament associat" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "codi font" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "Id del cas de proves" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "flag d'estat" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "punts possibles" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "nombre de lot (batch)" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "resultat del jutge" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "resultat extés del jutge" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "sortida del programa" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "cas de prova de l'enviament" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "casos de prova de l'enviament" @@ -2956,7 +2977,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "Pàgina %d d'Entradres" @@ -2981,7 +3002,7 @@ msgstr "" msgid "You already voted." msgstr "Ja has votat." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "Editat des de'l lloc web" @@ -2989,12 +3010,12 @@ msgstr "Editat des de'l lloc web" msgid "Editing comment" msgstr "Editant comentari" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "No es troba aquest concurs" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "No s'ha pogut trobar un concurs amb la clau \"%s\"." @@ -3003,111 +3024,111 @@ msgstr "No s'ha pogut trobar un concurs amb la clau \"%s\"." msgid "Contests" msgstr "Concursos" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "No es troba aquest concurs." -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "S'ha denegat l'accés al concurs \"%s\"" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "Clonar Concurs" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "El concurs no està en curs" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "\"%s\" no està en curs actualment." -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "BANEJAT" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "Has estat declarat persona non grata per aquest concurs. Estas vetat permanentment." -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "Entra el codi d'accés per a \"%s\"" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "No estas en el concurs \"%s\"." -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "Concursos en %(month)s" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "F Y" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "Estadístiques de %s" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "Classificacions de %s" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "???" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "La teva participació en %(contest)s" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "Participació de %(user)s en %(contest)s" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "En directe" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Participació" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "Resultats del MOSS per a %s" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "Executant sistema anticòpia MOSS per a %s..." -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "Etiqueta de concurs: %s" @@ -3149,167 +3170,167 @@ msgstr "No s'ha pogut trobar una organització amb la clau \"%s\"." msgid "Could not find such organization." msgstr "No s'ha trobat aquesta organització." -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Organitzacions" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "Membres de %s" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "Unint-se a l'organització" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "Ja estàs en l'organització." -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "Aquesta organització no està oberta." -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "Abandonant l'organització" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "No estas en \"%s\"." -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "Sol·licitud d'unir-se a %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "Detall de la sol·licitud" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "Administrants sol·licituds per a %s" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "La teva organització només pot tenir %d membre més." msgstr[1] "La teva organització només pot tenir %d membres més." -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "No pots aprovar %d usuari." msgstr[1] "No pots aprovar %d usuaris." -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "%d usuari aprovat." msgstr[1] "%d usuaris aprovats." -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "%d usuari denegat." msgstr[1] "%d usuaris denegats." -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "Editant %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "No es pot editar l'organització" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "No tens permisos per editar aquesta organització." -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "No tens permisos per fer fora a gent d'aquesta organització." -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "No pots fer fora a aquest usuari" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "L'usuari que estas intentant expulsar no existeix!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "L'usuari que estas intentant expulsar no està en l'organització: %s" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "No existeix aquest problema" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "No s'ha pogut trobar un problema amb la clau \"%s\"." -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "Editorial per a {0}" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "èxit" @@ -3405,17 +3426,17 @@ msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "Enviament %d temporitzat per a ser rejutjat amb èxit." msgstr[1] "Enviaments %d temporitzats per a ser rejutjats amb èxit." -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "Millor solucions per a %s" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "Millor solucions per a %(problem)s en %(contest)s" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "Millor solucions per al problema %(number)s en %(contest)s" @@ -3445,11 +3466,11 @@ msgstr "El teu proveïdor de correu electrònic no està permés degut a un hist msgid "Register" msgstr "Registra't" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "Clau d'Activació Invàlida" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "Error d'autenticació" @@ -3461,7 +3482,7 @@ msgstr "" msgid "Language statistics" msgstr "Estadístiques de llenguatge" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "Estat" @@ -3492,46 +3513,46 @@ msgstr "Enviament de %(problem)s per %(user)s" msgid "All submissions" msgstr "Tots els enviaments" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "Tots els meus enviaments" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "Tots els enviaments per %s" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "Tots els enviaments per a %s" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "Els meus enviaments per a %(problem)s" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "Els enviaments de %(user)s per a %(problem)s" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "Els meus enviaments per a %(contest)s" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "Els enviaments de %(user)s per a %(contest)s" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "Els enviaments de {user} per {problem} en {contest}" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "Els enviaments de {user} per al problema {number} en {contest}" @@ -3586,99 +3607,103 @@ msgstr "ningú" msgid "New Ticket Message For: %s" msgstr "Nou missatge de Ticket per a: %s" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "Activar Autenticació en Dos Passos" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "Deshabilitar l'Autenticació en Dos Passos" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "Resposta WebAuthn invàlida" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "Nom invàlid" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "Els usuaris amb permisos elevats no poden desactivar l'autenticació en dos passos" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "Realitzeu Autenticació en Dos Passos" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "No hi ha tal usuari" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "No hi ha cap usuari amb la id \"%s\"." -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "El meu compte" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "Usuari %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "Iniciar sessió" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "j M Y, G:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "Preparant les teves dates..." -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "Descarrega les teves dades" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "No es pot editar el perfil" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "Actualitzat al lloc web" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Edita el perfil" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "Token API de l'usuari generat" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "Token API de l'usuari esborrat" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "Codis Scratch de l'usuari generat" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Taula de classificació" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3707,13 +3732,13 @@ msgstr "Acaba" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "Inhabilita" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "Habilita" @@ -3733,48 +3758,48 @@ msgstr "" msgid "Edit user" msgstr "Editar usuari" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "Hola, %(username)s." -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "Tanca la sessió" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Iniciar sessió" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "o" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "Registra't" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "espectador" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "Aquesta aplicació funciona millor amb JavaScript activat." -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Editar" @@ -3975,15 +4000,15 @@ msgstr "Puntuació" msgid "No votes" msgstr "Sense vots" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4064,7 +4089,7 @@ msgstr "Calendari" msgid "Info" msgstr "Informació" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "Estadístiques" @@ -4279,7 +4304,7 @@ msgstr "Tasa de AC" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "Usuaris" @@ -4287,7 +4312,7 @@ msgstr "Usuaris" msgid "Editorials" msgstr "Editorials" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "Editorial" @@ -4452,19 +4477,19 @@ msgstr "Eliminar la Descalificació" msgid "Disqualify" msgstr "Descalificar" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "Estàs segur que vols descalificar aquesta participació?" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "Estàs segur que vols eliminar la descalificació d'aquesta participació?" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "Veure la participació de l'usuari" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "Mostrar organitzacions" @@ -4651,7 +4676,7 @@ msgid "There are no requests to approve." msgstr "No hi ha cap solicitud per a aprovar." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "Esborrar?" @@ -4687,59 +4712,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "Entra un nou codi per al problema clonat:" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "Veure el YAML" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "Mostra les columnes:" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "Prefixe de sortida" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "Límit de sortida" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "Verificador" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "Arguments del generador" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "Tipus" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "Fitxer d'entrada" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "Fitxer de sortida" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "Casos de prova preliminars?" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "Envia!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "Afegeix nou cas" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4757,100 +4782,100 @@ msgid_plural "Authors:" msgstr[0] "Autor/a:" msgstr[1] "Autors/es:" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "Filtra per tipus..." -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "Problemes populars" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Categoria" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "Tipus" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "AC %%" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "Deixa-ho buit per no filtrar per llenguatge" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "Deixa-ho buit per no filtrar per resultat" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "Es necessiten valors vàlids per les ID d'inici i de finalització." -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "La ID de finalització ha de ser posterior a la d'inici." -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "Esteu a punt de rejutjar {count} enviaments. Segur?" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "Esteu a punt de rejutjar uns quants enviaments. Segur?" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "Rejutjar Enviaments" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "Filtra per ID:" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "ID d'inici:" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "ID de final:" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "Aquest rang inclou ambdós punts." -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "Filtra per llenguatge:" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "Rejutja els enviaments seleccionats" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "Recalifica Tot" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "Això repuntuarà %(count)s enviament." msgstr[1] "Això repuntuarà %(count)s enviaments." -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "Estàs segur que vols repuntuar %(count)s enviament?" msgstr[1] "Estàs segur que vols repuntuar %(count)s enviaments?" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "Repuntua tots els enviaments" @@ -4927,11 +4952,11 @@ msgstr "Punts:" msgid "(partial)" msgstr "(parcial)" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "Temps límit:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "Límit de memòria:" @@ -4968,14 +4993,6 @@ msgstr "Demanar aclariment" msgid "Report an issue" msgstr "Notifica un problema" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "Temps Límit:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "Límit de Memòria:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "Cerca de problema" @@ -5013,8 +5030,8 @@ msgstr "Tipus de problemes" msgid "Point range" msgstr "Rang de punts" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "Vés" @@ -5023,7 +5040,7 @@ msgid "Random" msgstr "Aleatori" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "ID" @@ -5035,31 +5052,31 @@ msgstr "Resultat" msgid "Date" msgstr "Data" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "El teu codi pot contenir com a màxim 65536 caràcters." -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "Atenció!" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "El teu llenguatge per defecte, %(language)s, no està disponible per aquest problema i ha estat deseleccionat." -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "Tens 0 enviaments disponibles" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "No hi ha cap jutge disponible per a aquest problema." @@ -5267,7 +5284,7 @@ msgstr "L'equip de %(site_name)s" msgid "Password reset on %(site_name)s" msgstr "Reinici de contrasenya en %(site_name)s" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continua >" @@ -5280,36 +5297,36 @@ msgstr "El registre està tancat actualment. Siusplau contacta amb un administra msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "T'has registrat amb èxit. Un correu ha estat enviat a l'adreça que has proporcionat per a confirmar el teu registre." -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "(de nou, per confirmar)" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "(tria la ciutat més propera)" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "tria del mapa" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "Llenguatge per defecte" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "Organitzacions afiliades" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "Avisa'm sobre concursos vinents" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "Registra't!" @@ -5351,17 +5368,17 @@ msgid "Enable Two Factor Authentication" msgstr "Activar Autenticació en Dos Passos" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5370,7 +5387,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5388,12 +5405,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "WebAuthn no és suportat pel teu navegador." #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "No s'ha pogut connectar amb el servidor." @@ -5491,23 +5508,23 @@ msgstr "Informació d'error" msgid "Are you sure you want to rejudge?" msgstr "Estàs segur que vols rejutjar?" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "Filtra per estat..." -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "Filtra per llenguatge..." -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "Filtra enviaments" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "Total:" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "Has estat desconnectat. Actualitza la pàgina per mostrar les últimes actualitzacions." @@ -5671,33 +5688,33 @@ msgstr "Reobert: " msgid "Closed: " msgstr "Tancat: " -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "Activar les notificacions d'escriptori" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "Mostra només els meus tickets" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "Usuari remitent" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "Títol" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "Destinataris" @@ -5748,131 +5765,135 @@ msgstr "Notes de la persona assignada" msgid "Nothing here." msgstr "Aquí no hi ha res." -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "Classificació" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "Cerca per l'adreça..." -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "Esteu segur que voleu generar o regenerar el token API?" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "Això invalidarà qualsevol token API anterior." -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "També permet accés a la compta sense l'Autenticació de dos passos." -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "No podràs veure el teu token API després de que deixis aquesta pàgina!" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "Generant..." -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "Elimina" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "Estàs segur que vols suprimir el teu token API?" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "Generar" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "Segur que vols suprimir aquesta clau de seguretat?" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "No podràs veure els teus codis Scratch després de que deixis aquesta pàgina!" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "Autodescripció:" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "Tria la ciutat més propera" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Zona horària:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Llenguatge:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "Tema de l'editor:" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "Motor matemàtic:" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "Organitzacions afiliades:" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "Canviar avatar" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "Canvia la teva contrasenya" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" +msgstr "Token de l'API:" + +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" +msgstr "Ocult" + +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "S'ha activat l'autenticació de dos passos:" -#: templates/user/edit-profile.html:360 +#: templates/user/edit-profile.html:377 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:363 +#: templates/user/edit-profile.html:380 msgid "Scratch codes:" msgstr "Codis Scratch:" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" -msgstr "Ocult" - -#: templates/user/edit-profile.html:377 +#: templates/user/edit-profile.html:394 msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:402 msgid "Two-factor Authentication is disabled:" msgstr "S'ha desactivat l'autenticació de dos passos:" -#: templates/user/edit-profile.html:393 -msgid "API token:" -msgstr "Token de l'API:" - #: templates/user/edit-profile.html:410 msgid "Security keys:" msgstr "Claus de seguretat:" diff --git a/locale/ca/LC_MESSAGES/djangojs.po b/locale/ca/LC_MESSAGES/djangojs.po index c8e6d1c6c2..c6be9021ba 100644 --- a/locale/ca/LC_MESSAGES/djangojs.po +++ b/locale/ca/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Catalan\n" "Language: ca_ES\n" @@ -17,14 +17,14 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "%d dia %h:%m:%s" msgstr[1] "%d dies %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 0747eaa223..746057e051 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-21 00:49\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Katalanisch" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Deutsch" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Englisch" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Spanisch" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Französisch" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Kroatisch" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Ungarisch" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Japanisch" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Koreanisch" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "Brasilianisches Portugiesisch" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Rumänisch" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Russisch" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Serbisch (Lateinisches Alphabet)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Türkisch" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Vietnamesisch" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Chinesisch (vereinfacht)" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Chinesisch (traditionell)" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "Aktivierung Erfolgreich!" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "Registrierung abgeschlossen" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "Registrierung nicht erlaubt" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Startseite" @@ -140,19 +140,19 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problem" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -231,29 +231,29 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "" @@ -265,9 +265,9 @@ msgstr "" msgid "Summary" msgstr "" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -298,8 +298,8 @@ msgid "Taxonomy" msgstr "Systematik" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" @@ -308,9 +308,9 @@ msgstr "" msgid "Limits" msgstr "Grenzen" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Programmiersprache" @@ -355,8 +355,8 @@ msgstr[1] "" msgid "Mark problems as private" msgstr "" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -367,19 +367,19 @@ msgstr "" msgid "timezone" msgstr "" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "" @@ -398,26 +398,26 @@ msgstr[1] "" msgid "Recalculate scores" msgstr "" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Nicht" @@ -449,57 +449,57 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "" -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "" -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "" msgstr[1] "" -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -524,6 +524,7 @@ msgid "Comment body" msgstr "" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "" @@ -631,7 +632,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -647,90 +648,90 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "" msgstr[1] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "" @@ -753,26 +754,42 @@ msgstr "" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 -msgid "Leave as LaTeX" +#: judge/models/choices.py:24 +msgid "Follow site theme" msgstr "" #: judge/models/choices.py:60 -msgid "SVG only" +msgid "Leave as LaTeX" msgstr "" #: judge/models/choices.py:61 -msgid "MathML only" +msgid "SVG only" msgstr "" #: judge/models/choices.py:62 -msgid "MathJax with SVG fallback" +msgid "MathML only" msgstr "" #: judge/models/choices.py:63 +msgid "MathJax with SVG fallback" +msgstr "" + +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" @@ -954,7 +971,7 @@ msgstr "" msgid "problems" msgstr "" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "" @@ -1202,213 +1219,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1885,7 +1902,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2057,7 +2074,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "" @@ -2098,7 +2115,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2123,26 +2140,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2152,200 +2173,200 @@ msgstr "" msgid "Admin" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2588,15 +2609,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2685,60 +2706,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -2956,7 +2977,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2981,7 +3002,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -2989,12 +3010,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "" @@ -3003,111 +3024,111 @@ msgstr "" msgid "Contests" msgstr "" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3149,167 +3170,167 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "erfolgreich" @@ -3405,17 +3426,17 @@ msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3445,11 +3466,11 @@ msgstr "" msgid "Register" msgstr "" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "" @@ -3461,7 +3482,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "" @@ -3492,46 +3513,46 @@ msgstr "" msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3586,99 +3607,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3707,13 +3732,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3733,48 +3758,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3975,15 +4000,15 @@ msgstr "" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4064,7 +4089,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "" @@ -4279,7 +4304,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "" @@ -4287,7 +4312,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4452,19 +4477,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "" @@ -4651,7 +4676,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "" @@ -4687,59 +4712,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4757,100 +4782,100 @@ msgid_plural "Authors:" msgstr[0] "" msgstr[1] "" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4927,11 +4952,11 @@ msgstr "" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "" @@ -4968,14 +4993,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "" @@ -5013,8 +5030,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "" @@ -5023,7 +5040,7 @@ msgid "Random" msgstr "" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "" @@ -5035,31 +5052,31 @@ msgstr "" msgid "Date" msgstr "" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5267,7 +5284,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5280,36 +5297,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5351,17 +5368,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5370,7 +5387,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5388,12 +5405,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5491,23 +5508,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5671,33 +5688,33 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5748,129 +5765,133 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/de/LC_MESSAGES/djangojs.po b/locale/de/LC_MESSAGES/djangojs.po index 47a3764a81..b4d4c6eebc 100644 --- a/locale/de/LC_MESSAGES/djangojs.po +++ b/locale/de/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -17,14 +17,14 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "" msgstr[1] "" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" diff --git a/locale/el/LC_MESSAGES/django.po b/locale/el/LC_MESSAGES/django.po index be4d314149..462d4ba8b3 100644 --- a/locale/el/LC_MESSAGES/django.po +++ b/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Καταλανικά" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Γερμανικά" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Ελληνικά" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Αγγλικά" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Ισπανικά" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Γαλλικά" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Κροάτικα" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Ουγγρικά" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Ιαπωνικά" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Κορεατικά" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "Πορτογαλικά Βραζιλίας" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Ρουμανικά" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Ρωσικά" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Σερβικά (Λατινικά)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Τουρκικά" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Βιετναμέζικα" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Απλοποιημένα Κινέζικα" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Παραδοσιακά Κινέζικα" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "Επιτυχής Ενεργοποίηση!" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "Η Εγγραφή Ολοκληρώθηκε" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "Δεν Επιτρέπεται Εγγραφή" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Αρχική" @@ -140,19 +140,19 @@ msgid "Included contests" msgstr "Συμπεριλαμβανόμενοι διαγωνισμοί" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Πρόβλημα" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Προβλήματα" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -231,29 +231,29 @@ msgstr[1] "%d διαγωνισμοί ξεκλειδώθηκαν επιτυχώς msgid "Unlock contest submissions" msgstr "Ξεκλείδωμα υποβολής διαγωνισμών" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "%d υποβολή προγραμματίστηκε επιτυχώς για επανεξέταση." msgstr[1] "%d υποβολές προγραμματίστηκαν επιτυχώς για επανεξέταση." -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "%d συμμετοχή επανυπολογίστηκε." msgstr[1] "%d συμμετοχές επανυπολογίστηκαν." -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "Επανυπολογισμός αποτελεσμάτων" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "όνομα χρήστη" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "εικονικό" @@ -265,9 +265,9 @@ msgstr "διαδρομή συνδέσμου" msgid "Summary" msgstr "Περίληψη" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "χρήστης" @@ -298,8 +298,8 @@ msgid "Taxonomy" msgstr "Ταξινομία" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Πόντοι" @@ -308,9 +308,9 @@ msgstr "Πόντοι" msgid "Limits" msgstr "Όρια" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Γλώσσα" @@ -355,8 +355,8 @@ msgstr[1] "%d προβλήματα επισημάνθηκαν επιτυχώς msgid "Mark problems as private" msgstr "Επισήμανση προβλημάτων ως ιδιωτικό" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -367,19 +367,19 @@ msgstr "πρόβλημα" msgid "timezone" msgstr "ζώνη ώρας" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Χρήστης" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "Email" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Ζώνη ώρας" @@ -398,26 +398,26 @@ msgstr[1] "%d χρήστες επανυπολογίζουν τη βαθμολο msgid "Recalculate scores" msgstr "Επανυπολογισμός βαθμολογίας" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "Αναπαραγωγή" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Περιγραφή" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Πληροφορίες" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Δυνατότητες" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Κανένα" @@ -449,57 +449,57 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s σε %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "Δεν έχετε την άδεια να επανεξετάσετε υποβολές." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "Δεν έχετε την άδεια να επανεξετάσετε ΤΟΣΕΣ πολλές υποβολές." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "Επανεξέταση των επιλεγμένων υποβολών" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d υποβολή αναβαθμολογήθηκε επιτυχώς." msgstr[1] "%d υποβολές αναβαθμολογήθηκαν επιτυχώς." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "Αναβαθμολόγηση των επιλεγμένων υποβολών" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Κωδικός προβλήματος" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Όνομα προβλήματος" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Ώρα" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Μνήμη" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "Κλειδωμένο" @@ -524,6 +524,7 @@ msgid "Comment body" msgstr "Σώμα σχολίου" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "Το κομμάτι σου είναι σιωπηλό, μικρέ βάτραχε." @@ -631,7 +632,7 @@ msgstr "Μη έγκυρο διακριτικό ελέγχου ταυτότητα msgid "Scratch codes must be 16 Base32 characters." msgstr "Οι κωδικοί scratch πρέπει να είναι 16 χαρακτήρες βάσης32." -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "Μη έγκυρος κωδικός scratch." @@ -647,90 +648,90 @@ msgstr "Ενεργοποίηση πειραματικών λειτουργιών msgid "You must solve at least one problem before you can update your profile." msgstr "Πρέπει να λύσετε τουλάχιστον ένα πρόβλημα πριν να έχετε τη δυνατότητα να ενημερώσετε το προφίλ σας." -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "Δεν μπορείτε να είστε μέρος σε περισσότερους από {count} δημόσιου οργανισμού." msgstr[1] "Δεν μπορείτε να είστε μέλος σε περισσότερους από {count} δημόσιους οργανισμούς." -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "Λήψη σχολίων;" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "Λήψη υποβολών;" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "Φιλτράρισμα ανά glob κώδικα προγράμματος:" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "Αφήστε κενό για να συμπεριλάβετε όλες τις υποβολές" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "Φιλτράρισμα κατά αποτέλεσμα:" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "Παρακαλώ επιλέξτε τουλάχιστον ένα πράγμα για λήψη." -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "Οποιοσδήποτε κριτής" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Όνομα Χρήστη" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Κωδικόs πρόσβασης" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "Μη έγκυρο μήκος κωδικού." -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "Άκυρη WebAuthn απάντηση." -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "Δεν υπάρχει πρόκληση WebAuthn." -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "Μη έγκυρο αναγνωριστικό ID διαπιστευτηρίου WebAuthn." -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "Μη έγκυρο διακριτικό ελέγχου ταυτότητας δύο παραγόντων ή κωδικού scratch." -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "Πρέπει να καθορίσετε είτε totp_token ή webauthn_response." -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Ο κωδικός προβλήματος πρέπει να είναι ^[a-z0-9]+$" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "Πρόβλημα με αυτόν τον κωδικό υπάρχει ήδη." -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "Το αναγνωριστικό του διαγωνισμού πρέπει να είναι ^[a-z0-9]+$" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "Διαγωνισμός με αυτό το κλειδί υπάρχει ήδη." @@ -753,26 +754,42 @@ msgstr "στις {time}" msgid "Unrated" msgstr "Μη αξιολογημένο" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Αφήστε ως LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "SVG μόνο" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "MathML μόνο" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax με SVG εναλλακτική" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "Ανίχνευση καλύτερης ποιότητας" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "Φωτεινό" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "Σκοτεινό" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "Ο κωδικός σελίδας πρέπει να είναι ^[pcs]:[a-z0-9]+$|^b:\\d+$" @@ -954,7 +971,7 @@ msgstr "περιγραφή" msgid "problems" msgstr "προβλήματα" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "ώρα έναρξης" @@ -1202,213 +1219,213 @@ msgstr "πόντοι ακρίβειας" msgid "Number of digits to round points to." msgstr "Αριθμός ψηφίων στρογγυλοποίησης πόντων." -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "Δείτε ιδιωτικούς διαγωνισμούς" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "Επεξεργασία δικών σας διαγωνισμών" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "Επεξεργασία όλων των διαγωνισμών" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "Κλωνοποίηση διαγωνισμού" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "Διαγωνισμός MOSS" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "Αξιολόγηση διαγωνισμών" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "Κωδικοί πρόσβασης διαγωνισμού" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "Δημιουργία ιδιωτικών διαγωνισμών" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "Αλλαγή ορατότητας διαγωνισμού" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "Επεξεργαστείτε το script ετικέτας προβλήματος διαγωνισμού" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "Αλλαγή κατάστασης κλειδώματος του διαγωνισμού" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "διαγωνισμός" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "διαγωνισμοί" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "σχετικός διαγωνισμός" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "βαθμολογία" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "αθροιστικός χρόνος" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "έχει αποκλειστεί" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "Εάν αυτή η συμμετοχή έχει αποκλειστεί." -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "τάι μπρέικ πεδίο" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "id εικονικής συμμετοχής" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "0 σημαίνει μη εικονική, εναλλακτικά η n-ιοστή εικονική συμμετοχή." -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "ειδικά δεδομένα μορφής διαγωνισμού" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "συμμετοχή διαγωνισμού" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "συμμετοχές διαγωνισμού" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "πόντοι" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "εν μέρει" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "είναι προδοκιμασμένο" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "σειρά" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "παράκαμψη μήκους προθέματος εξόδου" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "μέγιστες υποβολές" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "Μέγιστος αριθμός υποβολών για αυτό το πρόβλημα ή αφήστε κενό για χωρίς όριο." -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "Γιατί να συμπεριλάβετε πρόβλημα στο οποίο δεν μπορείτε να υποβάλετε;" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "πρόβλημα διαγωνισμού" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "προβλήματα διαγωνισμού" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "υποβολή" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "συμμετοχή" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "Εάν αυτή η υποβολή έτρεξε μόνο σε προδοκιμές." -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "υποβολή διαγωνισμού" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "υποβολές διαγωνισμού" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "βαθμίδα" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "αξιολόγηση" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "ακατέργαστη αξιολόγηση" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "επίδοση στο διαγωνισμό" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "τελευταία αξιολόγηση" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "αξιολόγηση διαγωνισμού" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "αξιολογήσεις διαγωνισμού" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "αποτέλεσμα διαγωνισμού moss" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "αποτελέσματα διαγωνισμού moss" @@ -1885,8 +1902,8 @@ msgid "Non-trailing spaces" msgstr "Χωρίς κενά στο τέλος" #: judge/models/problem_data.py:28 -msgid "Unordered" -msgstr "Μη ταξινομημένο" +msgid "Sorted" +msgstr "" #: judge/models/problem_data.py:29 msgid "Byte identical" @@ -2057,7 +2074,7 @@ msgid "Edit all organizations" msgstr "Επεξεργασία όλων των οργανισμών" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "οργανισμός" @@ -2098,7 +2115,7 @@ msgstr "μέλη" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "κατηγορία" @@ -2123,26 +2140,30 @@ msgid "Ace theme" msgstr "Ace θέμα" #: judge/models/profile.py:158 +msgid "site theme" +msgstr "" + +#: judge/models/profile.py:159 msgid "last access time" msgstr "τελευταία ώρα πρόσβασης" -#: judge/models/profile.py:159 +#: judge/models/profile.py:160 msgid "last IP" msgstr "τελευταία IP" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "εμφάνιση βαθμίδας" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "Κανονικός Χρήστης" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "Δημιουργός Προβλημάτων" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2152,200 +2173,200 @@ msgstr "Δημιουργός Προβλημάτων" msgid "Admin" msgstr "Διαχειριστής" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "σίγαση σχολίου" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "Μερικοί χρήστες είναι στα καλύτερά τους όταν είναι σιωπηλοί." -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "μη καταχωρημένος χρήστης" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "Ο χρήστης δεν θα βαθμονομηθεί." -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "script χρήστη" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "Καθορισμένη από το χρήστη JavaScript για εξατομίκευση ιστότοπου." -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "τρέχων διαγωνισμός" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "μηχανή μαθηματικών" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "Η μηχανή απεικόνισης που χρησιμοποιείται για την απεικόνιση μαθηματικών." -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "TOTP 2FA ενεργοποιημένο" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "Τσεκάρετε για να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων βάσει TOTP." -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn 2FA ενεργοποιημένο" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "Τσεκάρετε για να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων βάσει WebAuthn." -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "TOTP κλειδί" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "32 χαρακτήρων βάσης32-κωδικοποιημένο κλειδί για TOTP." -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "Το κλειδί TOTP πρέπει να είναι άδειο ή βάσης32." -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "κωδικοί scratch" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "JSON πίνακας 16 χαρακτήρων βάσης32-κωδικοποιημένων κωδικών για scratch." -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "Οι κωδικοί scratch πρέπει να είναι κενοί ή πίνακας JSON κωδικών 16 χαρακτήρων βάσης32." -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "τελευταίος κωδικός χρόνου TOTP" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "Διακριτικό API" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "Hex-κωδικοποιημένο διακριτικό πρόσβασης API 64 χαρακτήρων." -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "Το διακριτικό API πρέπει να είναι Κανένα ή δεκαεξαδικό" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "εσωτερικές σημειώσεις" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "Σημειώσεις για διαχειριστές σχετικά με αυτόν τον χρήστη." -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "ώρα τελευταίας λήψης δεδομένων" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "παράκαμψη εμφάνιση ονόματος" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "Εμφάνιση ονόματος στη θέση του ονόματος χρήστη." -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "Δείχνει πράγματα ανάπτυξης σε εξέλιξη" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "Επεξεργασία ρυθμίσεων TOTP" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "προφίλ χρήστη" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "προφίλ χρηστών" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "όνομα συσκευής" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "διαπιστευτήρια ID" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "δημόσιο κλειδί" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "μετρητής υπογραφής" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "WebAuthn διαπιστευτήριο: %(name)s" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "WebAuthn διαπιστευτήριο" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "WebAuthn διαπιστευτήρια" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "ώρα αιτήματος" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "κατάσταση" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "Εκκρεμεί" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "Εγκρίθηκε" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Απορρίφθηκε" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "αιτία" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "αίτηση συμμετοχής οργανισμού" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "αιτήσεις συμμετοχής οργανισμού" @@ -2588,15 +2609,15 @@ msgstr "Εσωτερικό Σφάλμα (εκτίμηση σφάλματος δ msgid "submission time" msgstr "ώρα υποβολής" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "χρόνος εκτέλεσης" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "χρήση μνήμης" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "χορηγηθέντες πόντοι" @@ -2685,60 +2706,60 @@ msgstr "Αλλαγή κατάστασης κλειδώματος υποβολή msgid "submissions" msgstr "υποβολές" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "συσχετιζόμενη υποβολή" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "πηγαίος κώδικας" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "πηγή υποβολής" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "πηγές υποβολής" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "ID δοκιμαστικής περίπτωσης" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "σημαία κατάστασης" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "δυνατοί πόντοι" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "αριθμός δεσμίδας" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "σχόλια κριτή" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "εκτενή σχόλια κριτή" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "έξοδος προγράμματος" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "δοκιμαστική περίπτωση υποβολής" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "δοκιμαστικές περιπτώσεις υποβολής" @@ -2956,7 +2977,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "Σελίδα %d Αναρτήσεων" @@ -2981,7 +3002,7 @@ msgstr "Δεν μπορείτε να ψηφίσετε για τα δικά σα msgid "You already voted." msgstr "Έχετε ήδη ψηφίσει." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "Επεξεργάστηκε από την ιστοσελίδα" @@ -2989,12 +3010,12 @@ msgstr "Επεξεργάστηκε από την ιστοσελίδα" msgid "Editing comment" msgstr "Επεξεργασία σχολίου" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "Δεν υπάρχει τέτοιος διαγωνισμός" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "Αδυναμία εύρεσης διαγωνισμού με κλειδί \"%s\"." @@ -3003,111 +3024,111 @@ msgstr "Αδυναμία εύρεσης διαγωνισμού με κλειδί msgid "Contests" msgstr "Διαγωνισμοί" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "Αδυναμία εύρεσης τέτοιου διαγωνισμού." -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "Πρόσβαση στο διαγωνισμό \"%s\" απορρίφθηκε" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "Κλωνοποίηση Διαγωνισμού" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "Κλωνοποιημένος διαγωνισμός από %s" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "Ο διαγωνισμός δεν βρίσκεται σε εξέλιξη" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "\"%s\" δεν βρίσκεται σε εξέλιξη." -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "Αποκλεισμένος από συμμετοχή" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "Έχετε κηρυχθεί persona non grata για αυτόν τον διαγωνισμό. Είστε μόνιμα αποκλεισμένοι από το να συμμετάσχετε σε αυτόν τον διαγωνισμό." -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "Αδυναμία εισόδου" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "Δεν έχετε τη δυνατότητα να συμμετάσχετε σε αυτόν τον διαγωνισμό." -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "Εισάγετε κωδικό πρόσβασης για το \"%s\"" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "Δεν είστε στο διαγωνισμό \"%s\"." -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "Διαγωνισμοί %(month)s" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "F Y" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "%s Στατιστικά" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "%s Κατάταξη" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "???" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "Η συμμετοχή σας στο %(contest)s" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "Συμμετοχή του/της %(user)s στο %(contest)s" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "Ζωντανά" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Συμμετοχή" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "%s MOSS Αποτελέσματα" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "Εκτέλεση MOSS για %s..." -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "Ετικέτα διαγωνισμού: %s" @@ -3149,167 +3170,167 @@ msgstr "Αδυναμία εύρεσης οργανισμού με κλειδί \ msgid "Could not find such organization." msgstr "Αδυναμία εύρεσης τέτοιου οργανισμού." -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Οργανισμοί" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "%s Μέλη" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "Εγγραφή στον οργανισμό" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "Είστε ήδη μέλος αυτού του οργανισμού." -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "Αυτός ο οργανισμός δεν είναι ανοιχτός." -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "Αποχώρηση από τον οργανισμό" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "Δεν είστε στο \"%s\"." -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "Δεν μπορείτε να αιτηθείτε να εγγραφείται στο %s" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "Έχετε ήδη ένα αίτημα σε εκκρεμότητα για εγγραφή στο %s." -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "Αίτηση εγγραφής στο %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "Λεπτομέρειες αίτησης εγγραφής" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "Διαχείριση αιτήσεων εγγραφής για %s" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "Δεν μπορείτε να εγκρίνετε %d χρήστη." msgstr[1] "Δεν μπορείτε να εγκρίνετε %d χρήστες." -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "Εγκρίθηκε ο χρήστης %d." msgstr[1] "Εγκρίθηκαν οι χρήστες %d." -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "Απορρίφθηκε ο χρήστης %d." msgstr[1] "Απορρίφθηκαν οι χρήστες %d." -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "Επεξεργασία %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "Αδυναμία επεξεργασίας οργανισμού" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "Δεν έχετε δικαιώμα να επεξεργαστείτε αυτόν τον οργανισμό." -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "Δεν έχετε δικαιώμα να αποβάλλετε κόσμο από αυτόν τον οργανισμό." -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "Αδυναμία αποβολής χρήστη" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "Ο χρήστης που προσπαθείτε να αποβάλλετε δεν υπάρχει!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "Ο χρήστης που προσπαθείτε να αποβάλλετε δε βρίσκεται στον οργανισμό: %s" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Κατηγορία {name} στο {organization}" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Κατηγορία {name} - {organization}" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "Αίτηση εγγραφής του {name} στο {organization}" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "Δεν υπάρχει τέτοιο πρόβλημα" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "Αδυναμία εύρεσης προβλήματος με κωδικό \"%s\"." -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "Εξήγηση για {0}" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "Δεν υπάρχει τέτοια εξήγηση" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "Αδυναμία εύρεσης εξήγησης με κωδικό \"%s\"." -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "επιτυχία" @@ -3405,17 +3426,17 @@ msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "Επιτυχής προγραμματισμός υποβολής %d για κρίση εκ νέου." msgstr[1] "Επιτυχής προγραμματισμός υποβολών %d για κρίση εκ νέου." -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "Καλύτερες λύσεις για %s" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "Καλύτερες λύσεις για %(problem)s στο %(contest)s" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "Καλύτερες λύσεις για το πρόβλημα %(number)s στο %(contest)s" @@ -3445,11 +3466,11 @@ msgstr "Ο πάροχος email σας δεν επιτρέπεται λόγω ι msgid "Register" msgstr "Εγγραφή" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "Μη Έγκυρο Κλειδί Ενεργοποίησης" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "Αποτυχία ελέγχου ταυτότητας" @@ -3461,7 +3482,7 @@ msgstr "" msgid "Language statistics" msgstr "Στατιστικά γλωσσών" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "Κατάσταση" @@ -3492,46 +3513,46 @@ msgstr "Υποβολή για %(problem)s από %(user)s" msgid "All submissions" msgstr "Όλες οι υποβολές" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "Όλες οι υποβολές μου" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "Όλες οι υποβολές από %s" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "Όλες οι υποβολές για %s" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "Οι υποβολές μου για %(problem)s" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "Υποβολές του/της %(user)s για %(problem)s" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "Οι υποβολές μου στο %(contest)s" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "Υποβολές του/της %(user)s στο %(contest)s" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "Υποβολές του/της {user} για {problem} στο {contest}" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "Υποβολές του/της {user} για το πρόβλημα {number} στο {contest}" @@ -3586,99 +3607,103 @@ msgstr "κανένας" msgid "New Ticket Message For: %s" msgstr "Νέο Μήνυμα Αιτήματος Για: %s" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "Ενεργοποίηση Ταυτοποίησης Δύο Παραγόντων" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "Ανανέωση Ταυτοποίησης Δύο Παραγόντων" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "Απενεργοποίηση Ταυτοποίησης Δύο Παραγόντων" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "Μη έγκυρη WebAuthn απάντηση" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "Μη έγκυρο όνομα" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "Το προσωπικό δεν μπορεί να απενεργοποιήσει το 2FA" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "Εκτέλεση Ταυτοποίησης Δύο Παραγόντων" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "Δεν υπάρχει τέτοιος χρήστης" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "Δεν υπάρχει τέτοιο αναγνωριστικό χρήστη \"%s\"." -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "Ο λογαριασμός μου" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "Χρήστης %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "Σύνδεση" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "j M Y, G:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "Προετοιμασία των δεδομένων σας..." -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "Λήψη των δεδομένων σας" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "Ενημερώθηκε στην ιστοσελίδα" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Επεξεργασία προφίλ" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "Παρήχθη διακριτικό API για το χρήστη" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "Αφαιρέθηκε διακριτικό API για το χρήστη" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "Παρήχθη κωδικός scratch για το χρήστη" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Πίνακας Κατάταξης" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "Αποσυνδεθήκατε επιτυχώς." -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3707,13 +3732,13 @@ msgstr "Τερματισμός" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "Απενεργοποίηση" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "Ενεργοποίηση" @@ -3733,48 +3758,48 @@ msgstr "" msgid "Edit user" msgstr "Επεξεργασία χρήστη" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "Γεια σας, %(username)s." -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "Σταματήστε την προσωποποίηση" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "Αποσύνδεση" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Σύνδεση" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "ή" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "Εγγραφή" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "παρακολουθεί" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "Αυτός ο ιστότοπος λειτουργεί καλύτερα με ενεργοποιημένη JavaScript." -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "παρέχεται περήφανα από **DMOJ**" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Επεξεργασία" @@ -3975,15 +4000,15 @@ msgstr "Βαθμολογία" msgid "No votes" msgstr "Δεν υπάρχουν ψήφοι" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4064,7 +4089,7 @@ msgstr "Ημερολόγιο" msgid "Info" msgstr "Πληροφορίες" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "Στατιστικά" @@ -4279,7 +4304,7 @@ msgstr "Ποσοστό AC" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "Χρήστες" @@ -4287,7 +4312,7 @@ msgstr "Χρήστες" msgid "Editorials" msgstr "Εξηγήσεις" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "Εξήγηση" @@ -4452,19 +4477,19 @@ msgstr "Αναίρεση Αποκλεισμού" msgid "Disqualify" msgstr "Αποκλεισμός" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "Είστε βέβαιοι ότι θέλετε να αποκλείσετε αυτή τη συμμετοχή;" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "Είστε βέβαιοι ότι θέλετε να αναιρέσεται τον αποκλεισμό αυτής της συμμετοχής;" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "Προβολή συμμετοχής χρήστη" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "Εμφάνιση οργανισμών" @@ -4651,7 +4676,7 @@ msgid "There are no requests to approve." msgstr "Δεν υπάρχουν αιτήσεις για έγκριση." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "Διαγραφή;" @@ -4687,59 +4712,59 @@ msgstr "Ενημέρωση προεπισκόπησης" msgid "Enter a new code for the cloned problem:" msgstr "Εισάγετε έναν νέο κωδικό για το κλωνοποιημένο πρόβλημα:" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "Προβολή YAML" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "Εμφάνιση στηλών:" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "Πρόθεμα εξόδου" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "Όριο εξόδου" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "Ελεγκτής" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "Ορίσματα γεννήτριας" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "Τύπος" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "Αρχείο εισόδου" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "Αρχείο εξόδου" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "Προδοκιμή;" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "Υποβολή!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "Προσθήκη νέας περίπτωσης" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "Αποθήκευση" @@ -4757,100 +4782,100 @@ msgid_plural "Authors:" msgstr[0] "Συγγραφέας:" msgstr[1] "Συγγραφείς:" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "Φιλτράρισμα ανά τύπο..." -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "Χοτ προβλήματα" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Κατηγορία" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "Τύποι" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "AC %%" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "Αφήστε κενό για να μην φιλτράρετε ανά γλώσσα" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "Αφήστε κενό για να μην φιλτράρετε ανά αποτέλεσμα" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "Χρειάζονται έγκυρες τιμές τόσο για αναγνωριστικά (ID) έναρξης όσο και τέλους." -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "Το ID λήξης πρέπει να βρίσκεται μετά το ID έναρξης." -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "Πρόκειται να κρίνετε εκ νέου {count} υποβολές. Είστε σίγουροι ότι θέλετε να το κάνετε;" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "Πρόκειται να κρίνετε εκ νέου μερικές υποβολές. Είστε σίγουροι ότι θέλετε να το κάνετε;" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "Κρίση εκ νέου Υποβολών" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "Φιλτράρισμα ανά ID:" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "ID Έναρξης:" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "ID Λήξης:" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "Αυτό το εύρος περιλαμβάνει και τα δύο τελικά σημεία." -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "Φιλτράρισμα ανά γλώσσα:" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "Κρίση εκ νέου επιλεγμένων υποβολών" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "Αναβαθμολόγηση Όλων" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "Αυτό θα αναβαθμολογήσει %(count)s υποβολή." msgstr[1] "Αυτό θα αναβαθμολογήσει %(count)s υποβολές." -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "Είστε βέβαιοι ότι θέλετε να αναβαθμολογήσετε %(count)s υποβολή;" msgstr[1] "Είστε βέβαιοι ότι θέλετε να αναβαθμολογήσετε %(count)s υποβολές;" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "Αναβαθμολόγηση όλων των υποβολών" @@ -4927,11 +4952,11 @@ msgstr "Πόντοι:" msgid "(partial)" msgstr "(εν μέρει)" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "Χρονικό όριο:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "Όριο μνήμης:" @@ -4968,14 +4993,6 @@ msgstr "Αίτηση διευκρίνισης" msgid "Report an issue" msgstr "Αναφορά προβλήματος" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "Χρονικό Όριο:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "Όριο Μνήμης:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "Αναζήτηση προβλήματος" @@ -5013,8 +5030,8 @@ msgstr "Τύποι προβλήματος" msgid "Point range" msgstr "Εύρος πόντων" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "Μετάβαση" @@ -5023,7 +5040,7 @@ msgid "Random" msgstr "Τυχαίο" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "ID" @@ -5035,31 +5052,31 @@ msgstr "Αποτέλεσμα" msgid "Date" msgstr "Ημερομηνία" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "Ο πηγαίος κώδικας σας πρέπει να περιέχει το πολύ 65536 χαρακτήρες." -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "Προσοχή!" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "Η προεπιλεγμένη σας γλώσσα, %(language)s, δεν είναι διαθέσιμη για αυτό το πρόβλημα και έχει αποεπιλεγεί." -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "Σας έχει απομείνει %(left)s υποβολή" msgstr[1] "Σας έχουν απομείνει %(left)s υποβολές" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "Σας έχουν απομείνει 0 υποβολές" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "Κανένας κριτής δεν είναι διαθέσιμος για αυτό το πρόβλημα." @@ -5267,7 +5284,7 @@ msgstr "Η %(site_name)s ομάδα" msgid "Password reset on %(site_name)s" msgstr "Επαναφορά κωδικού πρόσβασης στο %(site_name)s" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Συνέχεια >" @@ -5280,36 +5297,36 @@ msgstr "Οι εγγραφές είναι κλειστές. Επικοινωνή msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "Έχετε εγγραφεί με επιτυχία. Ένα μήνυμα ηλεκτρονικού ταχυδρομείου έχει σταλεί στη διεύθυνση που δώσατε για επιβεβαίωση της εγγραφής σας." -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "(ξανά, για επιβεβαίωση)" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "(επιλέξτε την κοντινότερη μεγάλη πόλη)" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "επιλογή από χάρτη" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "Προεπιλεγμένη γλώσσα" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "Συνδεδεμένοι οργανισμοί" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "Ειδοποιήστε με για επερχόμενους διαγωνισμούς" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "Με την εγγραφή σας, συμφωνείτε με τους [Όροι & Προϋποθέσεις][0] μας." -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "Εγγραφή!" @@ -5351,17 +5368,17 @@ msgid "Enable Two Factor Authentication" msgstr "Ενεργοποίηση Ταυτοποίησης Δύο Παραγόντων" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "Παρακάτω είναι μια λίστα μίας χρήσης κωδικών scratch." #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "Οι κωδικοί αυτοί μπορούν να χρησιμοποιηθούν μόνο μία φορά και προορίζονται για επείγουσα χρήση." #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "Μπορείτε να χρησιμοποιήσετε αυτούς τους κωδικούς για να συνδεθείτε στο λογαριασμό σας ή να απενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων." @@ -5370,7 +5387,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "Εάν χρειάζεστε ποτέ περισσότερους κώδικες scratch, μπορείτε να τους παράξετε εκ νέου στην καρτέλα επεξεργασίας προφίλ." #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "Παρακαλώ καταγράψτε και αποθηκεύστε τους σε ασφαλές σημείο." @@ -5388,12 +5405,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "Αν χάσετε τη συσκευή ελέγχου ταυτότητας και δεν μπορείτε να χρησιμοποιήσετε τους κωδικούς scratch, %(site_name)s διαχειριστές ΔΕΝ θα είναι σε θέση να ανακτήσουν το λογαριασμό σας. Παρακαλώ κρατήστε τους κωδικούς scratch σας ασφαλείς!" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "Το πρόγραμμα περιήγησης σας δεν υποστηρίζει WebAuthn." #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "Αποτυχία επικοινωνίας με το διακομιστή." @@ -5491,23 +5508,23 @@ msgstr "Πληροφορίες σφάλματος" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "Φιλτράρισμα ανά κατάσταση..." -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "Φιλτράρισμα ανά γλώσσα..." -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "Φίλτρο υποβολών" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "Σύνολο:" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "Αποσυνδεθήκατε. Ανανεώστε για να εμφανιστούν οι τελευταίες ενημερώσεις." @@ -5671,33 +5688,33 @@ msgstr "Ανοιγμένα εκ νέου: " msgid "Closed: " msgstr "Κλειστά: " -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "Χρήση ειδοποίησης επιφάνειας εργασίας" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "Απόκρυψη κλειστών αιτημάτων" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "Εμφάνιση μόνο των αιτημάτων μου" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "Χρήστης αρχειοθέτης" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "Υπεύθυνος" msgstr[1] "Υπεύθυνοι" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "Τίτλος" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "Υπεύθυνοι" @@ -5748,131 +5765,135 @@ msgstr "Σημειώσεις υπεύθυνου" msgid "Nothing here." msgstr "Δεν υπάρχει κάτι εδώ." -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "Βαθμίδα" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "Αναζήτηση με ανγνωριστικό..." -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "Είστε βέβαιοι ότι θέλετε να παράξετε ή να αναπαράξετε το API διακριτικό σας;" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "Αυτό θα ακυρώσει τυχόν προηγούμενα διακριτικά API." -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "Επιτρέπει επίσης πρόσβαση στο λογαριασμό σας χωρίς έλεγχο ταυτότητας δύο παραγόντων." -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "Δεν θα είστε σε θέση να δείτε το API διακριτικό σας αφού φύγετε από αυτή τη σελίδα!" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "Δημιουργία..." -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "Διαγραφή" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "Είστε βέβαιοι ότι θέλετε να διαγράψετε το API διακριτικό σας;" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "Παραγωγή" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το κλειδί ασφαλείας;" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "Αυτο-περιγραφή:" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "Επιλέξτε την κοντινότερη μεγάλη πόλη" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Ζώνη ώρας:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Γλώσσα:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "Μοτίβο συντάκτη:" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "Μηχανή μαθηματικών:" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "Συνδεδεμένοι οργανισμοί:" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "Αλλάξτε το avatar σας" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "Αλλάξτε τον κωδικό σας" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" +msgstr "Διακριτικό API:" + +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" +msgstr "Κρυφό" + +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "Η ταυτοποίηση δύο παραγόντων είναι ενεργοποιημένη:" -#: templates/user/edit-profile.html:360 +#: templates/user/edit-profile.html:377 msgid "Refresh" msgstr "Ανανέωση" -#: templates/user/edit-profile.html:363 +#: templates/user/edit-profile.html:380 msgid "Scratch codes:" msgstr "Κωδικοί scratch:" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" -msgstr "Κρυφό" - -#: templates/user/edit-profile.html:377 +#: templates/user/edit-profile.html:394 msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:402 msgid "Two-factor Authentication is disabled:" msgstr "Η ταυτοποίηση δύο παραγόντων είναι απενεργοποιημένη:" -#: templates/user/edit-profile.html:393 -msgid "API token:" -msgstr "Διακριτικό API:" - #: templates/user/edit-profile.html:410 msgid "Security keys:" msgstr "Κλειδιά ασφαλείας:" diff --git a/locale/el/LC_MESSAGES/djangojs.po b/locale/el/LC_MESSAGES/djangojs.po index eda77dbdc8..a89d14d942 100644 --- a/locale/el/LC_MESSAGES/djangojs.po +++ b/locale/el/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -17,14 +17,14 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "%d ημέρα %h:%m:%s" msgstr[1] "%d ημέρες %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 4c97b8e3b2..b501b3a7cc 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/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-01-21 00:48+0000\n" +"POT-Creation-Date: 2023-02-19 00:52+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,91 +18,91 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "" @@ -141,19 +141,19 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -232,29 +232,29 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "" @@ -266,9 +266,9 @@ msgstr "" msgid "Summary" msgstr "" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -299,8 +299,8 @@ msgid "Taxonomy" msgstr "" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" @@ -309,9 +309,9 @@ msgstr "" msgid "Limits" msgstr "" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "" @@ -356,8 +356,8 @@ msgstr[1] "" msgid "Mark problems as private" msgstr "" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -368,19 +368,19 @@ msgstr "" msgid "timezone" msgstr "" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "" @@ -399,26 +399,26 @@ msgstr[1] "" msgid "Recalculate scores" msgstr "" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "" @@ -450,57 +450,57 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "" -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "" -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "" msgstr[1] "" -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -525,6 +525,7 @@ msgid "Comment body" msgstr "" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "" @@ -651,7 +652,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -667,90 +668,90 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "" msgstr[1] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "" @@ -773,26 +774,42 @@ msgstr "" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 -msgid "Leave as LaTeX" +#: judge/models/choices.py:24 +msgid "Follow site theme" msgstr "" #: judge/models/choices.py:60 -msgid "SVG only" +msgid "Leave as LaTeX" msgstr "" #: judge/models/choices.py:61 -msgid "MathML only" +msgid "SVG only" msgstr "" #: judge/models/choices.py:62 -msgid "MathJax with SVG fallback" +msgid "MathML only" msgstr "" #: judge/models/choices.py:63 +msgid "MathJax with SVG fallback" +msgstr "" + +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" @@ -978,7 +995,7 @@ msgstr "" msgid "problems" msgstr "" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "" @@ -1243,214 +1260,214 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "" "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1935,7 +1952,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2112,7 +2129,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "" @@ -2153,7 +2170,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2178,26 +2195,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2207,201 +2228,201 @@ msgstr "" msgid "Admin" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "" "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2657,15 +2678,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2754,60 +2775,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -3025,7 +3046,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -3050,7 +3071,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -3058,12 +3079,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "" @@ -3072,113 +3093,113 @@ msgstr "" msgid "Contests" msgstr "" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "" "You have been declared persona non grata for this contest. You are " "permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3220,167 +3241,167 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3478,17 +3499,17 @@ msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3522,11 +3543,11 @@ msgstr "" msgid "Register" msgstr "" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "" @@ -3538,7 +3559,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "" @@ -3569,46 +3590,46 @@ msgstr "" msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3663,99 +3684,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3784,13 +3809,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3810,48 +3835,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -4052,15 +4077,15 @@ msgstr "" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4141,7 +4166,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "" @@ -4373,7 +4398,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "" @@ -4381,7 +4406,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4551,19 +4576,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "" @@ -4758,7 +4783,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "" @@ -4794,59 +4819,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4868,103 +4893,103 @@ msgid_plural "Authors:" msgstr[0] "" msgstr[1] "" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "" "You are about to rejudge {count} submissions. Are you sure you want to do " "this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "" "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -5041,11 +5066,11 @@ msgstr "" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "" @@ -5082,14 +5107,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "" @@ -5127,8 +5144,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "" @@ -5137,7 +5154,7 @@ msgid "Random" msgstr "" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "" @@ -5149,33 +5166,33 @@ msgstr "" msgid "Date" msgstr "" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "" "Your default language, %(language)s, is unavailable for this problem and has " "been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5405,7 +5422,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5420,36 +5437,36 @@ msgid "" "address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5495,17 +5512,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "" "You can use these codes to login to your account or disable two-factor " "authentication." @@ -5518,7 +5535,7 @@ msgid "" msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5541,12 +5558,12 @@ msgid "" msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5648,23 +5665,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5828,33 +5845,33 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5908,134 +5925,138 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "" "The administrators for this site require all the staff to have Two-factor " "Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "" "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "" "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "" "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/en/LC_MESSAGES/djangojs.po b/locale/en/LC_MESSAGES/djangojs.po index 7962f58b09..c721b38970 100644 --- a/locale/en/LC_MESSAGES/djangojs.po +++ b/locale/en/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-21 00:43+0000\n" +"POT-Creation-Date: 2023-01-24 00:51+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,14 +18,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "" msgstr[1] "" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 338344349d..02a01dac25 100644 --- a/locale/es/LC_MESSAGES/django.po +++ b/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:53\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Catalán" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Alemán" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Griego" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Inglés" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Español" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Francés" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Croata" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Húngaro" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Japonés" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Coreano" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "Portugués (Brasil)" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Rumano" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Ruso" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Serbio (Latino)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Turco" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Vietnamita" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Chino Simplificado" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Chino Tradicional" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "¡Activación con Éxito!" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "Registro Completado" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "Registro No Permitido" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Inicio" @@ -140,19 +140,19 @@ msgid "Included contests" msgstr "Concursos incluidos" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problema" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Problemas" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -231,29 +231,29 @@ msgstr[1] "%d concursos desbloqueados exitosamente." msgid "Unlock contest submissions" msgstr "Desbloquear envíos del concurso" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "%d envío ha sido añadido a la cola para rejuzgar con éxito." msgstr[1] "%d envíos han sido añadidos a la cola para rejuzgar con éxito." -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "%d participación recalculada." msgstr[1] "%d participaciones recalculadas." -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "Recalcular resultados" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "nombre de usuario" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "virtual" @@ -265,9 +265,9 @@ msgstr "ruta de enlace" msgid "Summary" msgstr "Resumen" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "usuario" @@ -298,8 +298,8 @@ msgid "Taxonomy" msgstr "Taxonomía" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Puntos" @@ -308,9 +308,9 @@ msgstr "Puntos" msgid "Limits" msgstr "Límites" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Lenguaje" @@ -355,8 +355,8 @@ msgstr[1] "%d problemas marcados como privados con éxito." msgid "Mark problems as private" msgstr "Marcar problemas como privados" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -367,19 +367,19 @@ msgstr "problema" msgid "timezone" msgstr "zona horaria" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Usuario" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "Email" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Zona horaria" @@ -398,26 +398,26 @@ msgstr[1] "Se ha recalculado la puntuación de %d usuarios." msgid "Recalculate scores" msgstr "Recalcular puntuaciones" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "Regenerar" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Descripción" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Información" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Capacidades" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Ninguno" @@ -449,57 +449,57 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s en %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "No tienes permiso para rejuzgar envíos." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "No tienes permiso para rejuzgar TANTOS envíos." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "Rejuzgar los envíos seleccionados" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d envío fue reevaluado con éxito." msgstr[1] "%d envíos fueron reevaluados con éxito." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "Reevaluar los envíos seleccionados" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Código del problema" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Nombre del problema" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Tiempo" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Memoria" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "Bloqueado" @@ -524,6 +524,7 @@ msgid "Comment body" msgstr "Cuerpo del comentario" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "No se supone que deberías hablar, pequeñuelo." @@ -631,7 +632,7 @@ msgstr "Token de autenticación de dos pasos no válido." msgid "Scratch codes must be 16 Base32 characters." msgstr "Los códigos de Scratch deben tener 16 caracteres Base32." -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "Código de scratch inválido." @@ -647,90 +648,90 @@ msgstr "Habilitar las funciones experimentales" msgid "You must solve at least one problem before you can update your profile." msgstr "Debes resolver como mínimo un problema antes de poder actualizar tu perfil." -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "No puedes formar parte de más de {count} organización pública." msgstr[1] "No puedes formar parte de más de {count} organizaciones públicas." -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "¿Descargar comentarios?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "¿Descargar envíos?" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "Filtrar por código glob del problema:" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "Dejar en blanco para incluir todos los envíos" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "Filtrar por resultado:" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "Por favor selecciona por lo menos una cosa para descargar." -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "Cualquier juez" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Nombre de usuario" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Contraseña" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "Longitud de código inválida." -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "Respuesta WebAuthn inválida." -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "Ningúna respuesta de WebAuthn emitida." -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "ID de credencial de WebAuthn inválida." -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "Token de autenticación de dos pasos o código de scratch no válido." -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "Debe especificar o totp_token o webauthn_response." -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "El código del problema debe ser ^[a-z0-9]+$" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "Ya existe un problema con este código." -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "La id del concurso debe ser ^[a-z0-9]+$" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "Ya existe un concurso con esta clave primaria." @@ -753,26 +754,42 @@ msgstr "el {time}" msgid "Unrated" msgstr "Sin puntuación" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Dejar como LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "Solo SVG" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "Solo MathML" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax con SVG si falla" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "Detectar la mejor calidad" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "Claro" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "Oscuro" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "El código de la página debe ser ^[pcs]:[a-z0-9]+$|^b:\\d+$" @@ -954,7 +971,7 @@ msgstr "descripción" msgid "problems" msgstr "problemas" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "hora de inicio" @@ -1202,213 +1219,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "Ver concursos privados" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "Editar concursos propios" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "Editar todos los concursos" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "Clonar concurso" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "Detectar plagios con MOSS" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "Calificar concursos" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "Códigos de acceso al concurso" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "Crear concursos privados" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "Cambiar visibilidad del concurso" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "Editar script de etiqueta de problema del concurso" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "Cambiar el estado de bloqueo del concurso" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "concurso" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "concursos" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "concurso asociado" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "puntuación" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "tiempo acumulado" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "se ha descalificado" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "Si esta participación ha sido descalificada." -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "campo de desempate" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "identificación de la participación virtual" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "0 significa no-virtual, en caso contrario la n-ésima participación virtual." -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "datos específicos del formato de concurso" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "%(user)s en %(contest)s, v%(id)d" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "%(user)s en %(contest)s" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "participación del concurso" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "participaciones del concurso" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "puntos" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "parcial" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "utilizar pruebas previas" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "orden" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "anular la longitud del prefijo de salida" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "Número máximo de envíos para este problema, o dejar en blanco para no poner límite." -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "¿Por qué incluir un problema que no puede enviarse?" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "problema de concurso" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "problemas del concurso" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "envío" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "participación" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "Si este envío se ejecutó solo en las pruebas previas." -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "envío del concurso" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "envíos del concurso" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "rango" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "puntuación" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "puntuación bruta" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "último calificado" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "puntuación del concurso" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "puntuaciones del concurso" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "resultado del moss del concurso" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "resultados del moss del concurso" @@ -1885,8 +1902,8 @@ msgid "Non-trailing spaces" msgstr "Sin espacios al final" #: judge/models/problem_data.py:28 -msgid "Unordered" -msgstr "Sin ordenar" +msgid "Sorted" +msgstr "Ordenado" #: judge/models/problem_data.py:29 msgid "Byte identical" @@ -2057,7 +2074,7 @@ msgid "Edit all organizations" msgstr "Editar todas las organizaciones" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "organización" @@ -2098,7 +2115,7 @@ msgstr "miembros" msgid "%(class)s in %(organization)s" msgstr "%(class)s en %(organization)s" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "clase" @@ -2123,26 +2140,30 @@ msgid "Ace theme" msgstr "Tema Ace" #: judge/models/profile.py:158 +msgid "site theme" +msgstr "tema del sitio" + +#: judge/models/profile.py:159 msgid "last access time" msgstr "último tiempo de acceso" -#: judge/models/profile.py:159 +#: judge/models/profile.py:160 msgid "last IP" msgstr "último IP" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "mostrar rango" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "Usuario Normal" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "Creador de Problemas" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2152,200 +2173,200 @@ msgstr "Creador de Problemas" msgid "Admin" msgstr "Administrador" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "comentario en silencio" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "Algunos usuarios están en su mejor momento cuando están en silencio." -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "usuario no-listado" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "Este usuario no será puesto en los rankings." -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "scrip de usuario" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "JavaScript definido por el usuario para la personalización del sitio." -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "concurso actual" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "motor matemático" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "El motor de renderizado utilizado para representar las matemáticas." -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "TOTP de la Autenticación en dos pasos habilitado" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "Activar autenticación de dos pasos basada en TOTP." -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn de Autenticación en dos pasos habilitado" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "Activar autenticación de dos pasos basada en WebAuthn." -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "clave TOTP" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "Clave con codificación Base32 de 32 caracteres para el TOTP." -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "La clave TOTP debe estar vacía o ser Base32." -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "códigos scratch" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "Array JSON de 16 caracteres codificados en Base32 para los códigos scratch." -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "Los códigos Scratch deben estar vacíos o ser un array JSON de 16 caracteres Base32." -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "Token API" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "Token de acceso a la API codificado con 64 caracteres hexadecimales." -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "El token API debe ser Ninguno o hexadecimal" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "notas internas" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "Notas para administradores sobre este usuario." -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "última descarga de datos" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "anular el nombre para mostrar" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "Nombre mostrado en lugar del nombre de usuario." -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "Muestra las cosas que el equipo de desarrollo está haciendo actualmente" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "Editar ajustes TOTP" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "perfil del usuario" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "perfiles de usuarios" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "nombre de dispositivo" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "ID de credencial" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "clave pública" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "contador de señales" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "Credencial de WebAuthn: %(name)s" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "credencial de WebAuthn" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "credenciales de WebAuthn" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "tiempo de solicitud" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "estado" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "Pendiente" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "Aprobado" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Rechazado" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "razón" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "solicitud de adhesión a la organización" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "solicitudes de adhesión a la organización" @@ -2588,15 +2609,15 @@ msgstr "Error Interno (juzgando error del servidor)" msgid "submission time" msgstr "tiempo de envío" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "tiempo de ejecución" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "uso de memoria" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "puntos otorgados" @@ -2685,60 +2706,60 @@ msgstr "Cambiar el estado de bloqueo del envío" msgid "submissions" msgstr "envíos" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "envío asociado" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "código fuente" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "Fuente de %(submission)s" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "fuente de envío" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "fuentes de envío" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "ID de caso de prueba" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "indicador de estado" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "puntos posibles" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "número de lote" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "respuesta del juez" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "respuesta extendida del juez" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "salida del programa" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "caso de prueba del envío" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "casos de prueba del envío" @@ -2956,7 +2977,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "Página %d de Posts" @@ -2981,7 +3002,7 @@ msgstr "" msgid "You already voted." msgstr "Ya has votado." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "Editado desde sitio" @@ -2989,12 +3010,12 @@ msgstr "Editado desde sitio" msgid "Editing comment" msgstr "Editando comentario" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "No hay tal concurso" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "No se pudo encontrar un concurso con la clave \"%s\"." @@ -3003,111 +3024,111 @@ msgstr "No se pudo encontrar un concurso con la clave \"%s\"." msgid "Contests" msgstr "Concursos" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "No se pudo encontrar dicho concurso." -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "Acceso al concurso \"%s\" denegado" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "Clonar Concurso" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "Concurso no en curso" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "\"%s\" no esta actualmente en curso." -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "PUM Baneado" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "Has sido declarado persona non grata para este concurso. Quedas desterrado para siempre." -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "No se puede entrar" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "No puedes unirte a este concurso." -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "Ingrese el código de acceso para \"%s\"" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "No estás en el concurso \"%s\"." -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "Concursos en %(month)s" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "F \\d\\e Y" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "%s Estadísticas" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "%s Clasificaciones" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "???" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "Su participación en %(contest)s" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "Participación de %(user)s en %(contest)s" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "En vivo" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Participación" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "%s Resultados del Sistema antiplagio MOSS" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "Ejecutando sistema antiplagio MOSS para %s..." -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "Etiqueta de concurso: %s" @@ -3149,167 +3170,167 @@ msgstr "No se encontró una organización con la clave \"%s\"." msgid "Could not find such organization." msgstr "No se pudo encontrar tal organización." -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Organizaciones" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "%s Miembros" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "Unirse a la organización" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "Ya estas en esta organización." -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "Esta organización no está abierta." -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "Abandonar organización" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "No estás en \"%s\"." -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "No se puede solicitar unirse %s" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "Ya tienes una solicitud pendiente para unirte a %s." -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "Solicitar para unirse %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "Únete a detalle de la solicitud" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "Gestionar solicitudes de unirse para %s" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "Su organización solo puede recibir %d miembro más." msgstr[1] "Su organización solo puede recibir %d miembros más." -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "No puede aprobar %d usuario." msgstr[1] "No puede aprobar %d usuarios." -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "%d usuario aprobado." msgstr[1] "%d usuarios aprobados." -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "%d usuario rechazado." msgstr[1] "%d usuarios rechazados." -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "Editando %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "No se puede editar la organización" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "No tiene permitido editar esta organización." -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "No tiene permitido expulsar a personas de esta organización." -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "No se puede expulsar al usuario" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "¡El usuario que estás intentando expulsar no existe!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "El usuario que está intentando expulsar no está en la organización: %s" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Clase {name} en {organization}" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Clase {name} - {organization}" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "No existe ese problema" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "No se pudo encontrar el problema con el código \"%s\"." -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "Editorial para {0}" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "No hay tal editorial" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "No se pudo encontrar una editorial con el código \"%s\"." -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "No se permite votar sobre este problema." -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "No se permite borrar votos sobre este problema." -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "éxito" @@ -3405,17 +3426,17 @@ msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "%d envío se ha añadido exitosamente a la cola de rejuzgar." msgstr[1] "%d envíos se han añadido exitosamente a la cola de rejuzgar." -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "Las mejores soluciones para %s" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "Las mejores soluciones para %(problem)s en %(contest)s" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "Las mejores soluciones para el problema %(number)s en %(contest)s" @@ -3445,11 +3466,11 @@ msgstr "Su proveedor de correo electrónico no esta permitido debido a el histor msgid "Register" msgstr "Registrarse" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "Clave de activación inválida" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "Fallo de autenticación" @@ -3461,7 +3482,7 @@ msgstr "Otro" msgid "Language statistics" msgstr "Estadísticas del lenguaje" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "Estado" @@ -3492,46 +3513,46 @@ msgstr "Envío de %(problem)s por %(user)s" msgid "All submissions" msgstr "Todos los envíos" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "Todos mis envíos" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "Todos los envíos de %s" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "Todos los envíos para %s" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "Mis envíos para %(problem)s" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "Los envíos de %(user)s para %(problem)s" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "Mis envíos en %(contest)s" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "Envíos de %(user)s en %(contest)s" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "Los envíos de {user} para {problem} en {contest}" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "Los envíos de {user} para el problema {number} en {contest}" @@ -3586,99 +3607,103 @@ msgstr "nadie" msgid "New Ticket Message For: %s" msgstr "Nuevo Mensaje de Ticket para: %s" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "Habilitar Autenticación en Dos Pasos" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "Deshabilitar Autenticación en Dos Pasos" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "Respuesta WebAuthn inválida" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "Nombre inválido" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "El personal con permisos elevados en el sitio no puede desactivar la Autenticación en dos pasos" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "Realizar Autenticación en Dos Pasos" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "No existe este usuario" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "No hay nombre de usuario \"%s\"." -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "Mi cuenta" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "Usuario %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "Iniciar sesión" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "j M Y, G:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "Preparando tus datos..." -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "Descargar tus datos" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "No se puede editar el perfil" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "Actualizado en el sitio" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Editar perfil" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "Token API generado para el usuario" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "Token API eliminado para el usuario" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "Códigos de scratch generados para el usuario" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Tabla de calificación" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3707,13 +3732,13 @@ msgstr "Terminar" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "Desactivar" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "Activar" @@ -3733,48 +3758,48 @@ msgstr "Ver los votos del problema" msgid "Edit user" msgstr "Editar usuario" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "Hola, %(username)s." -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "Detener la suplantación" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "Cerrar sesión" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Iniciar sesión" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "o" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "Registrarse" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "modo de espectador" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "Este sitio funciona mejor con JavaScript activado." -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Editar" @@ -3975,15 +4000,15 @@ msgstr "Puntuación" msgid "No votes" msgstr "No hay votos" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "Clic para copiar" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "Copiar" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "¡Copiado!" @@ -4064,7 +4089,7 @@ msgstr "Calendario" msgid "Info" msgstr "Información" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "Estadística" @@ -4279,7 +4304,7 @@ msgstr "Tasa de AC" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "Usuarios" @@ -4287,7 +4312,7 @@ msgstr "Usuarios" msgid "Editorials" msgstr "Editoriales" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "Editorial" @@ -4452,19 +4477,19 @@ msgstr "Cancelar Descalificación" msgid "Disqualify" msgstr "Descalificar" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "¿Estás seguro que quieres descalificar a esta participación?" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "¿Estás seguro que quieres cancelar la descalificación de esta participación?" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "Ver la participación del usuario" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "Mostrar organizaciones" @@ -4651,7 +4676,7 @@ msgid "There are no requests to approve." msgstr "No hay solicitudes para aprobar." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "¿Eliminar?" @@ -4687,59 +4712,59 @@ msgstr "Actualizar vista previa" msgid "Enter a new code for the cloned problem:" msgstr "Entra un nuevo código para el problema clonado:" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "precisión (dígitos decimales)" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "Ver YAML" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "Mostrar columnas:" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "Prefijo de salida" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "Límite de salida" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "Verificador" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "Argumentos del generador" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "Tipo" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "Archivo de entrada" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "Archivo de salida" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "¿Prueba previa?" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "¡Enviar!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "Añadir nuevo caso" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "Guardar" @@ -4757,100 +4782,100 @@ msgid_plural "Authors:" msgstr[0] "Autor:" msgstr[1] "Autores:" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "Filtrar por tipo..." -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "Problemas populares" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Categoría" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "Tipos" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "AC %%" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "Déjalo vacío para no filtrar por lenguaje" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "Déjalo vacío para no filtrar por resultado" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "Se necesita valores válidos para las IDs de inicio y final." -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "La ID final debe ser posterior a la ID de inicio." -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "Vas a rejuzgar {count} envíos. ¿Estás seguro?" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "Vas a rejuzgar bastantes envíos. ¿Estás seguro?" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "Rejuzgar Envíos" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "Filtrar por ID:" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "ID de inicio:" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "ID final:" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "Este rango incluye ambos puntos." -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "Filtrar por lenguaje:" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "Rejuzgar envíos seleccionados" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "Recalificar Todo" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "Vas a recalificar %(count)s envío." msgstr[1] "Vas a recalificar %(count)s envíos." -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "¿Estás seguro de que quieres recalificar %(count)s envío?" msgstr[1] "¿Estás seguro de que quieres recalificar %(count)s envíos?" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "Recalificar todos los envíos" @@ -4927,11 +4952,11 @@ msgstr "Puntos:" msgid "(partial)" msgstr "(parcial)" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "Límite de tiempo:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "Límite de memoria:" @@ -4968,14 +4993,6 @@ msgstr "Solicitar aclaración" msgid "Report an issue" msgstr "Reportar un problema" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "Límite de Tiempo:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "Límite de Memoria:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "Búsqueda de problema" @@ -5013,8 +5030,8 @@ msgstr "Tipos de problema" msgid "Point range" msgstr "Rango de puntos" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "Ir" @@ -5023,7 +5040,7 @@ msgid "Random" msgstr "Aleatorio" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "Identificación" @@ -5035,31 +5052,31 @@ msgstr "Resultado" msgid "Date" msgstr "Fecha" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "Tu código fuente debe contener como máximo 65536 caracteres." -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "¡Advertencia!" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "Su lenguaje predeterminado, %(language)s, no está disponible para este problema y no se seleccionó." -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "Te queda %(left)s envío" msgstr[1] "Te quedan %(left)s envíos" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "Te quedan 0 envíos" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "Ningún juez esta disponible para este problema." @@ -5267,7 +5284,7 @@ msgstr "El equipo de %(site_name)s" msgid "Password reset on %(site_name)s" msgstr "Contraseña se reinicia en %(site_name)s" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continuar >" @@ -5280,36 +5297,36 @@ msgstr "El registro está cerrado actualmente. Ponte en contacto con un administ msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "Has sido registrado con éxito. Se le ha enviado un correo electrónico para confirmar su registro." -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "(de nuevo, por confirmación)" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "(seleccione la ciudad importante más cercana)" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "seleccionar en el mapa" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "Lenguaje por defecto" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "Organizaciones afiliadas" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "Notificarme sobre los próximos concursos" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "Al registrarte, estás aceptando nuestros [Términos y Condiciones][0]." -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "¡Registrarse!" @@ -5351,17 +5368,17 @@ msgid "Enable Two Factor Authentication" msgstr "Habilitar Autenticación en Dos Pasos" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5370,7 +5387,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5388,12 +5405,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "WebAuthn no es compatible con su navegador." #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "Error al contactar con el servidor." @@ -5491,23 +5508,23 @@ msgstr "Información de error" msgid "Are you sure you want to rejudge?" msgstr "¿Está seguro que quiere rejuzgar?" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "Filtrar por estatus..." -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "Filtrar por lenguaje..." -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "Filtrar envíos" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "Total:" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "Estuviste desconectado. Actualiza para mostrar las últimas actualizaciones." @@ -5671,33 +5688,33 @@ msgstr "Reabierto: " msgid "Closed: " msgstr "Cerrado: " -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "Usar notificaciones de escritorio" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "Ocultar tickets cerrados" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "Solo mostrar mis tickets" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "Usuario que envía" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "Asignado" msgstr[1] "Asignados" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "Título" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "Asignados" @@ -5748,131 +5765,135 @@ msgstr "Notas de asignado" msgid "Nothing here." msgstr "Nada aquí." -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "Rango" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "Buscar por nombre do usuario..." -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "¿Estás seguro de que quieres generar o regenerar tu token API?" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "Esto invalidará cualquier token de API anterior." -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "También permite el acceso a su cuenta sin autenticación de dos pasos." -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "¡No podrás ver tu token API después de salir de esta página!" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "Generando..." -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "Eliminar" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "¿Estás seguro de que quieres eliminar tu token de API?" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "Generar" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "¿Está seguro que desea eliminar esta clave de seguridad?" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "Descripción propia:" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "Seleccione la ciudad importante más cercana" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Zona horaria:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Idioma:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "Tema del sitio:" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "Tema editor:" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "Motor matemático:" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "Organizaciones afiliadas:" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "Cambiar tu avatar" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "Cambiar tu contraseña" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" +msgstr "Token API:" + +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" +msgstr "Oculto" + +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "Autenticación en dos pasos habilitada:" -#: templates/user/edit-profile.html:360 +#: templates/user/edit-profile.html:377 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:363 +#: templates/user/edit-profile.html:380 msgid "Scratch codes:" msgstr "Códigos scratch:" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" -msgstr "Oculto" - -#: templates/user/edit-profile.html:377 +#: templates/user/edit-profile.html:394 msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:402 msgid "Two-factor Authentication is disabled:" msgstr "Autenticación en dos pasos deshabilitada:" -#: templates/user/edit-profile.html:393 -msgid "API token:" -msgstr "Token API:" - #: templates/user/edit-profile.html:410 msgid "Security keys:" msgstr "Claves de seguridad:" diff --git a/locale/es/LC_MESSAGES/djangojs.po b/locale/es/LC_MESSAGES/djangojs.po index 0f8f42814b..3ce0e7a8c3 100644 --- a/locale/es/LC_MESSAGES/djangojs.po +++ b/locale/es/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2023-01-11 00:49\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:52\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -17,14 +17,14 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "%d día %h:%m:%s" msgstr[1] "%d días %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 513698b83b..8c0ab789a9 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Catalan" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Allemand" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Grec" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Anglais" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Espagnol" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Français" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Croate" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Hongrois" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Japonais" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Coréen" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "Portugais Brésilien" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Roumain" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Russe" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Serbe (Latin)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Turc" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Vietnamien" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Chinois Simplifié" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Chinois Traditionnel" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "Activation Réussie !" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "Inscription Terminée" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "Inscription Non Autorisée" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Accueil" @@ -140,19 +140,19 @@ msgid "Included contests" msgstr "Concours inclus" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problème" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Problèmes" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -231,29 +231,29 @@ msgstr[1] "%d concours ont été déverrouillés avec succès." msgid "Unlock contest submissions" msgstr "Déverrouiller les soumissions au concours" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "%d soumission a été programmée pour être rejugée avec succès." msgstr[1] "%d soumissions ont été programmées pour être rejugées avec succès." -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "%d participation recalculée." msgstr[1] "%d participations recalculées." -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "Recalculer les résultats" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "nom d'utilisateur" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "virtuel" @@ -265,9 +265,9 @@ msgstr "chemin du lien" msgid "Summary" msgstr "Résumé" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "utilisateur" @@ -298,8 +298,8 @@ msgid "Taxonomy" msgstr "Taxonomie" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Points" @@ -308,9 +308,9 @@ msgstr "Points" msgid "Limits" msgstr "Limites" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Langage" @@ -355,8 +355,8 @@ msgstr[1] "%d problèmes marqués privés avec succès." msgid "Mark problems as private" msgstr "Marquer les problèmes comme privés" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -367,19 +367,19 @@ msgstr "problème" msgid "timezone" msgstr "fuseau horaire" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Utilisateur" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "Courriel" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Fuseau horaire" @@ -398,26 +398,26 @@ msgstr[1] "%d utilisateurs ont des notes recalculées." msgid "Recalculate scores" msgstr "Recalculer les scores" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "Régénérer" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Description" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Information" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Capacités" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Rien" @@ -449,57 +449,57 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s dans %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "Vous n'avez pas le droit de rejuger des soumissions." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "Vous n'avez pas le droit de rejuger AUTANT de soumissions." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "Rejuger les soumissions sélectionnées" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d soumission a été recomptée avec succès." msgstr[1] "%d soumissions ont été recomptées avec succès." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "Recompter les soumissions sélectionnées" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Code du problème" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Nom du problème" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Temps" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d Ko" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f Mo" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Mémoire" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "Verrouillé" @@ -524,6 +524,7 @@ msgid "Comment body" msgstr "Corps du commentaire" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "Ton personnage est muet, le crapaud." @@ -631,7 +632,7 @@ msgstr "Jeton d'authentification à deux facteurs invalide." msgid "Scratch codes must be 16 Base32 characters." msgstr "Les codes scratch doivent être 16 caractères de Base32." -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "Code scratch invalide." @@ -647,90 +648,90 @@ msgstr "Activer les fonctionnalités expérimentales" msgid "You must solve at least one problem before you can update your profile." msgstr "Vous devez résoudre au moins un problème avant de pouvoir modifier votre profil." -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "Vous ne pouvez pas faire partie de plus de {count} organisation publique." msgstr[1] "Vous ne pouvez pas faire partie de plus de {count} organisations publiques." -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "Télécharger les commentaires ?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "Télécharger les soumissions ?" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "Filtrer par code de problème glob :" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "Laisser vide pour inclure toutes les soumissions" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "Filtrer par résultat :" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "Veuillez sélectionner au moins une chose à télécharger." -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "N'importe quel juge" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Nom d'utilisateur" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Mot de passe" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "Longueur de code invalide." -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "Réponse WebAuthn invalide." -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "Aucun défi WebAuthn n'a été lancé." -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "Jeton d'authentification à deux facteurs ou code scratch invalide." -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "Doit spécifier soit totp_token ou webauthn_response." -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Le code du problème doit être ^[a-z0-9]+$" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "Le problème avec le code existe déjà." -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "L'id du concours doit être ^[a-z0-9]+$" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "Le concours avec la clé existe déjà." @@ -753,26 +754,42 @@ msgstr "le {time}" msgid "Unrated" msgstr "Non évalué" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Laisser en tant que LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "SVG seulement" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "MathML seulement" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax avec repli SVG" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "Détecter la meilleure qualité" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "Suivre le système par défaut" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "Clair" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "Sombre" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "Le code de la page doit être ^[pcs]:[a-z0-9]+$|^b:\\d+$" @@ -954,7 +971,7 @@ msgstr "description" msgid "problems" msgstr "problèmes" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "heure de début" @@ -1202,213 +1219,213 @@ msgstr "points de précision" msgid "Number of digits to round points to." msgstr "Nombre de chiffres vers lesquels arrondir les points." -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "Voir les concours privés" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "Modifier vos propres concours" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "Modifier tous les concours" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "Cloner concours" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS le concours" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "Évaluer les concours" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "Codes d'accès au concours" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "Créer des concours privés" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "Modifier la visibilité des concours" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "Modifier le script d'étiquette du problème du concours" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "Changer le statut de verrouillage du concours" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "concours" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "concours" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "concours associé" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "score" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "temps cumulé" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "disqualifiée" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "Si cette participation est disqualifiée." -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "champ de départage" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "id de participation virtuelle" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "0 signifie non virtuel, sinon la n-ème participation virtuelle." -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "données spécifiques au format du concours" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "%(user)s observant dans %(contest)s" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "%(user)s dans %(contest)s, v%(id)d" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "%(user)s dans %(contest)s" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "participation au concours" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "participations au concours" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "points" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "partiel" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "est prétesté" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "ordre" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "remplacement de la longueur du préfixe de sortie" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "maximum de soumissions" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "Nombre maximum de soumissions pour ce problème, ou laisser vide pour aucune limite." -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "Pourquoi inclure un problème que vous ne pouvez pas soumettre ?" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "problème de concours" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "problèmes de concours" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "soumission" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "participation" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "Si cette soumission a été exécutée uniquement sur les prétests." -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "soumission de concours" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "soumissions de concours" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "rang" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "classement" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "classement brut" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "performance au concours" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "dernière évaluation" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "classement du concours" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "classements du concours" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "résultat MOSS du concours" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "résultats MOSS du concours" @@ -1885,8 +1902,8 @@ msgid "Non-trailing spaces" msgstr "Pas d'espace en fin de ligne" #: judge/models/problem_data.py:28 -msgid "Unordered" -msgstr "Non ordonné" +msgid "Sorted" +msgstr "Trié" #: judge/models/problem_data.py:29 msgid "Byte identical" @@ -2057,7 +2074,7 @@ msgid "Edit all organizations" msgstr "Modifier toutes les organisations" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "organisation" @@ -2098,7 +2115,7 @@ msgstr "membres" msgid "%(class)s in %(organization)s" msgstr "%(class)s dans %(organization)s" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "classe" @@ -2123,26 +2140,30 @@ msgid "Ace theme" msgstr "Thème Ace" #: judge/models/profile.py:158 +msgid "site theme" +msgstr "thème du site" + +#: judge/models/profile.py:159 msgid "last access time" msgstr "heure du dernier accès" -#: judge/models/profile.py:159 +#: judge/models/profile.py:160 msgid "last IP" msgstr "dernière IP" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "rang d'affichage" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "Utilisateur Normal" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "Créateur de Problèmes" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2152,200 +2173,200 @@ msgstr "Créateur de Problèmes" msgid "Admin" msgstr "Admin" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "sourdine des commentaires" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "Certains utilisateurs sont au mieux de leur forme lorsqu'ils sont silencieux." -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "utilisateur non listé" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "L'utilisateur ne sera pas classé." -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "script utilisateur" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "JavaScript défini par l'utilisateur pour la personnalisation du site." -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "concours en cours" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "moteur mathématique" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "Le moteur de rendu utilisé pour rendre les mathématiques." -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "Cochez pour activer l'authentification à deux facteurs basée sur TOTP." -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "Cochez pour activer l'authentification à deux facteurs basée sur WebAuthn." -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "Clé TOTP" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "La clé TOTP doit être vide ou Base32." -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "codes scratch" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "Jeton API" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "notes internes" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "Notes pour les administrateurs concernant cet utilisateur." -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "dernier temps de téléchargement" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "remplacement du nom d'affichage" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "Nom affiché à la place du nom d'utilisateur." -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "Modifier les paramètres TOTP" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "profil utilisateur" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "profils utilisateur" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "nom de l'appareil" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "clé publique" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "Identifiant WebAuthn : %(name)s" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "identifiant WebAuthn" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "identifiants WebAuthn" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "état" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "En attente" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "Approuvé" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Rejeté" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "raison" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "demande d'adhésion de l'organisation" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "demandes d'adhésion de l'organisation" @@ -2588,15 +2609,15 @@ msgstr "Erreur Interne (erreur du serveur de jugement)" msgid "submission time" msgstr "date de soumission" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "temps d'exécution" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "utilisation de la mémoire" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "points accordés" @@ -2685,60 +2706,60 @@ msgstr "Changer le statut de verrouillage de la soumission" msgid "submissions" msgstr "soumissions" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "soumission associée" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "code source" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "Source de %(submission)s" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "source de soumission" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "sources de soumission" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "ID du cas de test" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "indicateur de statut" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "points possibles" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "numéro de lot" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "commentaires du juge" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "commentaires étendus du juge" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "sortie du programme" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "cas de test de la soumission" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "cas de test de la soumission" @@ -2956,7 +2977,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "Page %d d'articles" @@ -2981,7 +3002,7 @@ msgstr "Vous ne pouvez pas voter sur vos propres commentaires." msgid "You already voted." msgstr "Vous avez déjà voté." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "Modifié à partir du site" @@ -2989,12 +3010,12 @@ msgstr "Modifié à partir du site" msgid "Editing comment" msgstr "Édition du commentaire" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "Ce concours n'existe pas" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "Impossible de trouver un concours avec la clé « %s »." @@ -3003,111 +3024,111 @@ msgstr "Impossible de trouver un concours avec la clé « %s »." msgid "Contests" msgstr "Concours" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "Impossible de trouver un tel concours." -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "Accès au concours « %s » refusé" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "Cloner Concours" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "Concours cloné de %s" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "Concours non en cours" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "« %s » n'est pas en cours actuellement." -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "Interdit de rejoindre" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "Vous êtes persona non grata pour ce concours. Il vous est définitivement interdit de participer à ce concours." -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "Impossible d'entrer" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "Vous ne pouvez pas rejoindre ce concours." -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "Saisissez le code d'accès pour « %s »" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "Vous n'êtes pas dans le concours « %s »." -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "Concours en %(month)s" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "F Y" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "Statistiques de %s" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "Classement de %s" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "???" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "Votre participation à %(contest)s" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "La participation de %(user)s à %(contest)s" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "En direct" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Participation" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "Résultats MOSS de %s" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "Exécution du MOSS pour %s..." -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "Balise de concours : %s" @@ -3149,167 +3170,167 @@ msgstr "Impossible de trouver une organisation avec la clé « %s »." msgid "Could not find such organization." msgstr "Impossible de trouver une telle organisation." -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Organisations" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "Membres de %s" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "Rejoindre l'organisation" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "Vous êtes déjà dans l'organisation." -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "Cette organisation n'est pas ouverte." -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "Quitter l'organisation" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "Vous n'êtes pas dans « %s »." -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "Impossible de demander à rejoindre %s" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "Vous avez déjà une demande d'adhésion à %s en attente." -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "Demande d'adhésion à %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "Détails de la demande d'adhésion" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "Gestion des demandes d'adhésion à %s" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "Votre organisation ne peut accueillir que %d membre de plus." msgstr[1] "Votre organisation ne peut accueillir que %d membres de plus." -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "Vous ne pouvez pas approuver %d utilisateur." msgstr[1] "Vous ne pouvez pas approuver %d utilisateurs." -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "Approuvé %d utilisateur." msgstr[1] "Approuvé %d utilisateurs." -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "Rejeté %d utilisateur." msgstr[1] "Rejeté %d utilisateurs." -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "Impossible de modifier l'organisation" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "Vous n'êtes pas autorisé à modifier cette organisation." -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "Vous n'êtes pas autorisé à expulser des personnes de cette organisation." -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "Impossible d'expulser cet utilisateur" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "L'utilisateur que vous essayez d'expulser n'existe pas !" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "L'utilisateur que vous essayez d'expulser ne fait pas partie de l'organisation : %s" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Classe {name} dans {organization}" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Classe {name} - {organization}" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "Demande de rejoindre {name} dans {organization}" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "Ce problème n'existe pas" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "Impossible de trouver un problème avec le code « %s »." -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "Éditorial pour {0}" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "Cet éditorial n'existe pas" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "Impossible de trouver un éditorial avec le code « %s »." -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "Non autorisé à voter sur ce problème." -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "Non autorisé à supprimer des votes sur ce problème." -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "réussi" @@ -3405,17 +3426,17 @@ msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "%d soumission a été programmée pour être réjugée avec succès." msgstr[1] "%d soumissions ont été programmées pour être rejugées avec succès." -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "Les meilleures solutions pour %s" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "Meilleures solutions pour %(problem)s dans %(contest)s" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "Meilleures solutions pour le problème %(number)s dans %(contest)s" @@ -3445,11 +3466,11 @@ msgstr "" msgid "Register" msgstr "S'inscrire" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "Clé d'Activation Invalide" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "Échec d'authentification" @@ -3461,7 +3482,7 @@ msgstr "Autre" msgid "Language statistics" msgstr "Statistiques de langage" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "Statut" @@ -3492,46 +3513,46 @@ msgstr "Soumission de %(problem)s par %(user)s" msgid "All submissions" msgstr "Toutes les soumissions" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "Toutes mes soumissions" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "Toutes les soumissions par %s" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "Toutes les soumissions pour %s" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "Mes soumissions pour %(problem)s" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "Soumissions de %(user)s pour %(problem)s" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "Mes soumissions dans %(contest)s" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "Soumissions de %(user)s dans %(contest)s" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "Soumissions de {user} pour {problem} dans {contest}" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "Soumissions de {user} pour le problème {number} dans {contest}" @@ -3586,99 +3607,103 @@ msgstr "personne" msgid "New Ticket Message For: %s" msgstr "Nouveau Message de Ticket pour : %s" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "Activer l'Authentification à Deux Facteurs" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "Réactiver l'Authentification à Deux Facteurs" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "Désactiver l'Authentification à Deux Facteurs" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "Réponse WebAuthn invalide" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "Nom invalide" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "Le personnel ne peut pas désactiver l'A2F" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "Effectuer l'Authentification à Deux Facteurs" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "Cet utilisateur n'existe pas" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "Pas de nom d'utilisateur « %s »." -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "Mon compte" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "Utilisateur %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "Entrer" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "j M Y, G \\h i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "Préparation de vos données..." -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "Télécharger vos données" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "Impossible de modifier le profil" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "Mise à jour sur le site" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Modifier le profil" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "Jeton API généré pour l'utilisateur" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "Jeton API supprimé pour l'utilisateur" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "Codes scratch générés pour l'utilisateur" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Tableau de Classement" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "Vous avez été déconnecté avec succès." -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "Vous avez envoyé trop de demandes de réinitialisation de mot de passe. Veuillez réessayer plus tard." @@ -3707,13 +3732,13 @@ msgstr "Terminer" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "Désactiver" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "Activer" @@ -3733,48 +3758,48 @@ msgstr "Voir les votes du problème" msgid "Edit user" msgstr "Modifier l'utilisateur" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "Bonjour, %(username)s." -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "Arrêter d'imiter" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "Se déconnecter" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Se connecter" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "ou" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "S'inscrire" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "en observant" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "Ce site fonctionne mieux avec JavaScript activé." -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "fièrement propulsé par **DMOJ**" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Modifier" @@ -3975,15 +4000,15 @@ msgstr "Score" msgid "No votes" msgstr "Aucun vote" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "Cliquez pour copier" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "Copier" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "Copié !" @@ -4064,7 +4089,7 @@ msgstr "Calendrier" msgid "Info" msgstr "Info" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "Statistiques" @@ -4279,7 +4304,7 @@ msgstr "Taux d'AC" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "Utilisateurs" @@ -4287,7 +4312,7 @@ msgstr "Utilisateurs" msgid "Editorials" msgstr "Éditoriaux" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "Éditorial" @@ -4452,19 +4477,19 @@ msgstr "Dé-disqualifier" msgid "Disqualify" msgstr "Disqualifier" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "Êtes-vous sûr de vouloir disqualifier cette participation ?" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "Êtes-vous sûr de vouloir dé-disqualifier cette participation ?" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "Voir la participation de l'utilisateur" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "Afficher les organisations" @@ -4651,7 +4676,7 @@ msgid "There are no requests to approve." msgstr "Il n'y a aucune demande à approuver." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "Supprimer ?" @@ -4687,59 +4712,59 @@ msgstr "Mettre à jour l'aperçu" msgid "Enter a new code for the cloned problem:" msgstr "Saisissez un nouveau code pour le problème cloné :" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "Voir le YAML" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "Afficher les colonnes :" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "Préfixe de sortie" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "Limite de sortie" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "Vérificateur" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "Arguments du générateur" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "Type" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "Fichier d'entrée" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "Fichier de sortie" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "Prétest ?" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "Soumettre !" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "Ajouter un nouveau cas" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "Enregistrer" @@ -4757,100 +4782,100 @@ msgid_plural "Authors:" msgstr[0] "Auteur :" msgstr[1] "Auteurs :" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "Filtrer par type..." -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "Problèmes populaires" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Catégorie" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "Types" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "AC %%" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "Laisser vide pour ne pas filtrer par langage" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "Laisser vide pour ne pas filtrer par résultat" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "Il faut des valeurs valides pour les ID de début et de fin." -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "L'ID de fin doit être après l'ID de début." -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "Vous êtes sur le point de juger {count} soumissions à nouveau. Êtes-vous sûr de vouloir continuer ?" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "Vous êtes sur le point de juger quelques soumissions à nouveau. Êtes-vous sûr de vouloir continuer ?" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "Rejuger les Soumissions" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "Filtrer par ID :" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "ID de début :" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "ID de fin :" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "Cette plage comprend les deux points d'extrémité." -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "Filtrer par langage :" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "Rejuger les soumissions sélectionnées" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "Tout Recompter" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "Cela recomptera %(count)s soumission." msgstr[1] "Cela recomptera %(count)s soumissions." -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "Êtes-vous sûr de vouloir recompter %(count)s soumission ?" msgstr[1] "Êtes-vous sûr de vouloir recompter %(count)s soumissions ?" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "Recompter toutes les soumissions" @@ -4927,11 +4952,11 @@ msgstr "Points :" msgid "(partial)" msgstr "(partiel)" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "Limite de temps :" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "Limite de mémoire :" @@ -4968,14 +4993,6 @@ msgstr "Demander une clarification" msgid "Report an issue" msgstr "Reporter un problème" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "Limite de Temps :" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "Limite de Mémoire :" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "Recherche de problèmes" @@ -5013,8 +5030,8 @@ msgstr "Types de problème" msgid "Point range" msgstr "Plage de points" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "Aller" @@ -5023,7 +5040,7 @@ msgid "Random" msgstr "Aléatoire" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "ID" @@ -5035,31 +5052,31 @@ msgstr "Résultat" msgid "Date" msgstr "Date" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "Votre code source doit contenir au plus 65536 caractères." -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "Attention !" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "Votre langage par défaut, %(language)s, n'est pas disponible pour ce problème et a été désélectionné." -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "Il vous reste %(left)s soumission" msgstr[1] "Il vous reste %(left)s soumissions" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "Il vous reste 0 soumission" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "Aucun juge n'est disponible pour ce problème." @@ -5267,7 +5284,7 @@ msgstr "L'équipe %(site_name)s" msgid "Password reset on %(site_name)s" msgstr "Réinitialisation du mot de passe sur %(site_name)s" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continuer >" @@ -5280,36 +5297,36 @@ msgstr "L'inscription est actuellement fermée. Veuillez contacter un administra msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "Vous avez été inscrit avec succès. Un email a été envoyé au courriel que vous avez fourni pour confirmer votre inscription." -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "(encore, pour confirmation)" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "(sélectionnez votre ville principale la plus proche)" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "choisir dans la carte" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "Langage par défaut" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "Organisations affiliées" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "Informez-moi des concours à venir" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "En vous inscrivant, vous acceptez nos [conditions générales d'utilisation][0]." -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "S'inscrire !" @@ -5351,17 +5368,17 @@ msgid "Enable Two Factor Authentication" msgstr "Activer l'Authentification à Deux Facteurs" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "Vous trouverez ci-dessous une liste de codes scratch à usage unique." #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "Ces codes ne peuvent être utilisés qu'une seule fois et sont destinés à être utilisés en cas d'urgence." #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "Vous pouvez utiliser ces codes pour vous connecter à votre compte ou désactiver l'authentification à deux facteurs." @@ -5370,7 +5387,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "Si vous avez besoin de plus de codes scratch, vous pouvez les régénérer dans l'onglet « Modifier le profil »." #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "Veuillez les noter et les conserver dans un endroit sûr." @@ -5388,12 +5405,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "Si vous perdez votre appareil d'authentification et que vous ne pouvez pas utiliser vos codes scratch, les administrateurs de %(site_name)s ne seront PAS en mesure de récupérer votre compte. Veuillez conserver vos codes scratch en lieu sûr !" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "WebAuthn n'est pas supporté par votre navigateur." #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "Impossible de contacter le serveur." @@ -5491,23 +5508,23 @@ msgstr "Informations sur l'erreur" msgid "Are you sure you want to rejudge?" msgstr "Êtes-vous sûr de vouloir rejuger ?" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "Filtrer par statut..." -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "Filtrer par langage..." -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "Filtrer les soumissions" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "Total :" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "Vous avez été déconnecté. Rafraîchissez pour afficher les dernières mises à jour." @@ -5671,33 +5688,33 @@ msgstr "Réouvert : " msgid "Closed: " msgstr "Fermé : " -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "Utiliser la notification de bureau" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "Masquer les tickets fermés" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "Afficher mes tickets uniquement" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "Utilisateur de dépôt" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "Destinataire" msgstr[1] "Destinataires" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "Titre" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "Destinataires" @@ -5748,131 +5765,135 @@ msgstr "Notes du destinataire" msgid "Nothing here." msgstr "Rien ici." -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "Rang" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "Recherche par nom..." -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "Êtes-vous sûr de vouloir générer ou régénérer votre jeton API ?" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "Cela invalidera tous les jetons API précédents." -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "Il permet également d'accéder à votre compte sans authentification à deux facteurs." -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "Vous ne pourrez plus voir votre jeton API après avoir quitté cette page !" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "Supprimer" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "Êtes-vous sûr de vouloir supprimer votre jeton API ?" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "Générer" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "Êtes-vous sûr de vouloir supprimer cette clé de sécurité ?" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "Êtes-vous sûr de vouloir générer ou régénérer un nouveau jeu de codes scratch ?" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "Vous ne pourrez plus voir vos codes scratch après avoir quitté cette page !" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "Auto-description :" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "Sélectionnez votre ville principale la plus proche" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Fuseau horaire :" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Langage :" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "Thème du site :" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "Thème de l'éditeur :" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "Moteur mathématique :" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "Organisations affiliées :" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "Changer votre avatar" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "Changer votre mot de passe" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" +msgstr "Jeton API :" + +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" +msgstr "Caché" + +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "L'authentification à deux facteurs est activée :" -#: templates/user/edit-profile.html:360 +#: templates/user/edit-profile.html:377 msgid "Refresh" msgstr "Réactiver" -#: templates/user/edit-profile.html:363 +#: templates/user/edit-profile.html:380 msgid "Scratch codes:" msgstr "Codes scratch :" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" -msgstr "Caché" - -#: templates/user/edit-profile.html:377 +#: templates/user/edit-profile.html:394 msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "Si vous avez besoin de plus de codes scratch, vous pouvez les régénérer ici." -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:402 msgid "Two-factor Authentication is disabled:" msgstr "L'authentification à deux facteurs est désactivée :" -#: templates/user/edit-profile.html:393 -msgid "API token:" -msgstr "Jeton API :" - #: templates/user/edit-profile.html:410 msgid "Security keys:" msgstr "Clés de sécurité :" diff --git a/locale/fr/LC_MESSAGES/djangojs.po b/locale/fr/LC_MESSAGES/djangojs.po index 304d1e8536..87cfbadf1b 100644 --- a/locale/fr/LC_MESSAGES/djangojs.po +++ b/locale/fr/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -17,14 +17,14 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "%d jour %h:%m:%s" msgstr[1] "%d jours %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/hr/LC_MESSAGES/django.po b/locale/hr/LC_MESSAGES/django.po index c9d906bbf2..9c08855103 100644 --- a/locale/hr/LC_MESSAGES/django.po +++ b/locale/hr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Croatian\n" "Language: hr_HR\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Njemački" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Grčki" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Engleski" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Španjolski" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Francuski" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Hrvatski" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Mađarski" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Korejski" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Rumunjski" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Ruski" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Srpski (Latinica)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Turski" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Vijetnamski" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Pojednostavljeni Kineski" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Početna" @@ -142,19 +142,19 @@ msgid "Included contests" msgstr "Uključena natjecanja" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Zadatak" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Zadaci" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -237,7 +237,7 @@ msgstr[2] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -245,7 +245,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." @@ -253,15 +253,15 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "korisničko ime" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "virtualno" @@ -273,9 +273,9 @@ msgstr "putanja veze" msgid "Summary" msgstr "Sažetak" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "korisnik" @@ -306,8 +306,8 @@ msgid "Taxonomy" msgstr "Taksonomija" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Bodovi" @@ -316,9 +316,9 @@ msgstr "Bodovi" msgid "Limits" msgstr "Ograničenja" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Jezik" @@ -366,8 +366,8 @@ msgstr[2] "%d zadataka uspješno postavljeno kao privatni." msgid "Mark problems as private" msgstr "Označi zadatke privatnima" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -378,19 +378,19 @@ msgstr "zadatak" msgid "timezone" msgstr "vremenska zona" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Korisnik" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "E-mail" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Vremenska zona" @@ -410,26 +410,26 @@ msgstr[2] "%d korisnika je ponovno izračunalo bodove." msgid "Recalculate scores" msgstr "Ponovno izračunavanje rezultata" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Opis" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Informacije" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Mogućnosti" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Nepoznato" @@ -461,19 +461,19 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s u %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "Nemate dozvolu za ponovno evaluiranje predanog rješenja." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "Nemate dozvolu za ponovnu evaluaciju toliko puno predanih rješenja." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "Reevaluiraj označena predana rješenja" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." @@ -481,38 +481,38 @@ msgstr[0] "%d predano rješenje je uspješno ponovno ocijenjeno." msgstr[1] "%d predanih rješenja je uspješno ponovno ocijenjeno." msgstr[2] "%d predanih rješenja je uspješno ponovno ocijenjeno." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "Ponovno ocijeni označena predana rješenja" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Kod zadatka" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Ime zadatka" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Vrijeme" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Memorija" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -537,6 +537,7 @@ msgid "Comment body" msgstr "Tekst komentara" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "Budi tiho, mala žabice." @@ -647,7 +648,7 @@ msgstr "Pogrešan token autentikacije u dva koraka." msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -663,7 +664,7 @@ msgstr "Uključi eksperimentalne opcije" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." @@ -671,83 +672,83 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "Preuzmi komentare?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "Preuzmi predana rješenja?" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "Filtriraj prema rezultatu:" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "Molimo označite barem jednu stavku za preuzimanje." -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "Bilo koji evaluator" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Korisničko ime" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Lozinka" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "Pogrešan WebAuthn odgovor." -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "ID zadatka mora biti ^[a-z0-9]+$" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "Već postoji zadatak koji koristi taj ID." -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "ID natjecanja mora biti ^[a-z0-9]+$" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "Već postoji natjecanje koje koristi taj ID." @@ -770,26 +771,42 @@ msgstr "u {time}" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Ostavi kao LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "Samo SVG" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "Samo MathML" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax sa SVG rezervom" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "Prepoznaj najbolju kvalitetu" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "Svijetla" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "Tamna" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "ID stranice mora biti ^[pcs]:[a-z0-9]+$|^b:\\d+$" @@ -971,7 +988,7 @@ msgstr "opis" msgid "problems" msgstr "zadaci" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "vrijeme početka" @@ -1219,213 +1236,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "Pregledaj privatna natjecanja" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "Uredi vlastita natjecanja" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "Uredi sva natjecanja" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "Kloniraj natjecanje" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS natjecanje" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "natjecanje" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "natjecanja" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "bodovi" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "bodovi" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "redoslijed" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "predano rješenje" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "sudjelovanje" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "bodovi" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1902,7 +1919,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2074,7 +2091,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "organizacija" @@ -2115,7 +2132,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2140,26 +2157,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2169,200 +2190,200 @@ msgstr "" msgid "Admin" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2605,15 +2626,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2702,60 +2723,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -2976,7 +2997,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -3001,7 +3022,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -3009,12 +3030,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "" @@ -3023,111 +3044,111 @@ msgstr "" msgid "Contests" msgstr "Natjecanja" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "Kloniraj Natjecanje" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "F Y." -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Sudjelovanje" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3169,63 +3190,63 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Organizacije" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "Zahtjev za pridruživanje %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3233,7 +3254,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3241,7 +3262,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3249,7 +3270,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3257,83 +3278,83 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "Uređivanje %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "Nije moguće urediti organizaciju" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "Nemate ovlasti za uređivanje ove organizacije." -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "Nemate ovlasti za izbacivanje ljudi iz ove organizacije." -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "Nije moguće izbaciti korisnika" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "Korisnik kojeg pokušavate izbaciti ne postoji!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "Korisnik kojeg pokušavate izbaciti nije u organizaciji: %s" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3430,17 +3451,17 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3470,11 +3491,11 @@ msgstr "" msgid "Register" msgstr "" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "" @@ -3486,7 +3507,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "Status" @@ -3517,46 +3538,46 @@ msgstr "Predano rješenje za zadatak %(problem)s od korisnika %(user)s" msgid "All submissions" msgstr "Sva predana rješenja" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "Sva moja predana rješenja" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "Sva predana rješenja od korisnika %s" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "Sva predana rješenja za korisnika %s" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3611,99 +3632,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "Prijava" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "j. M Y. G:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3732,13 +3757,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3758,48 +3783,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -4000,15 +4025,15 @@ msgstr "Bodovi" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4089,7 +4114,7 @@ msgstr "Kalendar" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "" @@ -4307,7 +4332,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "" @@ -4315,7 +4340,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4481,19 +4506,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "" @@ -4680,7 +4705,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "" @@ -4716,59 +4741,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4787,86 +4812,86 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." @@ -4874,7 +4899,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" @@ -4882,7 +4907,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4960,13 +4985,13 @@ msgstr "Bodovi:" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" -msgstr "" +msgstr "Vremensko ograničenje:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" -msgstr "" +msgstr "Memorijsko ograničenje:" #: templates/problem/problem.html:246 msgid "Problem type" @@ -5003,14 +5028,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "" @@ -5048,8 +5065,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "" @@ -5058,7 +5075,7 @@ msgid "Random" msgstr "" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "" @@ -5070,20 +5087,20 @@ msgstr "Rezultat" msgid "Date" msgstr "Datum" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" @@ -5091,11 +5108,11 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5305,7 +5322,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5318,36 +5335,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5389,17 +5406,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5408,7 +5425,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5426,12 +5443,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5529,23 +5546,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5709,34 +5726,34 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5787,129 +5804,133 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Vremenska zona:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Jezik:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/hr/LC_MESSAGES/djangojs.po b/locale/hr/LC_MESSAGES/djangojs.po index a8ed9e17e3..0ea7eed204 100644 --- a/locale/hr/LC_MESSAGES/djangojs.po +++ b/locale/hr/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Croatian\n" "Language: hr_HR\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -25,7 +25,7 @@ msgstr[0] "%d dan %h:%m:%s" msgstr[1] "%d dana %h:%m:%s" msgstr[2] "%d dana %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/hu/LC_MESSAGES/django.po b/locale/hu/LC_MESSAGES/django.po index 545bda0c0e..f2d4543fc6 100644 --- a/locale/hu/LC_MESSAGES/django.po +++ b/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Német" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Görög" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Angol" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Spanyol" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Francia" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Horvát" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Koreai" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Román" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Orosz" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Szerb (Latin)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Vietnami" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Egyszerűsített Kínai" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Nyitólap" @@ -140,19 +140,19 @@ msgid "Included contests" msgstr "Hozzárendelt versenyek" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Feladat" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Feladatok" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -231,29 +231,29 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "felhasználónév" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "virtuális" @@ -265,9 +265,9 @@ msgstr "csatolási útvonal" msgid "Summary" msgstr "Összefoglalás" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "felhasználó" @@ -298,8 +298,8 @@ msgid "Taxonomy" msgstr "Rendszerezés" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Pontok" @@ -308,9 +308,9 @@ msgstr "Pontok" msgid "Limits" msgstr "Limitek" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Nyelv" @@ -355,8 +355,8 @@ msgstr[1] "%d probléma sikeresen privátnak jelölve." msgid "Mark problems as private" msgstr "Jelöld a problémákat privátnak" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -367,19 +367,19 @@ msgstr "feladat" msgid "timezone" msgstr "időzóna" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Felhasználó" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "Email" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Időzóna" @@ -398,26 +398,26 @@ msgstr[1] "%d felhasználó pontja újraszámolva." msgid "Recalculate scores" msgstr "Pontok újraszámítása" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Leírás" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Információ" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Képességek" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Semmi" @@ -449,57 +449,57 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s - %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "Nincs jogosultságod a feltöltések újratesztelésére." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "Nincs jogosultságod ilyen sok feltöltés újratesztelésére." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "A kiválasztott feltöltések újratesztelése" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d feltöltés sikeresen újrapontozva." msgstr[1] "%d feltöltés sikeresen újrapontozva." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "A kiválasztott feltöltések újrapontozása" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Feladat azonosító" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Feladat név" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Idő" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Memória" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -524,6 +524,7 @@ msgid "Comment body" msgstr "Hozzászólás törzse" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "Az útvonalad csendes, kis varangy." @@ -631,7 +632,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -647,90 +648,90 @@ msgstr "Kísérleti funkciók engedélyezése" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "" msgstr[1] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Felhasználónév" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Jelszó" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "A feladat azonosítónak ^[a-z0-9]+$ kell lennie" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "A verseny azonosítójának ^[a-z0-9]+$ kell lennie" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "" @@ -753,26 +754,42 @@ msgstr "{time}-kor" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Hagy LaTeX-ként" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "Csak SVG" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "Csak MathML" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax SVG fallback-kel" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "Legjobb minőség detektálása" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "Világos" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "Sötét" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" @@ -954,7 +971,7 @@ msgstr "leírás" msgid "problems" msgstr "feladatok" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "kezdés" @@ -1202,213 +1219,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "Privát versenyek mutatása" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "Saját versenyek szerkesztése" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "Az összes verseny szerkesztése" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "Versenyek értékelése" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "Verseny hozzáférési kódok" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "verseny" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "versenyek" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "pontszám" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "összes idő" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "virtuális részvételi azonosító" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "verseny részvétel" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "verseny részvételek" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "pontok" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "részleges" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "pretesztes-e" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "sorrend" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "versenyfeladat" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "versenyfeladatok" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "feltöltés" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "részvétel" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "verseny feltöltés" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "verseny feltöltések" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "helyezés" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "értékelés" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "utolsó értékelt" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "verseny értékelés" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "verseny értékelések" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1885,8 +1902,8 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" -msgstr "Rendezetlen" +msgid "Sorted" +msgstr "" #: judge/models/problem_data.py:29 msgid "Byte identical" @@ -2057,7 +2074,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "csoport" @@ -2098,7 +2115,7 @@ msgstr "tagok" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2123,26 +2140,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 +msgid "site theme" +msgstr "" + +#: judge/models/profile.py:159 msgid "last access time" msgstr "utolsó belépés ideje" -#: judge/models/profile.py:159 +#: judge/models/profile.py:160 msgid "last IP" msgstr "utolsó IP" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "megjelenített rang" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2152,200 +2173,200 @@ msgstr "" msgid "Admin" msgstr "Admin" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "hozzászólás lenémítása" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "Néhány felhasználó a legjobb amikor csendesek." -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "felhasználói szkript" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "Felhasználó által meghatározott JavaScript a webhely testreszabásához." -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "jelenlegi verseny" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "matek motor" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "A matek ábrákat renderelő motor." -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "felhasználói profil" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "felhasználói profilok" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "kérési idő" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "állapot" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "Elbírálás alatt" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "Jóváhagyva" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Elutasítva" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "ok" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "csoport belépési kérelem" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "csoport belépési kérelmek" @@ -2588,15 +2609,15 @@ msgstr "Belső Hiba (tesztelő szerver hiba)" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "futási idő" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "memória használat" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2685,60 +2706,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "forráskód" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "teszteset azonosító" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "tesztelési visszajelzés" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "program kimenet" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -2956,7 +2977,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2981,7 +3002,7 @@ msgstr "" msgid "You already voted." msgstr "Már szavaztál." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "Szerkesztve az oldalról" @@ -2989,12 +3010,12 @@ msgstr "Szerkesztve az oldalról" msgid "Editing comment" msgstr "Hozzászólás szerkesztése" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "Nincs ilyen verseny" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "Nem található verseny a \"%s\" kulccsal." @@ -3003,111 +3024,111 @@ msgstr "Nem található verseny a \"%s\" kulccsal." msgid "Contests" msgstr "Versenyek" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "Nem található ilyen verseny." -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "Hozzáférés a \"%s\" versenyhez megtagadva" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "A verseny nincs folyamatban" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "\"%s\" nincs folyamatban." -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "Add meg a hozzáférési kódot a \"%s\"-hoz" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "Nem vagy a \"%s\" versenyben." -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "Y. F" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "???" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Részvétel" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3149,167 +3170,167 @@ msgstr "Nem található csoport a \"%s\" kulccsal." msgid "Could not find such organization." msgstr "Nem található ilyen csoport." -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Csoportok" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "%s Tagok" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "Belépés a csoportba" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "Már benne vagy a csoportba." -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "Ez a csoport nem nyílt." -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "Csoport elhagyása" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "Nem vagy \"%s\"-ben." -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "Kérés a \"%s\"-hez való csatlakozásra" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "Belépési kérés részletei" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "%s belépési kéréseinek kezelése" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "%d darab felhasználó jóváhagyva." msgstr[1] "%d darab felhasználó jóváhagyva." -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "%d darab felhasználó elutasítva." msgstr[1] "%d darab felhasználó elutasítva." -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "%s szerkesztése" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "Nem lehet szerkeszteni a csoportot" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "Nincs jogosultságod szerkeszteni ezt a csoportot." -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "Nincs jogosultságod embereket kirúgni ebből a csoportból." -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "Nem lehet kirúgni a felhasználót" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "A felhasználó akit megpróbálsz kirúgni nem létezik!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "A felhasználó akit ki akarsz rúgni nincs a csoportban: %s" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "Nincs ilyen feladat" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "Megoldás útmutató {0}-hez" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3405,17 +3426,17 @@ msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "Legjobb megoldások %s-hez" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "Legjobb megoldások %(problem)s %(contest)s-ben" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3445,11 +3466,11 @@ msgstr "" msgid "Register" msgstr "Regisztráció" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "Azonosítási hiba" @@ -3461,7 +3482,7 @@ msgstr "Egyéb" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "Státusz" @@ -3492,46 +3513,46 @@ msgstr "" msgid "All submissions" msgstr "Összes beküldés" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "Összes beküldésem" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3586,99 +3607,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "Nincs ilyen felhasználó" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "Saját fiók" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "Felhasználó %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "Belépés" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "Y. M j., G:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "Frissítve az oldalon" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Profil szerkesztése" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Ranglista" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3707,13 +3732,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3733,48 +3758,48 @@ msgstr "" msgid "Edit user" msgstr "Felhasználó szerkesztése" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "Heló, %(username)s." -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "Kilépés" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "vagy" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "megfigyelés" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "Az oldal JavaScript engedélyezésével működik a legjobban." -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Szerkesztés" @@ -3975,15 +4000,15 @@ msgstr "Pont" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4064,7 +4089,7 @@ msgstr "Naptár" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "" @@ -4279,7 +4304,7 @@ msgstr "AC arány" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "Felhasználók" @@ -4287,7 +4312,7 @@ msgstr "Felhasználók" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "Megoldási útmutató" @@ -4452,19 +4477,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "Csoportok mutatása" @@ -4651,7 +4676,7 @@ msgid "There are no requests to approve." msgstr "Nincsenek jóváhagyásra váló kérések." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "Törlés?" @@ -4687,59 +4712,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "Kimenet limit" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "Checker" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "Generátor argumentumok" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "Típus" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "Bementi fájl" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "Kimeneti fájl" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "Preteszt?" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "Beküld!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "Új eset hozzáadása" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4757,100 +4782,100 @@ msgid_plural "Authors:" msgstr[0] "Szerző:" msgstr[1] "Szerzők:" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "Szűrés típus szerint..." -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Kategória" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "Típusok" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "AC %%" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4927,11 +4952,11 @@ msgstr "Pontok:" msgid "(partial)" msgstr "(részleges)" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "Időkorlát:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "Memóriakorlát:" @@ -4968,14 +4993,6 @@ msgstr "Pontosítást kérek" msgid "Report an issue" msgstr "Hiba jelentése" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "Időkorlát:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "Memóriakorlát:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "Feladat keresés" @@ -5013,8 +5030,8 @@ msgstr "Feladat típusok" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "" @@ -5023,7 +5040,7 @@ msgid "Random" msgstr "" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "Azonosító" @@ -5035,31 +5052,31 @@ msgstr "Eredmény" msgid "Date" msgstr "Dátum" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5267,7 +5284,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Folytatás >" @@ -5280,36 +5297,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "(újra, megerősítésként)" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "válassz a térképről" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "Alapértelmezett nyelv" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "Kapcsolódó csoportok" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5351,17 +5368,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5370,7 +5387,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5388,12 +5405,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5491,23 +5508,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5671,33 +5688,33 @@ msgstr "Újranyitva: " msgid "Closed: " msgstr "Lezárva: " -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "Asztali értesítés használata" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "Csak a saját hibajegyek mutatása" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5748,129 +5765,133 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "Önleírás:" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Időzóna:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Nyelv:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "Matek motor:" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "Kapcsolódó csoportok:" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/hu/LC_MESSAGES/djangojs.po b/locale/hu/LC_MESSAGES/djangojs.po index 0d0f7c8b4c..3b8b835249 100644 --- a/locale/hu/LC_MESSAGES/djangojs.po +++ b/locale/hu/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -17,14 +17,14 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "%d nap %h:%m:%s" msgstr[1] "%d nap %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/it/LC_MESSAGES/django.po b/locale/it/LC_MESSAGES/django.po index 58b597c1ee..fe9dd4baf1 100644 --- a/locale/it/LC_MESSAGES/django.po +++ b/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-21 00:49\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Catalano" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Tedesco" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Greco" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Inglese" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Spagnolo" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Francese" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Croato" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Ungherese" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Giapponese" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Coreano" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Rumeno" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Russo" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Turco" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Vietnamita" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Cinese Semplificato" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Cinese Tradizionale" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "" @@ -140,19 +140,19 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -231,29 +231,29 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "" @@ -265,9 +265,9 @@ msgstr "" msgid "Summary" msgstr "" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -298,8 +298,8 @@ msgid "Taxonomy" msgstr "" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" @@ -308,9 +308,9 @@ msgstr "" msgid "Limits" msgstr "" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "" @@ -355,8 +355,8 @@ msgstr[1] "" msgid "Mark problems as private" msgstr "" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -367,19 +367,19 @@ msgstr "" msgid "timezone" msgstr "" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "" @@ -398,26 +398,26 @@ msgstr[1] "" msgid "Recalculate scores" msgstr "" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "" @@ -449,57 +449,57 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "" -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "" -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "" msgstr[1] "" -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -524,6 +524,7 @@ msgid "Comment body" msgstr "" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "" @@ -631,7 +632,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -647,90 +648,90 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "" msgstr[1] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "" @@ -753,26 +754,42 @@ msgstr "" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 -msgid "Leave as LaTeX" +#: judge/models/choices.py:24 +msgid "Follow site theme" msgstr "" #: judge/models/choices.py:60 -msgid "SVG only" +msgid "Leave as LaTeX" msgstr "" #: judge/models/choices.py:61 -msgid "MathML only" +msgid "SVG only" msgstr "" #: judge/models/choices.py:62 -msgid "MathJax with SVG fallback" +msgid "MathML only" msgstr "" #: judge/models/choices.py:63 +msgid "MathJax with SVG fallback" +msgstr "" + +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" @@ -954,7 +971,7 @@ msgstr "" msgid "problems" msgstr "" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "" @@ -1202,213 +1219,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1885,7 +1902,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2057,7 +2074,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "" @@ -2098,7 +2115,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2123,26 +2140,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2152,200 +2173,200 @@ msgstr "" msgid "Admin" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2588,15 +2609,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2685,60 +2706,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -2956,7 +2977,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2981,7 +3002,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -2989,12 +3010,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "" @@ -3003,111 +3024,111 @@ msgstr "" msgid "Contests" msgstr "" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3149,167 +3170,167 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3405,17 +3426,17 @@ msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3445,11 +3466,11 @@ msgstr "" msgid "Register" msgstr "" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "" @@ -3461,7 +3482,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "" @@ -3492,46 +3513,46 @@ msgstr "" msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3586,99 +3607,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3707,13 +3732,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3733,48 +3758,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3975,15 +4000,15 @@ msgstr "" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4064,7 +4089,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "" @@ -4279,7 +4304,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "" @@ -4287,7 +4312,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4452,19 +4477,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "" @@ -4651,7 +4676,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "" @@ -4687,59 +4712,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4757,100 +4782,100 @@ msgid_plural "Authors:" msgstr[0] "" msgstr[1] "" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4927,11 +4952,11 @@ msgstr "" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "" @@ -4968,14 +4993,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "" @@ -5013,8 +5030,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "" @@ -5023,7 +5040,7 @@ msgid "Random" msgstr "" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "" @@ -5035,31 +5052,31 @@ msgstr "" msgid "Date" msgstr "" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5267,7 +5284,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5280,36 +5297,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5351,17 +5368,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5370,7 +5387,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5388,12 +5405,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5491,23 +5508,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5671,33 +5688,33 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5748,129 +5765,133 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/it/LC_MESSAGES/djangojs.po b/locale/it/LC_MESSAGES/djangojs.po index e98bf77551..1dad35b6fc 100644 --- a/locale/it/LC_MESSAGES/djangojs.po +++ b/locale/it/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -17,14 +17,14 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "" msgstr[1] "" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" diff --git a/locale/ja/LC_MESSAGES/django.po b/locale/ja/LC_MESSAGES/django.po index d2a3970724..83a01af797 100644 --- a/locale/ja/LC_MESSAGES/django.po +++ b/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "カタロニア語" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "ドイツ語" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "ギリシャ語" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "英語" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "スペイン語" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "フランス語" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "クロアチア語" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "ハンガリー語" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "日本語" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "韓国語" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "ポルトガル語(ブラジル)" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "ルーマニア語" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "ロシア語" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "セルビア語(ラテン)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "トルコ語" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "ベトナム語" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "簡体字中国語" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "繁体字中国語" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "登録できません" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "ホーム" @@ -138,19 +138,19 @@ msgid "Included contests" msgstr "含まれているコンテスト" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "課題" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "課題" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -225,27 +225,27 @@ msgstr[0] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "%d個の提出を再判定するよう設定しました。" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "%d人の参加者を再計算。" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "再計算の結果" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "利用者名" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "仮想" @@ -257,9 +257,9 @@ msgstr "リンクパス" msgid "Summary" msgstr "概要" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "利用者" @@ -290,8 +290,8 @@ msgid "Taxonomy" msgstr "分類" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "点数" @@ -300,9 +300,9 @@ msgstr "点数" msgid "Limits" msgstr "制限" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "言語" @@ -344,8 +344,8 @@ msgstr[0] "%d個の課題はプライベートとして印付けられました msgid "Mark problems as private" msgstr "課題をプライベートに印付けます" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -356,19 +356,19 @@ msgstr "課題" msgid "timezone" msgstr "時間帯" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "利用者" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "電子メール" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "時間帯" @@ -386,26 +386,26 @@ msgstr[0] "%d人の利用者の得点が再計算されました。" msgid "Recalculate scores" msgstr "得点を再計算する" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "説明" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "情報" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "機能" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "なし" @@ -437,56 +437,56 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(contest)s 中の %(problem)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "あなたには提出物を再判定する権限がありません。" -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "あなたには、それら多くの提出物を再判定する権限がありません。" -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "選択された提出物を再判定する" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d個の提出物が正常に再採点されました。" -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "選択した提出物を再採点する" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "課題のコード" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "課題名" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "時間" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "メモリ" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -511,6 +511,7 @@ msgid "Comment body" msgstr "コメント本文" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "お黙り、ヒキガエル。" @@ -615,7 +616,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -631,89 +632,89 @@ msgstr "実験的な機能を有効化する" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "あなたは{count}個以上の公開組織に参加できない場合があります。" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "結果で絞り込む:" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "利用者名" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "パスワード" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "課題のコードは ^[a-z0-9]+$ でなければなりません" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "このコードを使用している問題はすでに存在しています。" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "コンテスト id は ^[a-z0-9]+$ でなければなりません" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "同じキーを持つコンテストはすでに存在しています。" @@ -736,26 +737,42 @@ msgstr "{time}時点" msgid "Unrated" msgstr "未評価" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "LaTeX のまま" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "SVG のみ" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "MathML のみ" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "SVG フォールバックのある MathJax" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "最高品質を検出する" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "ライト" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "ダーク" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "ページコードは ^[pcs]:[a-z0-9]+$|^b:\\d+$ でなければなりません" @@ -937,7 +954,7 @@ msgstr "説明" msgid "problems" msgstr "課題" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "開始時刻" @@ -1185,213 +1202,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "プライベートのコンテストを見る" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "自分のコンテストを編集する" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "全てのコンテストを編集する" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "コンテストをクローンする" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSSコンテスト" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "コンテストを評価する" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "コンテストのアクセスコード" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "プライベートなコンテストの生成" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "コンテスト" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "コンテスト" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "関連するコンテスト" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "得点" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "累積時間" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "仮想参加 id" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "コンテスト参加者" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "コンテスト参加者" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "点数" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "部分点" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "予備テストされているか" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "順番" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "出力プレフィックス長のオーバーライド" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "なぜあなたが提出できない課題を含むのか?" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "コンテストの課題" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "コンテストの課題" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "提出" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "参加者" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "この提出物が予備テストだけを実行したのかどうか。" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "コンテスト提出" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "コンテスト提出" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "順位" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "評価" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "最後の評価" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "コンテストの評価" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "コンテストの評価" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1868,8 +1885,8 @@ msgid "Non-trailing spaces" msgstr "非末尾スペース" #: judge/models/problem_data.py:28 -msgid "Unordered" -msgstr "順不同" +msgid "Sorted" +msgstr "" #: judge/models/problem_data.py:29 msgid "Byte identical" @@ -2040,7 +2057,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "組織" @@ -2081,7 +2098,7 @@ msgstr "メンバー" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2106,26 +2123,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 +msgid "site theme" +msgstr "" + +#: judge/models/profile.py:159 msgid "last access time" msgstr "最終アクセス時刻" -#: judge/models/profile.py:159 +#: judge/models/profile.py:160 msgid "last IP" msgstr "最終 IP アドレス" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "順位を表示する" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2135,200 +2156,200 @@ msgstr "" msgid "Admin" msgstr "管理" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "コメントミュート" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "ある利用者は沈黙の時に能力を発揮する。" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "利用者スクリプト" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "サイトのカスタマイズするためのユーザー定義 JavaScript。" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "現在のコンテスト" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "数式エンジン" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "数式の表示に使用されるレンダリングエンジン。" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "内部メモ" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "ユーザープロフィール" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "ユーザープロフィール" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "要求時刻" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "状態" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "保留中" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "承認済" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "却下された" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "理由" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "組織への参加要求" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "組織への参加要求" @@ -2571,15 +2592,15 @@ msgstr "内部エラー(判定サーバエラー)" msgid "submission time" msgstr "提出時刻" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "実行時間" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "メモリ使用量" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "付与された点数" @@ -2668,60 +2689,60 @@ msgstr "" msgid "submissions" msgstr "提出" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "関連する提出物" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "ソースコード" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "提出ソース" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "提出ソース" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "テストケースの ID" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "状態フラグ" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "可能な点数" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "バッチ番号" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "判定のフィードバック" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "プログラムの出力" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "提出テストケース" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "提出テストケース" @@ -2936,7 +2957,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "投稿のページ %d" @@ -2961,7 +2982,7 @@ msgstr "" msgid "You already voted." msgstr "あなたは既に投票しました。" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "サイトから編集された" @@ -2969,12 +2990,12 @@ msgstr "サイトから編集された" msgid "Editing comment" msgstr "コメントの編集" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "そのようなコンテストはありません" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "鍵 \"%s\" を持つコンテストは見つかりませんでした。" @@ -2983,111 +3004,111 @@ msgstr "鍵 \"%s\" を持つコンテストは見つかりませんでした。" msgid "Contests" msgstr "コンテスト" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "このようなコンテストは見つかりませんでした。" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "コンテスト \"%s\" へのアクセスは拒否されました" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "コンテストをクローンする" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "開催中ではないコンテスト" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "\"%s\" は現在開催中ではありません。" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "\"%s\" のアクセスコードを入力してください" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "あなたはコンテストに参加していません: \"%s\"。" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "%(month)sのコンテスト" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "Y年n月" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "%s 順位表" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "???" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "あなたの %(contest)s への参加" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "%(user)s の %(contest)s への参加" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "ライブ" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "参加" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "コンテストタグ: %s" @@ -3129,163 +3150,163 @@ msgstr "鍵 \"%s\" を持つ組織は見つかりませんでした。" msgid "Could not find such organization." msgstr "このような組織を見つけることができませんでした。" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "組織" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "%s のメンバー" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "所属している組織" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "あなたは、既にこの組織にしょぞくしています。" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "この組織は公開ではありません。" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "組織から脱退する" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "あなたは \"%s\" に所属していません。" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "%s への参加を申し込む" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "参加申込みの詳細" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "%s への参加申込みを管理する" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "あなたの組織はあと%d人のメンバーしか受け入れられません。" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "あなたは%d人の利用者を承認できません。" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "%d人の利用者を承認しました。" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "%d人の利用者を拒否しました。" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "%s を編集" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "組織を編集できません" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "あなたは、この組織を編集することは許可されていません。" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "あなたはこの組織から人を追い出すことを許可されていません。" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "利用者を追い出せません" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "あなたが追い出そうとしている利用者は存在しません!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "あなたが追い出そうとしているユーザは組織内にいません: %s" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "そのような課題はありません" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "コード \"%s\" を有する課題は見つかりませんでした。" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "{0} の論説" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "そのような論説はありません" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "コード \"%s\" を有する論説は見つかりませんでした。" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3380,17 +3401,17 @@ msgid "Successfully scheduled %d submission for rejudging." msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "%s の最優秀解答" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "%(contest)s 中の %(problem)s への最優秀解答" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "%(contest)s の課題 %(number)s への最優秀解答" @@ -3420,11 +3441,11 @@ msgstr "あなたの電子メールプロバイダは不正利用の履歴のた msgid "Register" msgstr "登録" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "認証の失敗" @@ -3436,7 +3457,7 @@ msgstr "その他" msgid "Language statistics" msgstr "言語の統計" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "状態" @@ -3467,46 +3488,46 @@ msgstr "%(user)s による %(problem)s への提出物" msgid "All submissions" msgstr "全ての提出物" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "私の全ての提出物" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "%s による全ての提出物" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "%s への全ての提出物" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "%(problem)s への私の提出物" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "%(problem)s への %(user)s による提出物" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "{contest} 中の {problem} への {user} による提出物" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "{contest} 中の課題 {number} への {user} による提出物" @@ -3561,99 +3582,103 @@ msgstr "誰もいません" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "そのような利用者はいません" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "利用者ハンドル \"%s\" はありません。" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "自分のアカウント" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "利用者 %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "ログイン" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "Y年n月j日 G:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "プロフィールを編集できません" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "サイトで更新された" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "プロフィールを編集する" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "リーダーボード" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3682,13 +3707,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3708,48 +3733,48 @@ msgstr "" msgid "Edit user" msgstr "利用者を編集する" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "こんにちは、%(username)s。" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "なりすましを停止する" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "ログアウト" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "ログイン" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "または" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "観戦中" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "このサイトはJavaScriptを有効にすると最適に動作します。" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "編集" @@ -3950,15 +3975,15 @@ msgstr "得点" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4039,7 +4064,7 @@ msgstr "カレンダー" msgid "Info" msgstr "情報" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "統計" @@ -4251,7 +4276,7 @@ msgstr "受理率" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "利用者" @@ -4259,7 +4284,7 @@ msgstr "利用者" msgid "Editorials" msgstr "論説" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "論説" @@ -4423,19 +4448,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "利用者の参加を見る" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "組織を表示する" @@ -4622,7 +4647,7 @@ msgid "There are no requests to approve." msgstr "承認するための要求がありません。" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "削除しますか?" @@ -4658,59 +4683,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "YAML を見る" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "カラムを表示:" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "出力プレフィクス" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "出力制限" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "チェッカー" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "ジェネレータの引数" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "タイプ" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "入力ファイル" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "出力ファイル" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "事前テストか?" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "提出!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "新しいケースを追加する" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4727,98 +4752,98 @@ msgid "Author:" msgid_plural "Authors:" msgstr[0] "著者:" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "タイプで絞り込む..." -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "ホットな課題" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "カテゴリ" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "タイプ" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "受理 %%" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "言語で絞り込む:" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4894,11 +4919,11 @@ msgstr "点数:" msgid "(partial)" msgstr "(部分点)" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "制限時間:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "メモリ制限:" @@ -4933,14 +4958,6 @@ msgstr "解説を要求する" msgid "Report an issue" msgstr "問題を報告する" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "制限時間:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "メモリ制限:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "課題検索" @@ -4978,8 +4995,8 @@ msgstr "課題のタイプ" msgid "Point range" msgstr "点数の範囲" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "実行する" @@ -4988,7 +5005,7 @@ msgid "Random" msgstr "ランダム" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "ID" @@ -5000,30 +5017,30 @@ msgstr "結果" msgid "Date" msgstr "" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "警告!" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "あなたのデフォルト言語 %(language)s はこの課題に利用可能ではないので選択を解除しました。" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "あなたには提出物が残っていません" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "この課題は判定器が利用可能ではありません。" @@ -5229,7 +5246,7 @@ msgstr "%(site_name)s チーム" msgid "Password reset on %(site_name)s" msgstr "%(site_name)s のパスワードをリセットする" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "続行 >" @@ -5242,36 +5259,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "あなたは正常に登録されています。あなたの登録を確認するために、電子メールを指定されたメールアドレスに送信しました。" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "(もう1度、確認のため)" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "(最寄りの大都市を選択してください)" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "地図から選ぶ" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "デフォルトの言語" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "所属組織" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "まもなく開催予定のコンテストを通知する" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "登録!" @@ -5313,17 +5330,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5332,7 +5349,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5350,12 +5367,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5453,23 +5470,23 @@ msgstr "エラー情報" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "状態で絞り込む..." -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "言語で絞り込む..." -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "提出物を絞り込む" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "合計:" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "あなたは切断されました。最終更新を表示するためにリフレッシュして下さい。" @@ -5633,32 +5650,32 @@ msgstr "再オープンしました: " msgid "Closed: " msgstr "閉じられました: " -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "デスクトップ通知を利用する" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "閉じたチケットを非表示にする" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "私のチケットだけを表示する" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "利用者を埋める" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "担当者" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "題目" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "担当者" @@ -5709,131 +5726,135 @@ msgstr "担当者メモ" msgid "Nothing here." msgstr "何もありません。" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "ランク" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "ハンドルで検索..." -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "自己紹介:" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "最寄りの大都市を選択してください" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "時間帯:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "言語:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "エディタのテーマ:" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "数式エンジン:" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "所属組織:" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "アバターを変更する" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "パスワードを変更する" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" +msgstr "" + +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" +msgstr "非表示" + +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:360 +#: templates/user/edit-profile.html:377 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:363 +#: templates/user/edit-profile.html:380 msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" -msgstr "非表示" - -#: templates/user/edit-profile.html:377 +#: templates/user/edit-profile.html:394 msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:402 msgid "Two-factor Authentication is disabled:" msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" -msgstr "" - #: templates/user/edit-profile.html:410 msgid "Security keys:" msgstr "" diff --git a/locale/ja/LC_MESSAGES/djangojs.po b/locale/ja/LC_MESSAGES/djangojs.po index 688b1a1fe2..4984576880 100644 --- a/locale/ja/LC_MESSAGES/djangojs.po +++ b/locale/ja/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -17,13 +17,13 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "%d 日 %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/ko/LC_MESSAGES/django.po b/locale/ko/LC_MESSAGES/django.po index c39f90da80..60011654c1 100644 --- a/locale/ko/LC_MESSAGES/django.po +++ b/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-21 00:49\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "카탈루냐어" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "독일어" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "그리스어" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "영어" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "스페인어" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "프랑스어" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "크로아티아어" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "헝가리어" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "일본어" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "한국어" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "포르투갈어 (브라질)" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "루마니아어" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "러시아어" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "세르비아어(라틴문자)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "터키어" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "베트남어" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "중국어(간체)" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "중국어(번체)" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "메인" @@ -138,19 +138,19 @@ msgid "Included contests" msgstr "포함된 대회" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "문제" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "문제" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -225,27 +225,27 @@ msgstr[0] "%d개의 대회가 해제되었습니다." msgid "Unlock contest submissions" msgstr "콘테스트 답안제출 허용" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "%d개의 제출이 성공적으로 재채점 대기열에 등록되었습니다." -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "%d 참여자가 재계산되었습니다." -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "결과 초기화" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "사용자 이름" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "가상" @@ -257,9 +257,9 @@ msgstr "링크 경로" msgid "Summary" msgstr "요약" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "사용자" @@ -290,8 +290,8 @@ msgid "Taxonomy" msgstr "분류" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "포인트" @@ -300,9 +300,9 @@ msgstr "포인트" msgid "Limits" msgstr "제한" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "언어" @@ -344,8 +344,8 @@ msgstr[0] "%d개의 문제가 비공개로 전환되었습니다." msgid "Mark problems as private" msgstr "비공개로 설정" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -356,19 +356,19 @@ msgstr "문제" msgid "timezone" msgstr "시간대" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "사용자" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "이메일" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "시간대" @@ -386,26 +386,26 @@ msgstr[0] "%d명의 사용자 점수가 재계산되었습니다." msgid "Recalculate scores" msgstr "점수 재계산" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "재생성" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "설명" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "정보" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "기능" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "없음" @@ -437,56 +437,56 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s 대회의 문제 %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "재채점할 권한이 없습니다." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "재채점 가능 개수를 초과하였습니다." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "선택한 제출 재채점" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d개의 제출이 성공적으로 재채점되었습니다." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "재채점" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "문제 코드" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "문제 이름" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "시간" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "메모리" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -511,6 +511,7 @@ msgid "Comment body" msgstr "코멘트 본문" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "침묵하세요." @@ -615,7 +616,7 @@ msgstr "잘못된 이중 인증 토큰입니다." msgid "Scratch codes must be 16 Base32 characters." msgstr "스크래치 코드는 16 Base32 문자여야 합니다." -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "유효하지 않은 접근 코드입니다." @@ -631,89 +632,89 @@ msgstr "베타 기능 활성화" msgid "You must solve at least one problem before you can update your profile." msgstr "프로필을 업데이트하고 싶다면 최소한 한 문제를 먼저 풀어야 합니다." -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "{count}개보다 많은 공개 조직에 소속될 수 없습니다." -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "주석을 다운로드하시겠습니까?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "제출물을 다운로드하시겠습니까?" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "문제 코드로 필터링:" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "모든 제출물을 포함하려면 비워 둡니다" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "결과 필터링:" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "다운 받을 것을 최소 한 개 선택해주세요." -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "모든 judge" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "사용자 이름" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "비밀번호" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "잘못된 코드 길이입니다." -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "잘못된 WebAuthn 응답입니다." -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "WebAuthn 챌린지가 발행되지 않았습니다." -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "잘못된 WebAuthn 자격 증명 ID입니다." -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "잘못된 2단계 인증 토큰 또는 접근 코드입니다." -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "totp_token 또는 webauthn_response를 지정해야 합니다." -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "문제 코드는 ^[a-z0-9]+$ 이어야 합니다" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "코드에 문제가 이미 있습니다." -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "대회 아이디 ^[a-z0-9]+$ 이어야 합니다" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "키가 있는 콘테스트가 이미 존재합니다." @@ -736,26 +737,42 @@ msgstr "{time}에" msgid "Unrated" msgstr "레이팅 없음" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Leave as LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "MathML Only" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "최고의 질을 찾아라" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "페이지 코드는 ^[pcs]:[a-z0-9]+$|^b:\\d+$ 이어야 합니다" @@ -937,7 +954,7 @@ msgstr "설명" msgid "problems" msgstr "문제" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "시작 시각" @@ -1185,213 +1202,213 @@ msgstr "정밀 포인트" msgid "Number of digits to round points to." msgstr "점수를 반올림할 자릿수입니다." -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "비공개 콘테스트 보기" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "내 콘테스트 편집" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "모든 콘테스트 편집" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "콘테스트 복사" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS 콘테스트" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "대회 레이팅" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "대회 접근 코드" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "Private 대회 생성하기" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "대회 가시성 변경하기" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "컨테스트 문제 라벨 스크립트 수정" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "대회 잠금 여부 변경하기" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "대회" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "대회" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "관련된 대회" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "점수" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "누적 시간" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "실격되었습니다" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "이 참여자의 실격 여부." -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "동점 필드" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "가상 참여 id" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "0은 가상이 아님을 의미하고, 그렇지 않으면 n번째 가상 참여를 의미합니다." -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "대회 형식별 데이터" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "대회 참가" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "대회 참가자" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "점수" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "부분" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "pretested 됨" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "순서" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "출력 접두사 길이 재정의" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "이 문제에 대한 최대 제출 수이거나 제한이 없는 경우 공백으로 둡니다." -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "제출할 수 없는 문제를 포함하는 이유는 무엇입니까?" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "대회 문제" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "대회 문제" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "제출" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "참가 여부" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "Pretests에서만 이 제출이 실행되었는지 여부." -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "대회 제출" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "대회 제출" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "등수" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "순위" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "원ㅅ ㅣ등급" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "대회 퍼포먼스" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "최근 순위" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "대회 순위" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "대회 순위" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "대회 코드 카피 체크 결과" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "대회 코드 카피 체크 결과" @@ -1868,8 +1885,8 @@ msgid "Non-trailing spaces" msgstr "비 후행 공백" #: judge/models/problem_data.py:28 -msgid "Unordered" -msgstr "정렬되지 않은" +msgid "Sorted" +msgstr "" #: judge/models/problem_data.py:29 msgid "Byte identical" @@ -2040,7 +2057,7 @@ msgid "Edit all organizations" msgstr "조직 편집" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "조직" @@ -2081,7 +2098,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2106,26 +2123,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 +msgid "site theme" +msgstr "" + +#: judge/models/profile.py:159 msgid "last access time" msgstr "마지막 접속 시간" -#: judge/models/profile.py:159 +#: judge/models/profile.py:160 msgid "last IP" msgstr "마지막 IP" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "순위 표시" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "일반 유저" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "문제 해결사" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2135,200 +2156,200 @@ msgstr "문제 해결사" msgid "Admin" msgstr "관리자" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "코멘트 음소거" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "일부 사용자는 침묵할 때 최상의 상태를 유지합니다." -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "비공개 사용자" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "사용자는 순위가 매겨지지 않습니다." -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "사용자 스크립트" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "사이트 수정을 위한 사용자 자바스크립트입니다." -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "현재 대회" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "수학 엔진" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "수학을 렌더링하는 데 사용되는 렌더링 엔진." -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "TOTP 2FA 활성화" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "TOTP 기반 이중 인증 활성화 확인." -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn 2FA 사용" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "WebAuthn 기반 2단계 인증을 활성화하려면 체크." -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "TOTP 키" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "TOTP용 32자 Base32 인코딩 키." -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "TOTP 키는 비어 있거나 Base32 이어야 합니다." -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "기본 코드" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "기본 코드용 16 글자 Base32 인코딩 코드의 JSON 배열." -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "기본 코드는 비어있거나 Base32 코드 글자의 JSON 배열이어야 합니다." -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "마지막 TOPT 타임 코드" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "API 토큰" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "마지막으로 데이터를 다운로드한 시간" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "사용자 프로파일" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "사용자 프로파일" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "공개 키" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "서명 카운터" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "요청 시간" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "상태" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "보류 중" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "승인됨" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "거절됨" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "이유" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "조직 가입 요청" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "조직 가입 요청" @@ -2571,15 +2592,15 @@ msgstr "" msgid "submission time" msgstr "제출 시간" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "실행 시간" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "메모리 사용량" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "획득 포인트" @@ -2668,60 +2689,60 @@ msgstr "" msgid "submissions" msgstr "제출" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "관련된 제출" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "소스 코드" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "test case ID" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "상태 flag" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "획득 가능한 포인트" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "batch number" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "채점 피드백" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "확장된 심사 피드백" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "프로그램 출력" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "제출 테스트 케이스" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "제출 테스트 케이스" @@ -2936,7 +2957,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "게시물 %d 페이지" @@ -2961,7 +2982,7 @@ msgstr "" msgid "You already voted." msgstr "이미 투표하셨습니다." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "사이트에서 편집" @@ -2969,12 +2990,12 @@ msgstr "사이트에서 편집" msgid "Editing comment" msgstr "코멘트 수정" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "그런 대회는 존재하지 않습니다" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "키 %s로는 대회를 찾을 수 없습니다." @@ -2983,111 +3004,111 @@ msgstr "키 %s로는 대회를 찾을 수 없습니다." msgid "Contests" msgstr "대회" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "그런 대회를 찾을 수 있습니다." -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "%s 대회 접근이 거부되었습니다" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "콘테스트 복제" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "%s의 복제된 콘테스트" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "현재 진행중인 대회가 아닙니다" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "%s는 현재 진행중이 아닙니다." -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "당신은 이 콘테스트에 대해 무료로 선언되지 않았습니다. 당신은 이 콘테스트에 영구적으로 참가할 수 없습니다." -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "\"%s\"에 대한 액세스 코드를 입력하십시오" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "현재 대회 %s에 참가중이 아닙니다." -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "%(month)s의 콘테스트" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "Y년 n월" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "%s 순위" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "???" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "실시간" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "참여" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "%s MOSS 결과" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "대회 태그: %s" @@ -3129,163 +3150,163 @@ msgstr "%s 조직을 찾을 수 없습니다." msgid "Could not find such organization." msgstr "그러한 조직을 찾을 수 없습니다." -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "조직" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "%s 멤버" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "조직 가입" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "이미 조직에 가입되어 있습니다." -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "이 조직은 공개되어 있지 않습니다." -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "조직 탈퇴" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "%s에 있지 않습니다." -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "%s 에 가입을 신청 할 수 없습니다" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "이미 %s에 가입 신청을 했습니다." -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "%s 가입 신청" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "가입 신청 세부 사항" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "%s 가입 신청 가입" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "당신의 조직은 %d명의 회원만 더 가입이 가능합니다." -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "%d명의 사용자 가입 승인이 불가합니다." -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "%d명 사용자 승인." -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "%d명 거부." -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "%s 편집중" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "조직 편집이 불가합니다" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "조직을 편집할 권한이 없습니다." -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "조직 사용자를 탈퇴시킬 권한이 없습니다." -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "이 사용자를 탈퇴시킬 수 없습니다" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "탈퇴시키려는 사용자가 존재하지 않습니다." -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "삭제하려는 유저: %s 가 조직에 없습니다." -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "존재하지 않는 문제" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "%s 문제를 찾을 수 없습니다." -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "그런 사설이 없습니다" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3380,17 +3401,17 @@ msgid "Successfully scheduled %d submission for rejudging." msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "%s를 위한 best 솔루션" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "%(contest)s의 %(problem)s에 대한 최상의 솔루션" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3420,11 +3441,11 @@ msgstr "스팸으로 인해 이 이메일 제공업체는 허용되지 않습니 msgid "Register" msgstr "등록" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "인증 실패" @@ -3436,7 +3457,7 @@ msgstr "추가 사항" msgid "Language statistics" msgstr "언어 통계" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "현재 상태" @@ -3467,46 +3488,46 @@ msgstr "%(user)s의 %(problem)s 제출" msgid "All submissions" msgstr "모든 제출들" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "내 모든 제출들" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "%s의 모든 제출물" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "%(problem)s에 대한 나의 제출" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "%(problem)s에 대한 %(user)s의 제출" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "%(contest)s 에 제출한 내 답안들" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3561,99 +3582,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "새 티켓 메시지: %s" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "이중 인증 활성화" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "이중 인증 비활성화" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "유효하지 않은 이름" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "직원은 2FA를 비활성화할 수 없습니다" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "해당 사용자를 찾을 수 없습니다" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "사용자 핸들 \"%s\"이 없습니다." -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "내 계정" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "로그인" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "Y년 n월 j일 G:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "프로필 편집이 불가합니다" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "사이트에서 업데이트됨" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "프로필 수정" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "사용자에 대해 생성된 API 토큰" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "사용자를 위해 생성된 스크래치 코드" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "순위표" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3682,13 +3707,13 @@ msgstr "종료" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "비활성화" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "활성화" @@ -3708,48 +3733,48 @@ msgstr "" msgid "Edit user" msgstr "사용자 수정" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "로그아웃" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "로그인" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "또는" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "회원 가입" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "관전" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "이 사이트는 자바 스크립트를 활성화시켜야 정상적으로 작동합니다." -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "수정" @@ -3950,15 +3975,15 @@ msgstr "점수" msgid "No votes" msgstr "투표자 없음" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4039,7 +4064,7 @@ msgstr "달력" msgid "Info" msgstr "정보" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "통계" @@ -4251,7 +4276,7 @@ msgstr "정답률" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "유저" @@ -4259,7 +4284,7 @@ msgstr "유저" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4423,19 +4448,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "이 참여의 자격을 취소하시겠습니까?" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "사용자 참여 보기" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "조직들 표시" @@ -4622,7 +4647,7 @@ msgid "There are no requests to approve." msgstr "승인할 요청이 없습니다." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "삭제하시겠습니까?" @@ -4658,59 +4683,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "YAML 보기" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "생성자 인자" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "사전 테스트?" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "새 케이스 추가" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4727,98 +4752,98 @@ msgid "Author:" msgid_plural "Authors:" msgstr[0] "저자:" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "인기 있는 문제" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "분류" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "유형" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "아이디로 필터링:" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "시작하는 아이디:" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "끝나는 아이디:" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "언어로 필터링:" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "선택한 제출 재채점" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "모두 재검토" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "%(count)s개의 제출이 재검토 될 예정입니다." -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "%(count)s개의 제출을 재검토를 원하십니까?" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "모든 제출 재검토" @@ -4894,11 +4919,11 @@ msgstr "" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "시간 제한:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "메모리 제한:" @@ -4933,14 +4958,6 @@ msgstr "설명 요구" msgid "Report an issue" msgstr "이슈 등록" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "시간 초과:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "메모리 초과:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "문제 검색" @@ -4978,8 +4995,8 @@ msgstr "문제 유형" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "이동" @@ -4988,7 +5005,7 @@ msgid "Random" msgstr "무작위" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "아이디" @@ -5000,30 +5017,30 @@ msgstr "결과" msgid "Date" msgstr "날짜" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "소스 코드는 65536자를 넘을 수 없습니다." -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "%(left)s 제출 횟수가 남았습니다" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "0번의 제출 횟수가 남았습니다" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5229,7 +5246,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "계속" @@ -5242,36 +5259,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "지도에서 고르기" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "기본 언어" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "등록" @@ -5313,17 +5330,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5332,7 +5349,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5350,12 +5367,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5453,23 +5470,23 @@ msgstr "에러 정보" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "상태 별로 필터링" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "언어로 필터링" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "제출 필터" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "합계:" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "연결이 끊겼습니다. 최신 업데이트를 표시하려면 새로고침하세요." @@ -5633,32 +5650,32 @@ msgstr "재개됨: " msgid "Closed: " msgstr "닫힘: " -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "데스크탑 알람 사용하기" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "마감된 티켓 숨기기" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "내 티켓만 보기" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "파일링 사용자" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "인증된 사용자" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "제목" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "인증된 사용자" @@ -5709,131 +5726,135 @@ msgstr "인증된 사용자 노트" msgid "Nothing here." msgstr "표시할 것이 없습니다." -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "순위" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "손쉽게 검색..." -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "API 토큰을 생성하거나 재생성 하겠습니까?" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "이전 API 토큰이 무효화됩니다." -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "또한 2단계 인증 없이 계정에 접근할 수 있습니다." -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "이 페이지를 나간 후에는 API 토큰을 볼 수 없습니다." -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "생성 중..." -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "삭제" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "API 토큰을 삭제하겠습니까?" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "생성" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "보안 키를 삭제하겠습니까?" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "자기 소개:" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "가장 가까운 대도시를 선택하세요" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "시간대:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "언어:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "편집기 테마:" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "수학 엔진:" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "아바타 변경" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "비밀번호 변경" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" +msgstr "API 토큰:" + +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" +msgstr "숨기기" + +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "2단계 인증이 활성화 되었습니다:" -#: templates/user/edit-profile.html:360 +#: templates/user/edit-profile.html:377 msgid "Refresh" msgstr "새로 고침" -#: templates/user/edit-profile.html:363 +#: templates/user/edit-profile.html:380 msgid "Scratch codes:" msgstr "기본 코드:" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" -msgstr "숨기기" - -#: templates/user/edit-profile.html:377 +#: templates/user/edit-profile.html:394 msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:402 msgid "Two-factor Authentication is disabled:" msgstr "2단계 인증이 비활성화 되었습니다:" -#: templates/user/edit-profile.html:393 -msgid "API token:" -msgstr "API 토큰:" - #: templates/user/edit-profile.html:410 msgid "Security keys:" msgstr "보안 키:" diff --git a/locale/ko/LC_MESSAGES/djangojs.po b/locale/ko/LC_MESSAGES/djangojs.po index ff20d7dbb4..27927784a6 100644 --- a/locale/ko/LC_MESSAGES/djangojs.po +++ b/locale/ko/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -17,13 +17,13 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "%d일 %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/lt/LC_MESSAGES/django.po b/locale/lt/LC_MESSAGES/django.po index 078e4d32b3..af540b0986 100644 --- a/locale/lt/LC_MESSAGES/django.po +++ b/locale/lt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-21 00:49\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Lithuanian\n" "Language: lt_LT\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "" @@ -144,19 +144,19 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -243,7 +243,7 @@ msgstr[3] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -252,7 +252,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." @@ -261,15 +261,15 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "" @@ -281,9 +281,9 @@ msgstr "" msgid "Summary" msgstr "" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -314,8 +314,8 @@ msgid "Taxonomy" msgstr "" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" @@ -324,9 +324,9 @@ msgstr "" msgid "Limits" msgstr "" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "" @@ -377,8 +377,8 @@ msgstr[3] "" msgid "Mark problems as private" msgstr "" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -389,19 +389,19 @@ msgstr "" msgid "timezone" msgstr "" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "" @@ -422,26 +422,26 @@ msgstr[3] "" msgid "Recalculate scores" msgstr "" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "" @@ -473,19 +473,19 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "" -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "" -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." @@ -494,38 +494,38 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -550,6 +550,7 @@ msgid "Comment body" msgstr "" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "" @@ -663,7 +664,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -679,7 +680,7 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." @@ -688,83 +689,83 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "" @@ -787,26 +788,42 @@ msgstr "" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 -msgid "Leave as LaTeX" +#: judge/models/choices.py:24 +msgid "Follow site theme" msgstr "" #: judge/models/choices.py:60 -msgid "SVG only" +msgid "Leave as LaTeX" msgstr "" #: judge/models/choices.py:61 -msgid "MathML only" +msgid "SVG only" msgstr "" #: judge/models/choices.py:62 -msgid "MathJax with SVG fallback" +msgid "MathML only" msgstr "" #: judge/models/choices.py:63 +msgid "MathJax with SVG fallback" +msgstr "" + +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" @@ -988,7 +1005,7 @@ msgstr "" msgid "problems" msgstr "" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "" @@ -1236,213 +1253,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1919,7 +1936,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2091,7 +2108,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "" @@ -2132,7 +2149,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2157,26 +2174,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2186,200 +2207,200 @@ msgstr "" msgid "Admin" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2622,15 +2643,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2719,60 +2740,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -2996,7 +3017,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -3021,7 +3042,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -3029,12 +3050,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "" @@ -3043,111 +3064,111 @@ msgstr "" msgid "Contests" msgstr "" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3189,63 +3210,63 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3254,7 +3275,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3263,7 +3284,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3272,7 +3293,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3281,83 +3302,83 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3455,17 +3476,17 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3495,11 +3516,11 @@ msgstr "" msgid "Register" msgstr "" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "" @@ -3511,7 +3532,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "" @@ -3542,46 +3563,46 @@ msgstr "" msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3636,99 +3657,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3757,13 +3782,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3783,48 +3808,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -4025,15 +4050,15 @@ msgstr "" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4114,7 +4139,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "" @@ -4335,7 +4360,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "" @@ -4343,7 +4368,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4510,19 +4535,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "" @@ -4709,7 +4734,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "" @@ -4745,59 +4770,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4817,86 +4842,86 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." @@ -4905,7 +4930,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" @@ -4914,7 +4939,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4993,11 +5018,11 @@ msgstr "" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "" @@ -5038,14 +5063,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "" @@ -5083,8 +5100,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "" @@ -5093,7 +5110,7 @@ msgid "Random" msgstr "" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "" @@ -5105,20 +5122,20 @@ msgstr "" msgid "Date" msgstr "" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" @@ -5127,11 +5144,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5343,7 +5360,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5356,36 +5373,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5427,17 +5444,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5446,7 +5463,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5464,12 +5481,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5567,23 +5584,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5747,23 +5764,23 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" @@ -5771,11 +5788,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5826,129 +5843,133 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/lt/LC_MESSAGES/djangojs.po b/locale/lt/LC_MESSAGES/djangojs.po index b18a28b38f..ab56a81ef7 100644 --- a/locale/lt/LC_MESSAGES/djangojs.po +++ b/locale/lt/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Lithuanian\n" "Language: lt_LT\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -26,7 +26,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" diff --git a/locale/nl/LC_MESSAGES/django.po b/locale/nl/LC_MESSAGES/django.po index 62e854aefd..42216b42ed 100644 --- a/locale/nl/LC_MESSAGES/django.po +++ b/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-21 00:48\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "" @@ -140,19 +140,19 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -231,29 +231,29 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "" @@ -265,9 +265,9 @@ msgstr "" msgid "Summary" msgstr "" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -298,8 +298,8 @@ msgid "Taxonomy" msgstr "" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" @@ -308,9 +308,9 @@ msgstr "" msgid "Limits" msgstr "" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "" @@ -355,8 +355,8 @@ msgstr[1] "" msgid "Mark problems as private" msgstr "" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -367,19 +367,19 @@ msgstr "" msgid "timezone" msgstr "" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "" @@ -398,26 +398,26 @@ msgstr[1] "" msgid "Recalculate scores" msgstr "" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "" @@ -449,57 +449,57 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "" -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "" -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "" msgstr[1] "" -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -524,6 +524,7 @@ msgid "Comment body" msgstr "" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "" @@ -631,7 +632,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -647,90 +648,90 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "" msgstr[1] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "" @@ -753,26 +754,42 @@ msgstr "" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 -msgid "Leave as LaTeX" +#: judge/models/choices.py:24 +msgid "Follow site theme" msgstr "" #: judge/models/choices.py:60 -msgid "SVG only" +msgid "Leave as LaTeX" msgstr "" #: judge/models/choices.py:61 -msgid "MathML only" +msgid "SVG only" msgstr "" #: judge/models/choices.py:62 -msgid "MathJax with SVG fallback" +msgid "MathML only" msgstr "" #: judge/models/choices.py:63 +msgid "MathJax with SVG fallback" +msgstr "" + +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" @@ -954,7 +971,7 @@ msgstr "" msgid "problems" msgstr "" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "" @@ -1202,213 +1219,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1885,7 +1902,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2057,7 +2074,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "" @@ -2098,7 +2115,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2123,26 +2140,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2152,200 +2173,200 @@ msgstr "" msgid "Admin" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2588,15 +2609,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2685,60 +2706,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -2956,7 +2977,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2981,7 +3002,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -2989,12 +3010,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "" @@ -3003,111 +3024,111 @@ msgstr "" msgid "Contests" msgstr "" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3149,167 +3170,167 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3405,17 +3426,17 @@ msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3445,11 +3466,11 @@ msgstr "" msgid "Register" msgstr "" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "" @@ -3461,7 +3482,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "" @@ -3492,46 +3513,46 @@ msgstr "" msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3586,99 +3607,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3707,13 +3732,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3733,48 +3758,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3975,15 +4000,15 @@ msgstr "" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4064,7 +4089,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "" @@ -4279,7 +4304,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "" @@ -4287,7 +4312,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4452,19 +4477,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "" @@ -4651,7 +4676,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "" @@ -4687,59 +4712,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4757,100 +4782,100 @@ msgid_plural "Authors:" msgstr[0] "" msgstr[1] "" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4927,11 +4952,11 @@ msgstr "" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "" @@ -4968,14 +4993,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "" @@ -5013,8 +5030,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "" @@ -5023,7 +5040,7 @@ msgid "Random" msgstr "" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "" @@ -5035,31 +5052,31 @@ msgstr "" msgid "Date" msgstr "" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5267,7 +5284,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5280,36 +5297,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5351,17 +5368,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5370,7 +5387,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5388,12 +5405,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5491,23 +5508,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5671,33 +5688,33 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5748,129 +5765,133 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/nl/LC_MESSAGES/djangojs.po b/locale/nl/LC_MESSAGES/djangojs.po index f673516efa..996d1763b4 100644 --- a/locale/nl/LC_MESSAGES/djangojs.po +++ b/locale/nl/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -17,14 +17,14 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "" msgstr[1] "" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" diff --git a/locale/pl/LC_MESSAGES/django.po b/locale/pl/LC_MESSAGES/django.po index 221ed2c347..384bfc965d 100644 --- a/locale/pl/LC_MESSAGES/django.po +++ b/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Kataloński" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Niemiecki" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Grecki" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Angielski" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Hiszpański" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Francuski" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Chorwacki" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Węgierski" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Japoński" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Koreański" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Rumuński" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Rosyjski" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Serbski (alfabet łaciński)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Turecki" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Wietnamski" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Chiński Uproszczony" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Chiński Tradycyjny" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "Aktywowano pomyślnie!" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "Rejestracja zakończona" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "Rejestracja niedozwolona" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Strona główna" @@ -144,19 +144,19 @@ msgid "Included contests" msgstr "Załączniki" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problem" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Problemy" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -243,7 +243,7 @@ msgstr[3] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -252,7 +252,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." @@ -261,15 +261,15 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "nazwa użytkownika" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "" @@ -281,9 +281,9 @@ msgstr "" msgid "Summary" msgstr "Podsumowanie" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "użytkownik" @@ -314,8 +314,8 @@ msgid "Taxonomy" msgstr "Taksonomia" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Punkty" @@ -324,9 +324,9 @@ msgstr "Punkty" msgid "Limits" msgstr "Limity" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Język" @@ -377,8 +377,8 @@ msgstr[3] "" msgid "Mark problems as private" msgstr "" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -389,19 +389,19 @@ msgstr "problem" msgid "timezone" msgstr "strefa czasowa" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Użytkownik" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "Adres e-mail" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Strefa czasowa" @@ -422,26 +422,26 @@ msgstr[3] "" msgid "Recalculate scores" msgstr "Przelicz punktację" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Opis" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Informacje" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Możliwości" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Brak" @@ -473,19 +473,19 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s w %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "Nie masz uprawnień, aby edytować tą witrynę." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "" -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." @@ -494,38 +494,38 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Kod problemu" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Nazwa problemu" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Czas" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Pamięć" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -550,6 +550,7 @@ msgid "Comment body" msgstr "Treść komentarza" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "" @@ -663,7 +664,7 @@ msgstr "Nieprawidłowy token uwierzytelniania dwuskładnikowego." msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -679,7 +680,7 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." @@ -688,83 +689,83 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "Pobrać komentarze?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "Każdy sędzia" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Nazwa użytkownika" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Hasło" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "Nieprawidłowa długość kodu." -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "" @@ -787,26 +788,42 @@ msgstr "w {time}" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Zostaw jako LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "Tylko SVG" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "Tylko MathML" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax z konwersją SVG" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "Wykryj najlepszą jakość" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "Jasny" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "Ciemny" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" @@ -988,7 +1005,7 @@ msgstr "opis" msgid "problems" msgstr "problemy" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "czas rozpoczęcia" @@ -1236,213 +1253,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "konkurs" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "konkursy" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "wynik" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "punkty" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "częściowe" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "zgłoszenie" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "ocena" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1919,7 +1936,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2091,7 +2108,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "organizacja" @@ -2132,7 +2149,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2157,26 +2174,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2186,200 +2207,200 @@ msgstr "" msgid "Admin" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2622,15 +2643,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2719,60 +2740,60 @@ msgstr "" msgid "submissions" msgstr "zgłoszenia" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "kod źródłowy" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -2996,7 +3017,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -3021,7 +3042,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -3029,12 +3050,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "" @@ -3043,111 +3064,111 @@ msgstr "" msgid "Contests" msgstr "Konkursy" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3189,63 +3210,63 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3254,7 +3275,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3263,7 +3284,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3272,7 +3293,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3281,83 +3302,83 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3455,17 +3476,17 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3495,11 +3516,11 @@ msgstr "" msgid "Register" msgstr "" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "" @@ -3511,7 +3532,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "" @@ -3542,46 +3563,46 @@ msgstr "" msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3636,99 +3657,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "Logowanie" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3757,13 +3782,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3783,48 +3808,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -4025,15 +4050,15 @@ msgstr "" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4114,7 +4139,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "" @@ -4335,7 +4360,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "" @@ -4343,7 +4368,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4510,19 +4535,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "" @@ -4709,7 +4734,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "" @@ -4745,59 +4770,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4817,86 +4842,86 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." @@ -4905,7 +4930,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" @@ -4914,7 +4939,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4993,13 +5018,13 @@ msgstr "" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" -msgstr "" +msgstr "Limit czasowy:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" -msgstr "" +msgstr "Limit pamięci:" #: templates/problem/problem.html:246 msgid "Problem type" @@ -5038,14 +5063,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "" @@ -5083,8 +5100,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "" @@ -5093,7 +5110,7 @@ msgid "Random" msgstr "" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "" @@ -5105,20 +5122,20 @@ msgstr "Wynik" msgid "Date" msgstr "Data" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" @@ -5127,11 +5144,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5343,7 +5360,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5356,36 +5373,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5427,17 +5444,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5446,7 +5463,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5464,12 +5481,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5567,23 +5584,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5747,23 +5764,23 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" @@ -5771,11 +5788,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5826,129 +5843,133 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Strefa czasowa:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Język:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/pl/LC_MESSAGES/djangojs.po b/locale/pl/LC_MESSAGES/djangojs.po index d5f3374f19..a712563966 100644 --- a/locale/pl/LC_MESSAGES/djangojs.po +++ b/locale/pl/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:52\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -26,7 +26,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "%d dni %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/pt/LC_MESSAGES/django.po b/locale/pt/LC_MESSAGES/django.po index 07cf6c310f..ec41d9624b 100644 --- a/locale/pt/LC_MESSAGES/django.po +++ b/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-21 00:49\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:53\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "" @@ -140,19 +140,19 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -231,29 +231,29 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "" @@ -265,9 +265,9 @@ msgstr "" msgid "Summary" msgstr "" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -298,8 +298,8 @@ msgid "Taxonomy" msgstr "" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" @@ -308,9 +308,9 @@ msgstr "" msgid "Limits" msgstr "" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "" @@ -355,8 +355,8 @@ msgstr[1] "" msgid "Mark problems as private" msgstr "" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -367,19 +367,19 @@ msgstr "" msgid "timezone" msgstr "" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "" @@ -398,26 +398,26 @@ msgstr[1] "" msgid "Recalculate scores" msgstr "" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "" @@ -449,57 +449,57 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "" -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "" -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "" msgstr[1] "" -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -524,6 +524,7 @@ msgid "Comment body" msgstr "" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "" @@ -631,7 +632,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -647,90 +648,90 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "" msgstr[1] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "" @@ -753,26 +754,42 @@ msgstr "" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 -msgid "Leave as LaTeX" +#: judge/models/choices.py:24 +msgid "Follow site theme" msgstr "" #: judge/models/choices.py:60 -msgid "SVG only" +msgid "Leave as LaTeX" msgstr "" #: judge/models/choices.py:61 -msgid "MathML only" +msgid "SVG only" msgstr "" #: judge/models/choices.py:62 -msgid "MathJax with SVG fallback" +msgid "MathML only" msgstr "" #: judge/models/choices.py:63 +msgid "MathJax with SVG fallback" +msgstr "" + +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" @@ -954,7 +971,7 @@ msgstr "" msgid "problems" msgstr "" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "" @@ -1202,213 +1219,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1885,7 +1902,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2057,7 +2074,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "" @@ -2098,7 +2115,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2123,26 +2140,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2152,200 +2173,200 @@ msgstr "" msgid "Admin" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2588,15 +2609,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2685,60 +2706,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -2956,7 +2977,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2981,7 +3002,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -2989,12 +3010,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "" @@ -3003,111 +3024,111 @@ msgstr "" msgid "Contests" msgstr "" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3149,167 +3170,167 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3405,17 +3426,17 @@ msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3445,11 +3466,11 @@ msgstr "" msgid "Register" msgstr "" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "" @@ -3461,7 +3482,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "" @@ -3492,46 +3513,46 @@ msgstr "" msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3586,99 +3607,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3707,13 +3732,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3733,48 +3758,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3975,15 +4000,15 @@ msgstr "" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4064,7 +4089,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "" @@ -4279,7 +4304,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "" @@ -4287,7 +4312,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4452,19 +4477,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "" @@ -4651,7 +4676,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "" @@ -4687,59 +4712,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4757,100 +4782,100 @@ msgid_plural "Authors:" msgstr[0] "" msgstr[1] "" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4927,11 +4952,11 @@ msgstr "" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "" @@ -4968,14 +4993,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "" @@ -5013,8 +5030,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "" @@ -5023,7 +5040,7 @@ msgid "Random" msgstr "" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "" @@ -5035,31 +5052,31 @@ msgstr "" msgid "Date" msgstr "" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5267,7 +5284,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5280,36 +5297,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5351,17 +5368,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5370,7 +5387,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5388,12 +5405,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5491,23 +5508,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5671,33 +5688,33 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5748,129 +5765,133 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/pt/LC_MESSAGES/djangojs.po b/locale/pt/LC_MESSAGES/djangojs.po index 4d849f5f55..194238e1f0 100644 --- a/locale/pt/LC_MESSAGES/djangojs.po +++ b/locale/pt/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:44\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:52\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -17,14 +17,14 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "" msgstr[1] "" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" diff --git a/locale/ro/LC_MESSAGES/django.po b/locale/ro/LC_MESSAGES/django.po index 3bd0ffcb38..c1f47d64d8 100644 --- a/locale/ro/LC_MESSAGES/django.po +++ b/locale/ro/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:53\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Catalană" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Germană" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Greacă" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Engleză" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Spaniolă" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Franceză" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Croată" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Maghiară" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Japoneză" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Coreeană" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "Portugheză Braziliană" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Română" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Rusă" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Sârbă (Latină)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Turcă" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Vietnameză" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Chineză Simplificată" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Chineză Tradițională" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Start" @@ -142,19 +142,19 @@ msgid "Included contests" msgstr "Concursuri incluse" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problemă" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Probleme" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -237,7 +237,7 @@ msgstr[2] "" msgid "Unlock contest submissions" msgstr "Deblochează submisiile către concurs" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -245,7 +245,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." @@ -253,15 +253,15 @@ msgstr[0] "%d participare a fost recalculată." msgstr[1] "%d participări au fost recalculate." msgstr[2] "%d participări au fost recalculate." -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "Recalculează rezultatele" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "nume de utilizator" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "virtual" @@ -273,9 +273,9 @@ msgstr "calea link-ului" msgid "Summary" msgstr "Rezumat" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "utilizator" @@ -306,8 +306,8 @@ msgid "Taxonomy" msgstr "Taxonomie" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Puncte" @@ -316,9 +316,9 @@ msgstr "Puncte" msgid "Limits" msgstr "Limite" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Limbaj" @@ -366,8 +366,8 @@ msgstr[2] "%d probleme marcate ca private cu succes." msgid "Mark problems as private" msgstr "Marchează probleme ca private" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -378,19 +378,19 @@ msgstr "problemă" msgid "timezone" msgstr "fus orar" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Utilizator" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "Email" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Fus orar" @@ -410,26 +410,26 @@ msgstr[2] "%d utilizatorii au scoruri recalculate." msgid "Recalculate scores" msgstr "Recalculați scorurile" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "Regenerează" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Descriere" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Informație" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Capabilități" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Gol" @@ -461,19 +461,19 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s în %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "Nu aveți permisiunea de a rejuriza submisii." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "Nu aveți permisiunea de a rejuriza ATÂT de multe submisii." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "Rejurizează submisiile selectate" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." @@ -481,38 +481,38 @@ msgstr[0] "%d submisie a fost repunctată cu succes." msgstr[1] "%d submisii au fost repunctate cu succes." msgstr[2] "%d submisii au fost repunctate cu succes." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "Repunctează submisiile selectate" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Codul problemei" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Numele problemei" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Ora" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Memorie" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -537,6 +537,7 @@ msgid "Comment body" msgstr "Comentariu" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "" @@ -647,7 +648,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -663,7 +664,7 @@ msgstr "Activează funcționalitățile experimentale" msgid "You must solve at least one problem before you can update your profile." msgstr "Trebuie să rezolvi cel puțin o problemă înainte de a putea să-ți actualizezi profilul." -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." @@ -671,83 +672,83 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "Descarci comentariile?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "Descarci submisiile?" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "Filtrează după rezultat:" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "Orice evaluator" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Nume de utilizator" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Parolă" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Codul problemei trebuie să fie ^[a-z0-9]+$" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "O problemă cu acest cod există deja." -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "Identificatorul de concurs trebuie să fie ^[a-z0-9]+$" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "Un concurs cu această cheie există deja." @@ -770,26 +771,42 @@ msgstr "pe {time}" msgid "Unrated" msgstr "Nu are evaluări" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Lasă ca LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "Doar SVG" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "Doar MathML" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax cu SVG ca fallback" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "Detectează cea mai bună calitate" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "Codul paginii trebuie să fie ^[pcs]:[a-z0-9]+$|^b:\\d+$" @@ -971,7 +988,7 @@ msgstr "descriere" msgid "problems" msgstr "probleme" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "timp de început" @@ -1219,213 +1236,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "Editează concursurile proprii" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "Editează toate concursurile" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "Clonează concursul" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "Evaluează concursurile" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "concurs" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "concursuri" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "scor" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "este descalificat" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "0 înseamnă participare non-virtuală, altfel a n-a participare virtuală." -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "participarea la concurs" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "participările la concurs" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "puncte" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "parțial" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "este pretestată" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "Numărul maxim de submisii pentru această problemă sau lasă necompletat pentru nicio limită." -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "De ce să incluzi o problemă pentru care nu poți trimite rezolvări?" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "problema din concurs" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "problemele din concurs" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "submisie" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "participare" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "Dacă această submisie a fost evaluată doar pe pre-teste." -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "submisie de concurs" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "submisii de concurs" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "rang" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "rating" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "rating brut" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "performanță concurs" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "rating de la concurs" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "ratinguri de la concurs" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1902,7 +1919,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2074,7 +2091,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "organizație" @@ -2115,7 +2132,7 @@ msgstr "membrii" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "clasă" @@ -2140,26 +2157,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "ultimul IP" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2169,200 +2190,200 @@ msgstr "" msgid "Admin" msgstr "Administrare" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "Pe unii utilizatori e preferabil sa nu ȋi auzi." -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "JavaScript definit de utilizator pentru personalizarea site-ului." -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "motor de matematică" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "profil utilizator" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "profiluri utilizatori" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "nume dispozitiv" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "stare" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "Nehotărât" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "Aprobat" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Respins" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "motiv" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "cerere de a se alătura organizației" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "cereri de a se alătura organizației" @@ -2605,15 +2626,15 @@ msgstr "Internal Error (judging server error)" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "timp de execuție" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "consum de memorie" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "puncte acordate" @@ -2702,60 +2723,60 @@ msgstr "" msgid "submissions" msgstr "submisii" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "testul submisiei" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "testele submisiei" @@ -2976,7 +2997,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "Pagina %d din Posturi" @@ -3001,7 +3022,7 @@ msgstr "" msgid "You already voted." msgstr "Ai votat deja." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "Editat de pe site" @@ -3009,12 +3030,12 @@ msgstr "Editat de pe site" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "Niciun concurs de acest fel" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "Niciun concurs găsit cu cheia \"%s\"." @@ -3023,111 +3044,111 @@ msgstr "Niciun concurs găsit cu cheia \"%s\"." msgid "Contests" msgstr "Concursuri" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "Nu am putut găsi un concurs de acest fel." -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "Nu aveți acces la concursul \"%s\"" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "Clonează Concursul" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "Concursul nu este în curs de desfășurare" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "Momentan, \"%s\" nu este în curs de desfășurare." -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "Nu sunteți în concursul \"%s\"." -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "Concursuri în %(month)s" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "F Y" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Participare" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3169,63 +3190,63 @@ msgstr "Nicio organizație găsită cu cheia \"%s\"." msgid "Could not find such organization." msgstr "Nu am putut găsi organizații de acest fel." -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Organizații" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "%s Membri" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "Aderarea la organizație" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "Sunteți deja în organizație." -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "Această organizație nu este deschisă." -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "Părăsire organizație" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "Nu sunteți în \"%s\"." -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "Cerere de adăugare la %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "Detalii despre cererea de adăugare" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "Gestionarea cererilor de asociere cu %s" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3233,7 +3254,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3241,7 +3262,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3249,7 +3270,7 @@ msgstr[0] "Aprobat %d utilizator." msgstr[1] "Aprobat %d utilizatori." msgstr[2] "Aprobat %d utilizatori." -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3257,83 +3278,83 @@ msgstr[0] "Respins %d utilizator." msgstr[1] "Respins %d utilizatori." msgstr[2] "Respins %d utilizatori." -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "Editare %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "Nu puteți edita organizația" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "Nu aveți permisiunea pentru a edita această organizație." -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "Nicio problemă de acest fel" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "Imposibil de găsit probleme cu codul \"%s\"." -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3430,17 +3451,17 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "Cele mai bune soluții pentru %s" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "Cele mai bune soluții pentru %(problem)s în %(contest)s" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3470,11 +3491,11 @@ msgstr "Furnizorul dvs. de e-mail nu este permis datorită istoriei de abuz. Vă msgid "Register" msgstr "Înscrie-te" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "Problemă la autentificare" @@ -3486,7 +3507,7 @@ msgstr "" msgid "Language statistics" msgstr "Statistici ale limbei" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "Stare" @@ -3517,46 +3538,46 @@ msgstr "Soluția problemei %(problem)s de %(user)s" msgid "All submissions" msgstr "Toate soluțiile" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "Toate soluțiile submise de %s" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "Toate soluțiile pentru %s" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "Soluțiile lui %(user)s pentru %(problem)s" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "Soluțiile lui {user} pentru {problem} în {contest}" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3611,99 +3632,103 @@ msgstr "nimeni" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "Niciun astfel de utilizator" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "Porecla de utilizator \"%s\" nu există." -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "Utilizatorul %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "Login" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "j M Y, \\o\\r\\a G:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "Actualizat pe loc" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Editează-ți profilul" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3732,13 +3757,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "Dezactivează" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "Activează" @@ -3758,48 +3783,48 @@ msgstr "" msgid "Edit user" msgstr "Editează utilizator" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "Bună ziua, %(username)s." -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "Log out" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Autentificare" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "sau" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "Înregistrare" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "Acest site funcționează cel mai bine cu JavaScript activat." -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Modifică" @@ -4000,15 +4025,15 @@ msgstr "Scor" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4089,7 +4114,7 @@ msgstr "Calendar" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "Stastici" @@ -4307,7 +4332,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "Utilizatori" @@ -4315,7 +4340,7 @@ msgstr "Utilizatori" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4481,19 +4506,19 @@ msgstr "Dez-descalifică" msgid "Disqualify" msgstr "Descalifică" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "Ești sigur că vrei să descalifici această participare?" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "Ești sigur că vrei să dez-descalifici această participare?" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "Arată organizațiile" @@ -4680,7 +4705,7 @@ msgid "There are no requests to approve." msgstr "Nu aveți cereri de aprobare." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "Ștergeți?" @@ -4716,59 +4741,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "Vezi YAML" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "Verificator" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "Trimiteți!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4787,86 +4812,86 @@ msgstr[0] "Autor:" msgstr[1] "Autori:" msgstr[2] "Autori:" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Categorie" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "Tipuri" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "Filtrează după ID:" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "Reevaluează Totul" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." @@ -4874,7 +4899,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" @@ -4882,7 +4907,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "Reevaluează toate submisiile" @@ -4960,11 +4985,11 @@ msgstr "Puncte:" msgid "(partial)" msgstr "(parțial)" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "Limita de timp:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "Limita de memorie:" @@ -5003,14 +5028,6 @@ msgstr "" msgid "Report an issue" msgstr "Raportează o problemă" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "Limită de Timp:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "Limită de Memorie:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "Căutare probleme" @@ -5048,8 +5065,8 @@ msgstr "Tipuri de probleme" msgid "Point range" msgstr "Interval de puncte" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "Caută" @@ -5058,7 +5075,7 @@ msgid "Random" msgstr "Aleatoriu" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "ID" @@ -5070,20 +5087,20 @@ msgstr "Rezultat" msgid "Date" msgstr "" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "Codul sursă trebuie să conțină cel mult 65536 de caractere." -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "Atenție!" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" @@ -5091,11 +5108,11 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "Nici un judge nu este disponibil pentru această problemă." @@ -5305,7 +5322,7 @@ msgstr "Echipa %(site_name)s" msgid "Password reset on %(site_name)s" msgstr "Parola resetată pe %(site_name)s" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continuă >" @@ -5318,36 +5335,36 @@ msgstr "Înregistrarea este închisă în prezent. Vă rugăm să luați legătu msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "V-ați înregistrat cu succes! Un email a fost trimis la adresa de email oferită pentru a confirma înregistrarea dumneavoastră." -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "alege de pe hartă" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "Înscrie-te!" @@ -5389,17 +5406,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5408,7 +5425,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5426,12 +5443,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5529,23 +5546,23 @@ msgstr "Informații eroare" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "Filtrează după stare..." -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "Filtrează după limbaj..." -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "Filtrează submisiile" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "Total:" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "Ai fost deconectat. Reîmprospătează pagina pentru a afișa ultimele actualizări." @@ -5709,34 +5726,34 @@ msgstr "Redeschise: " msgid "Closed: " msgstr "Închise: " -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "Titlu" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5787,131 +5804,135 @@ msgstr "" msgid "Nothing here." msgstr "Nimic aici." -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "Rang" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "Se generează..." -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "Șterge" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "Ești sigur că vrei să ștergi token-ul tău de API?" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "Generează" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "Ești sigur că vrei să ștergi această cheie de securitate?" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "Auto-descriere:" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "Selectează cel mai apropiat oraș major" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Fus orar:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Limbaj:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "Temă editor:" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "Motor de matematică:" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "Schimbați avatarul" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "Schimbați parola" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" +msgstr "Token API:" + +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" +msgstr "Ascuns" + +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "Autentificarea în doi pași este activată:" -#: templates/user/edit-profile.html:360 +#: templates/user/edit-profile.html:377 msgid "Refresh" msgstr "Reîmprospătează" -#: templates/user/edit-profile.html:363 +#: templates/user/edit-profile.html:380 msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" -msgstr "Ascuns" - -#: templates/user/edit-profile.html:377 +#: templates/user/edit-profile.html:394 msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:402 msgid "Two-factor Authentication is disabled:" msgstr "Autentificarea în doi pași este dezactivată:" -#: templates/user/edit-profile.html:393 -msgid "API token:" -msgstr "Token API:" - #: templates/user/edit-profile.html:410 msgid "Security keys:" msgstr "Chei de securitate:" diff --git a/locale/ro/LC_MESSAGES/djangojs.po b/locale/ro/LC_MESSAGES/djangojs.po index 074c707a99..695c27bb28 100644 --- a/locale/ro/LC_MESSAGES/djangojs.po +++ b/locale/ro/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:44\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:52\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -25,7 +25,7 @@ msgstr[0] "%d zi %h:%m:%s" msgstr[1] "%d zi %h:%m:%s" msgstr[2] "%d zile %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/ru/LC_MESSAGES/django.po b/locale/ru/LC_MESSAGES/django.po index 91ab1a7aaa..bb826ebbab 100644 --- a/locale/ru/LC_MESSAGES/django.po +++ b/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:53\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Каталанский" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Немецкий" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Греческий" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Английский" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Испанский" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Французский" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Хорватский" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Венгерский" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Японский" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Корейский" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "Бразильский португальский" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Румынский" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Русский" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Сербский (латиница)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Турецкий" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Вьетнамский" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Упрощенный китайский" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Традиционный китайский" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" -msgstr "" +msgstr "Активация прошла успешно!" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" -msgstr "" +msgstr "Регистрация завершена" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" -msgstr "" +msgstr "Регистрация запрещена" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Главная" @@ -144,24 +144,24 @@ msgid "Included contests" msgstr "Включены конкурсы" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Проблема" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Задачи" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 msgid "Rejudge" -msgstr "" +msgstr "Перетестирование" #: judge/admin/contest.py:122 msgid "Settings" @@ -195,8 +195,8 @@ msgstr "Судья" #, python-format msgid "%d contest successfully marked as visible." msgid_plural "%d contests successfully marked as visible." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d соревнование успешно помечено как видимое." +msgstr[1] "%d соревнований успешно помечены как скрытые." msgstr[2] "" msgstr[3] "" @@ -243,7 +243,7 @@ msgstr[3] "%d соревнования успешно разблокирован msgid "Unlock contest submissions" msgstr "Разблокировать решения соревнования" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -252,24 +252,24 @@ msgstr[1] "%d решений было успешно запланировано msgstr[2] "%d решений было успешно запланировано для повторного тестирования." msgstr[3] "%d решения были успешно запланированы для повторного тестирования." -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d участие в соревновании пересчитано" +msgstr[1] "%d участий в соревнованиях пересчитано" msgstr[2] "" msgstr[3] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "Пересчитать результаты" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "имя пользователя" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "виртуальный" @@ -281,9 +281,9 @@ msgstr "адресс ссылки" msgid "Summary" msgstr "Сводка" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "пользователь" @@ -299,7 +299,7 @@ msgstr "Посмотреть на сайте" #: judge/admin/problem.py:21 msgid "Edit reason" -msgstr "" +msgstr "Причина изменения" #: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" @@ -314,8 +314,8 @@ msgid "Taxonomy" msgstr "Таксономия" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Очки" @@ -324,9 +324,9 @@ msgstr "Очки" msgid "Limits" msgstr "Ограничения" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Язык" @@ -377,8 +377,8 @@ msgstr[3] "%d задачи успешно сделаны приватными." msgid "Mark problems as private" msgstr "Пометить задачу как приватную" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -389,19 +389,19 @@ msgstr "задача" msgid "timezone" msgstr "часовой пояс" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Пользователь" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "Эл. почта" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Часовой пояс" @@ -422,26 +422,26 @@ msgstr[3] "У %d пользователей пересчитали баллы." msgid "Recalculate scores" msgstr "Пересчитать баллы" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" -msgstr "" +msgstr "Сгенерировать новый" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Описание" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Информация" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Возможности" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Не указано" @@ -473,19 +473,19 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s в %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "У вас нет доступа перетестировать поссылки." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "У вас нет доступа перетестировать ТАК много посылок." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "Перетестировать выбранные посылки" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." @@ -494,38 +494,38 @@ msgstr[1] "%d решений были переоценены." msgstr[2] "%d решения были переоценены." msgstr[3] "%d решения были переоценены." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "Пересчитать выбранные решения" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Исходный код" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Название задачи" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Время" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Память" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -550,6 +550,7 @@ msgid "Comment body" msgstr "Содержание комментария" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "Твоя роль-молчание, маленькая жаба." @@ -663,7 +664,7 @@ msgstr "Недействительный двухфакторный код ау msgid "Scratch codes must be 16 Base32 characters." msgstr "Коды Scratch должны содержать 16 символов Base32." -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "Неверный scratch-код." @@ -679,7 +680,7 @@ msgstr "Включить экспериментальные возможност msgid "You must solve at least one problem before you can update your profile." msgstr "Вы должны решить хотя бы одну проблему, прежде чем вы сможете обновить свой профиль." -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." @@ -688,83 +689,83 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "Загрузить комментарии?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "Загрузить решения?" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "Фильтр по коду задач:" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "Оставьте пустым, чтобы включить все сданные решения" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "Фильтр по результату:" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "Пожалуйста, выберите хотя бы одну вещь для загрузки." -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "Любой судья" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Имя пользователя" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Пароль" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "Неверная длина кода." -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "Недействительный WebAuthn ответ." -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "Неверный идентификатор учетных данных WebAuthn." -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "Неверный токен двухфакторной аутентификации или scratch-код." -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "Необходимо указать totp_token или webauthn_response." -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Код задачи должен быть ^[a-z0-9]+$" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "Задача с кодом уже существует." -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "Идентификатор соревнования должен быть ^[a-z0-9]+$" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "Соревнование с ключом уже существует." @@ -787,26 +788,42 @@ msgstr "" msgid "Unrated" msgstr "Не в рейтинге" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Оставить LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "Только SVG" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "Только MathML" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax с резервным вариантом SVG" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "Определить лучшее качество" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "Светлая" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "Тёмная" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "Код страницы должен быть ^[pcs]:[a-z0-9]+$|^b:\\d+$" @@ -988,7 +1005,7 @@ msgstr "описание" msgid "problems" msgstr "задачи" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "время начала" @@ -1236,213 +1253,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "соревнование" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "соревнования" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "участие в соревновании" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "очки" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "частичный" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "порядок" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "посылка" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "участие" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "ранг" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "рейтинг" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1919,7 +1936,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2091,7 +2108,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "" @@ -2132,7 +2149,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2157,26 +2174,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2186,200 +2207,200 @@ msgstr "" msgid "Admin" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2622,15 +2643,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2719,60 +2740,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -2996,7 +3017,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -3021,7 +3042,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -3029,12 +3050,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "" @@ -3043,111 +3064,111 @@ msgstr "" msgid "Contests" msgstr "" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "Онлайн" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3189,63 +3210,63 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3254,7 +3275,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3263,7 +3284,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3272,7 +3293,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3281,83 +3302,83 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3455,17 +3476,17 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3495,11 +3516,11 @@ msgstr "" msgid "Register" msgstr "Зарегистрироваться" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "Ошибка авторизации" @@ -3511,7 +3532,7 @@ msgstr "" msgid "Language statistics" msgstr "Статистика языка" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "Статус" @@ -3542,46 +3563,46 @@ msgstr "" msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3636,99 +3657,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "Пользователь %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "Войти" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3757,13 +3782,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3783,48 +3808,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "Bыйти" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Войти" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Редактировать" @@ -4025,15 +4050,15 @@ msgstr "" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4114,7 +4139,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "Статистика" @@ -4335,7 +4360,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "Пользователи" @@ -4343,7 +4368,7 @@ msgstr "Пользователи" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4510,19 +4535,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "" @@ -4709,7 +4734,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "" @@ -4745,59 +4770,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "Тип" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "Отправить!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "Добавить новый пример" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4817,86 +4842,86 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Категория" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "Типы" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." @@ -4905,7 +4930,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" @@ -4914,7 +4939,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4993,11 +5018,11 @@ msgstr "" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "" @@ -5038,14 +5063,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "Поиск задачи" @@ -5083,8 +5100,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "" @@ -5093,7 +5110,7 @@ msgid "Random" msgstr "Случайная задача" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "ID" @@ -5105,20 +5122,20 @@ msgstr "" msgid "Date" msgstr "" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" @@ -5127,11 +5144,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5343,7 +5360,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Продолжить >" @@ -5356,36 +5373,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "выбрать на карте" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "Уведомлять меня о предстоящих соревнованиях" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "Зарегистрироваться!" @@ -5427,17 +5444,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5446,7 +5463,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5464,12 +5481,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5567,23 +5584,23 @@ msgstr "Сведения об ошибке" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5747,23 +5764,23 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" @@ -5771,11 +5788,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5826,129 +5843,133 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Часовой пояс:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Язык:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/ru/LC_MESSAGES/djangojs.po b/locale/ru/LC_MESSAGES/djangojs.po index 054041da41..6524025199 100644 --- a/locale/ru/LC_MESSAGES/djangojs.po +++ b/locale/ru/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:44\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:52\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -26,7 +26,7 @@ msgstr[1] "%d дней %h:%m:%s" msgstr[2] "%d дней %h:%m:%s" msgstr[3] "%d дней %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/sr_Latn/LC_MESSAGES/django.po b/locale/sr_Latn/LC_MESSAGES/django.po index 0f052cf882..be9bf7f5b2 100644 --- a/locale/sr_Latn/LC_MESSAGES/django.po +++ b/locale/sr_Latn/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:53\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Katalonski" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Nemački" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Grčki" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Engleski" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Španski" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Francuski" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Hrvatski" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Mađarski" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Japanski" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Korejski" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "Brazilski Portugalski" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Rumunski" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Ruski" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Srpski (Latinica)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Turski" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Vijetnamski" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Pojednostavljeni Kineski" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Klasični Kinezki" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Naslovna Strana" @@ -142,19 +142,19 @@ msgid "Included contests" msgstr "Uključena takmičenja" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Zadatak" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Zadaci" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -237,7 +237,7 @@ msgstr[2] "%d Takmičenja uspešno otključana." msgid "Unlock contest submissions" msgstr "Otključaj predaju takmičenja" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -245,7 +245,7 @@ msgstr[0] "%d predaja je uspešno zakazana za ponovno ocenjivanje." msgstr[1] "%d predaje su uspešno zakazane za ponovno ocenjivanje." msgstr[2] "%d predaje su uspešno zakazane za ponovno ocenjivanje." -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." @@ -253,15 +253,15 @@ msgstr[0] "%d učestvovanje preračunato." msgstr[1] "%d učestvovanja preračunata." msgstr[2] "%d učestvovanja preračunata." -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "Preračunati rezultati" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "korisničko ime" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "virtualno" @@ -273,9 +273,9 @@ msgstr "" msgid "Summary" msgstr "Kratak sadržaj" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "korisnik" @@ -306,8 +306,8 @@ msgid "Taxonomy" msgstr "Taksonomija" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Poeni" @@ -316,9 +316,9 @@ msgstr "Poeni" msgid "Limits" msgstr "Granice" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Jezik" @@ -366,8 +366,8 @@ msgstr[2] "%d zadaci su uspešno označeni kao privatni." msgid "Mark problems as private" msgstr "Obeleži zadatak kao privatni" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -378,19 +378,19 @@ msgstr "zadatak" msgid "timezone" msgstr "vremenska zona" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Korisnik" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "Email" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Vremenska zona" @@ -410,26 +410,26 @@ msgstr[2] "%d korisnikovi rezultati su preračunati." msgid "Recalculate scores" msgstr "Preračunaj rezultate" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Opis" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Informacija" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Sposobnosti" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Nijedan" @@ -461,19 +461,19 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s u %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "Nemate prava da ponovo ocenite predaje." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "Nemate prava da ponovo ocenite TOLIKO puno predaja." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "Ponovo oceni izabrane predaje" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." @@ -481,38 +481,38 @@ msgstr[0] "%d predaja je uspešno preračunata." msgstr[1] "%d predaje su uspešno preračunate." msgstr[2] "%d predaje su uspešno preračunate." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "Preračunaj izabrane predaje" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Kod zadatka" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Ime zadatka" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Vreme" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Memorija" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -537,6 +537,7 @@ msgid "Comment body" msgstr "Sastav komentara" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "Trenutno ste ućutkani, skrati jezičinu." @@ -647,7 +648,7 @@ msgstr "Nevažeći token za dvofaktornu autentifikaciju." msgid "Scratch codes must be 16 Base32 characters." msgstr "Scratch kod mora biti 16 Base32 karaktera." -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "Nevažeći scratch kod." @@ -663,7 +664,7 @@ msgstr "Dozvolite eksperimentalne karakteristike" msgid "You must solve at least one problem before you can update your profile." msgstr "Morate rešiti barem jedan zadatak pre nego što možete da ažurirate svoj profil." -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." @@ -671,83 +672,83 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "Download komentare?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "Download rešenja?" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "Filtriraj po glob kodu zadatka:" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "Ostavi prazno da uključiš sva rešenja" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "Filtriraj po rezultatima:" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "Izaberite barem jednu stvar za download." -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "Bilo koji sudija" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Korisničko Ime" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Lozinka" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "Nevažeća dužina koda." -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "Nevažeći WebAuthn odgovor." -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "Nevažeći WebAuthn credential ID." -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "Nevažeći token za dvofaktornu autentifikaciju ili scratch kod." -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Kod zadatka mora biti ^[a-z0-9]+$" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "Zadatak sa tim kodom več postoji." -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "ID takmičenja mora biti ^[a-z0-9]+$" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "Takmičenje sa tim ključem već postoji." @@ -770,26 +771,42 @@ msgstr "na {time}" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Ostavi kao LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "Samo SVG" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "Samo MathML" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax sa SVG alternativom" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "Otkrij najbolji kvalitet" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "Kod stranice mora biti ^[pcs]:[a-z0-9]+$|^b:\\d+$" @@ -971,7 +988,7 @@ msgstr "opis" msgid "problems" msgstr "zadaci" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "vreme početka" @@ -1219,213 +1236,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "Pogledajte privatna takmičenja" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS takmičenje" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "Napravi privatno takmičenje" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "Promeniti vidljivost takmičenja" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "takmičenje" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "takmičenja" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "povezana takmičenja" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "rezultat" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "zbirno vreme" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "diskvalifikovan" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "učesnici takmičenja" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "poeni" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "delimičan" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "več testiran" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "redosled" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "Maksimalan broj odgovora za ovaj zadatak, ili ostaviti prazno da nema ograničenja." -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "Zašto uključiti zadatak koji ne možete predati?" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "zadatak na takmičenju" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "zadaci na takmičenju" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "predaja" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "učestvovanje" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "predaja takmičenja" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "predaje takmičenja" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "rang" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "rangiranje" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1902,7 +1919,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2074,7 +2091,7 @@ msgid "Edit all organizations" msgstr "Edit-uj sve organizacije" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "organizacija" @@ -2115,7 +2132,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2140,26 +2157,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 +msgid "site theme" +msgstr "" + +#: judge/models/profile.py:159 msgid "last access time" msgstr "vreme poslednjeg pristupa" -#: judge/models/profile.py:159 +#: judge/models/profile.py:160 msgid "last IP" msgstr "poslednji IP" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "prikaži rang" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "Običan Korisnik" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "Pisac Zadatka" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2169,200 +2190,200 @@ msgstr "Pisac Zadatka" msgid "Admin" msgstr "Administrator" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "nemi komentar" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "U ćutanju je zlato." -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "Korisnik neće biti rangiran." -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "takmičenje u toku" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "math engine" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "API token" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "interne beleške" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "profil korisnika" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "ime uređaja" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "status" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Odbijeno" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "razlog" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2605,15 +2626,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "" @@ -2702,60 +2723,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "statusna zastava" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -2976,7 +2997,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -3001,7 +3022,7 @@ msgstr "" msgid "You already voted." msgstr "Već ste glasali." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -3009,12 +3030,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "Ne postoji takvo takmičenje" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "Takmičenje sa \"%s\" ključem nije pronađeno." @@ -3023,111 +3044,111 @@ msgstr "Takmičenje sa \"%s\" ključem nije pronađeno." msgid "Contests" msgstr "Takmičenja" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "F Y." -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Učestvovanje" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "Oznaka takmičenja: %s" @@ -3169,63 +3190,63 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Organizacije" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3233,7 +3254,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3241,7 +3262,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3249,7 +3270,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3257,83 +3278,83 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3430,17 +3451,17 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3470,11 +3491,11 @@ msgstr "" msgid "Register" msgstr "" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "" @@ -3486,7 +3507,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "" @@ -3517,46 +3538,46 @@ msgstr "" msgid "All submissions" msgstr "Sva rešenja" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "Sva moja rešenja" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "Sva rešenja od %s" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "Sva rešenja za %s" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "Moja rešenja za %(problem)s" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "%(user)sa rešenja za %(problem)s" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "Moja rešenja u %(contest)s" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3611,99 +3632,103 @@ msgstr "" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "Nevažeće ime" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "Ne postoj takav korisnik" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "j. M Y. \\у H:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "Skini vaše podatke" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3732,13 +3757,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "Uključi" @@ -3758,48 +3783,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "Zdravo, %(username)s." -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "ili" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Edit-uj" @@ -4000,15 +4025,15 @@ msgstr "Rezultat" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4089,7 +4114,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "" @@ -4307,7 +4332,7 @@ msgstr "" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "" @@ -4315,7 +4340,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4481,19 +4506,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "Pokaži organizacije" @@ -4680,7 +4705,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "" @@ -4716,59 +4741,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "Pogledaj YAML" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "Tip" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "Predaj!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4787,86 +4812,86 @@ msgstr[0] "Autor:" msgstr[1] "" msgstr[2] "" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "Popularni zadaci" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Kategorija" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." @@ -4874,7 +4899,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" @@ -4882,7 +4907,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4960,13 +4985,13 @@ msgstr "Poeni:" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" -msgstr "" +msgstr "Vremensko ograničenje:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" -msgstr "" +msgstr "Ograničenje memorije:" #: templates/problem/problem.html:246 msgid "Problem type" @@ -5003,14 +5028,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "Vremensko Ograničenje:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "Ograničenje Memorije:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "" @@ -5048,8 +5065,8 @@ msgstr "Tipovi zadatka" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "Idi" @@ -5058,7 +5075,7 @@ msgid "Random" msgstr "" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "ID" @@ -5070,20 +5087,20 @@ msgstr "Rezultat" msgid "Date" msgstr "Datum" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" @@ -5091,11 +5108,11 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "" @@ -5305,7 +5322,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5318,36 +5335,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5389,17 +5406,17 @@ msgid "Enable Two Factor Authentication" msgstr "Omogući Dvofaktornu Autentifikaciju" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5408,7 +5425,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5426,12 +5443,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5529,23 +5546,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5709,34 +5726,34 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5787,131 +5804,135 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "Rang" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "Samo-opis:" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Vremenska zona:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Jezik:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "Math engine:" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" +msgstr "API token:" + +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" +msgstr "Sakriveno" + +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "Dvofaktorna autentifikacija je uključena:" -#: templates/user/edit-profile.html:360 +#: templates/user/edit-profile.html:377 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:363 +#: templates/user/edit-profile.html:380 msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" -msgstr "Sakriveno" - -#: templates/user/edit-profile.html:377 +#: templates/user/edit-profile.html:394 msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:402 msgid "Two-factor Authentication is disabled:" msgstr "Dvofaktorna autentifikacija je isključena:" -#: templates/user/edit-profile.html:393 -msgid "API token:" -msgstr "API token:" - #: templates/user/edit-profile.html:410 msgid "Security keys:" msgstr "" diff --git a/locale/sr_Latn/LC_MESSAGES/djangojs.po b/locale/sr_Latn/LC_MESSAGES/djangojs.po index 2180270dad..069c01c126 100644 --- a/locale/sr_Latn/LC_MESSAGES/djangojs.po +++ b/locale/sr_Latn/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:44\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:52\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -17,7 +17,7 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -25,7 +25,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" diff --git a/locale/tr/LC_MESSAGES/django.po b/locale/tr/LC_MESSAGES/django.po index c7d4da30bb..ef40f90cca 100644 --- a/locale/tr/LC_MESSAGES/django.po +++ b/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:53\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Katalanca" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Almanca" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Yunanca" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "İngilizce" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "İspanyolca" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Fransızca" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Hırvatça" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Macarca" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Japonca" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Korece" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "Brezilya Portekizcesi" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Rumence" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Rusça" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Sırpça (Latin)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Türkçe" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Vietnamca" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Basitleştirilmiş Çince" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Geleneksel Çince" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Ana sayfa" @@ -140,19 +140,19 @@ msgid "Included contests" msgstr "Yarışmalar" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Problemler" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -231,29 +231,29 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "" msgstr[1] "" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "kullanıcı adı" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "sanal" @@ -265,9 +265,9 @@ msgstr "link ucu" msgid "Summary" msgstr "Özet" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "kullanıcı" @@ -298,8 +298,8 @@ msgid "Taxonomy" msgstr "Tasnif" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Puanlar" @@ -308,9 +308,9 @@ msgstr "Puanlar" msgid "Limits" msgstr "Sınırlar" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Dil" @@ -355,8 +355,8 @@ msgstr[1] "%d problem gizli olarak işaretlendi." msgid "Mark problems as private" msgstr "Problemleri gizle" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -367,19 +367,19 @@ msgstr "" msgid "timezone" msgstr "saat dilimi" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Kullanıcı" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "E-posta" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Saat dilimi" @@ -398,26 +398,26 @@ msgstr[1] "%d kullanıcının puanları yeniden hesaplandı." msgid "Recalculate scores" msgstr "Puanları yeniden hesapla" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Tanım" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Bilgi" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Desteklenenler" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Hiç" @@ -449,57 +449,57 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s - %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "Çözümleri yeniden değerlendirme yetkin yok." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "Bu miktarda çözümü yeniden değerlendirme yetkin yok." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "Seçili çözümleri yeniden değerlendir" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d çözüm yeniden puanlandı." msgstr[1] "%d çözüm yeniden puanlandı." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "Seçili çözümleri yeniden puanla" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Problem anahtarı" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Problem adı" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Zaman" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Bellek" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "" @@ -524,6 +524,7 @@ msgid "Comment body" msgstr "Yorum" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "Senin rolün sessiz, küçük kurbağa." @@ -631,7 +632,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -647,90 +648,90 @@ msgstr "Deneysel özellikleri aç" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "" msgstr[1] "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Kullanıcı Adı" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Şifre" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Problem kodu ^[a-z0-9]+$ olmalıdır" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "Yarışma ID'si ^[a-z0-9]+$ olmalıdır" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "" @@ -753,26 +754,42 @@ msgstr "{time} tarihinde" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "LaTeX olarak bırak" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "Yalnızca SVG" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "Yalnızca MathML" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax, fallback olarak SVG" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "En iyi kaliteyi tespit et" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "Açık" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "Koyu" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" @@ -954,7 +971,7 @@ msgstr "tanım" msgid "problems" msgstr "problemler" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "başlangıç" @@ -1202,213 +1219,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "Özel yarışmaları gör" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "Kendi yarışmalarını düzenle" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "Tüm yarışmaları düzenle" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "Yarışmaları derecelendir" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "Yarışma erişim kodları" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "yarışma" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "yarışmalar" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "ilişkili yarışma" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "puan" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "kümülatif süre" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "sanal katılım ID'si" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "yarışma katılımı" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "yarışma katılımları" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "puan" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "kısmi" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "ön testli" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "sıra" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "Neden çözüm gönderemediğin bir problemi ekleyesin ki?" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "yarışma problemi" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "yarışma problemleri" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "çözüm" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "katılım" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "Bu çözüm yalnızca pretest'lerde mi çalıştı?" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "yarışma çözümü" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "yarışma çözümleri" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "sıralama" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "derece" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "son derecelendirme" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "yarışma derecesi" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "yarışma dereceleri" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1885,7 +1902,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2057,7 +2074,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "organizasyon" @@ -2098,7 +2115,7 @@ msgstr "üyeler" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2123,26 +2140,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 +msgid "site theme" +msgstr "" + +#: judge/models/profile.py:159 msgid "last access time" msgstr "son erişim" -#: judge/models/profile.py:159 +#: judge/models/profile.py:160 msgid "last IP" msgstr "son IP" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "görünen derece" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2152,200 +2173,200 @@ msgstr "" msgid "Admin" msgstr "Yönetici" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "yorum engeli" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "Bazı kullanıcıların sessiz kalması daha iyidir." -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "userscript" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "Site düzenlemesi için kullanıcı tanımlı JavaScript." -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "şu anki yarışma" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "matematik motoru" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "Matematiksel ifadeleri gösteren program." -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "kullanıcı profili" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "kullanıcı profilleri" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "istek zamanı" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "durum" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "Beklemede" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "Onaylandı" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Geri çevrildi" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "sebep" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "organizasyona katılma isteği" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "organizasyona katılma istekleri" @@ -2588,15 +2609,15 @@ msgstr "İç Hata (judge sunucusu hatası)" msgid "submission time" msgstr "çözüm süresi" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "çalışma süresi" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "bellek kullanımı" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "verilen puan" @@ -2685,60 +2706,60 @@ msgstr "" msgid "submissions" msgstr "çözümler" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "ilişkili çözüm gönderisi" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "kaynak kodu" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "test ID" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "durum kodu" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "alınabilecek puan" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "küme #" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "program çıktısı" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "çözüm testi" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "çözüm testleri" @@ -2956,7 +2977,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "Sayfa %d" @@ -2981,7 +3002,7 @@ msgstr "" msgid "You already voted." msgstr "Zaten oy verdin." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "Site aracılığıyla düzenlendi" @@ -2989,12 +3010,12 @@ msgstr "Site aracılığıyla düzenlendi" msgid "Editing comment" msgstr "Yorum düzenleniyor" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "Böyle bir yarışma yok :(" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "\"%s\" anahtarıyla bir yarışma bulunamadı." @@ -3003,111 +3024,111 @@ msgstr "\"%s\" anahtarıyla bir yarışma bulunamadı." msgid "Contests" msgstr "Yarışmalar" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "Yarışma bulunamadı." -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "\"%s\" yarışmasına erişimin yok" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "Yarışma devam etmiyor" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "\"%s\" şu anda devam etmiyor." -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "\"%s\" için erişim kodunu gir" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "\"%s\" yarışmasında değilsin." -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "%(month)s ayındaki yarışmalar" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "%s - Sıralama" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "???" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "\"%(contest)s\" yarışmasına katılımın" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "Canlı" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Katılım" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "Yarışma etiketi: %s" @@ -3149,167 +3170,167 @@ msgstr "\"%s\" anahtarına sahip bir organizasyon bulunamadı." msgid "Could not find such organization." msgstr "Böyle bir organizasyon bulunamadı." -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Organizasyonlar" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "%s üye" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "Organizasyona katılım" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "Bu organizasyonda zaten varsın." -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "Bu organizasyon açık değil." -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "Organizasyondan çık" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "\"%s\" içinde değilsin." -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "%s'ye katılma isteği" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "Katılma isteği detayı" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "%s - Katılım isteklerini yönet" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "%d kullanıcı onaylandı." msgstr[1] "%d kullanıcı onaylandı." -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "%d kullanıcı reddedildi." msgstr[1] "%d kullanıcı reddedildi." -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "%s düzenleniyor" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "Bu organizasyon düzenlenemiyor" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "Bu organizasyonu düzenleme yetkisine sahip değilsin." -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "Üyeleri bu organizasyondan atma yetkisine sahip değilsin." -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "Bu üyeyi atamazsın" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "Atmaya çalıştığın üye bulunamıyor!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "Atmaya çalıştığın üye \"%s\" organizasyonunda değil." -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "Böyle bir problem yok :(" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "\"%s\" anahtarına sahip problem bulunamadı." -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "{0} - Problem analizi" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "Böyle bir problem analizi yok :(" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "" @@ -3405,17 +3426,17 @@ msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "" msgstr[1] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "%s için en iyi çözümler" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "\"%(problem)s\" için en iyi çözümler - %(contest)s" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "Problem %(number)s için en iyi çözümler - %(contest)s" @@ -3445,11 +3466,11 @@ msgstr "E-posta sağlayıcın geçmişte yaşanan suistimallerden dolayı geçer msgid "Register" msgstr "Kaydol" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "Kimlik doğrulama hatası" @@ -3461,7 +3482,7 @@ msgstr "Diğer" msgid "Language statistics" msgstr "Dil istatistikleri" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "Durum" @@ -3492,46 +3513,46 @@ msgstr "%(user)s tarafından %(problem)s için gönderilen çözüm" msgid "All submissions" msgstr "Tüm çözümler" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "Tüm çözümlerim" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "%s'nin tüm çözümleri" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "%s için tüm çözümler" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "%(problem)s için çözümlerim" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "%(user)s tarafından %(problem)s için gönderilen çözümler" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "{user} tarafından {problem} için gönderilen çözüm - {contest}" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "{user} tarafından problem {number} için gönderilen çözüm - {contest}" @@ -3586,99 +3607,103 @@ msgstr "kimse" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "Böyle bir kullanıcı yok :(" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "\"%s\" adında bir kullanıcı yok." -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "Hesabım" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "Kullanıcı %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "Giriş" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "j M Y, G:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "Sitede güncellendi" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Profili düzenle" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Sıralama" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3707,13 +3732,13 @@ msgstr "" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "" @@ -3733,48 +3758,48 @@ msgstr "" msgid "Edit user" msgstr "Kullanıcı düzenle" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "Merhaba, %(username)s." -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "Çıkış yap" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Giriş yap" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "ya da" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "izleniyor" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "Bu sitenin düzgün görüntülenmesi için JavaScript etkin olmalıdır." -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Düzenle" @@ -3975,15 +4000,15 @@ msgstr "Puan" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4064,7 +4089,7 @@ msgstr "Takvim" msgid "Info" msgstr "Hakkında" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "İstatistikler" @@ -4279,7 +4304,7 @@ msgstr "AC Oranı" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "Kullanıcılar" @@ -4287,7 +4312,7 @@ msgstr "Kullanıcılar" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "Problem analizi" @@ -4452,19 +4477,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "Kullanıcı katılımını göster" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "Organizasyonları göster" @@ -4651,7 +4676,7 @@ msgid "There are no requests to approve." msgstr "Onaylanacak istek yok." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "Sil?" @@ -4687,59 +4712,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "YAML'i görüntüle" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "Sütunları göster:" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "Çıktı öneki" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "Çıktı sınırı" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "Generator değişkenleri" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "Tip" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "Girdi dosyası" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "Çıktı dosyası" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "Ön test?" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "Gönder!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "Yeni test ekle" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4757,100 +4782,100 @@ msgid_plural "Authors:" msgstr[0] "Yazar:" msgstr[1] "Yazarlar:" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "Tipe göre filtrele..." -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "Popüler problemler" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Kategori" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "Tipler" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "AC %%" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "" msgstr[1] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4927,11 +4952,11 @@ msgstr "Puan:" msgid "(partial)" msgstr "(kısmi)" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "Zaman sınırı:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "Bellek sınırı:" @@ -4968,14 +4993,6 @@ msgstr "Açıklama talebi" msgid "Report an issue" msgstr "Bir sorun bildir" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "Zaman Sınırı:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "Bellek Sınırı:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "Problem ara" @@ -5013,8 +5030,8 @@ msgstr "Problem tipleri" msgid "Point range" msgstr "Puan aralığı" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "Git" @@ -5023,7 +5040,7 @@ msgid "Random" msgstr "Rastgele" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "" @@ -5035,31 +5052,31 @@ msgstr "Sonuç" msgid "Date" msgstr "Tarih" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "Uyarı!" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "Varsayılan dilin, %(language)s, bu soru için kullanılamıyor." -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "Geriye 0 çözümün kaldı" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "Bu problem için herhangi bir judge mevcut değil." @@ -5267,7 +5284,7 @@ msgstr "%(site_name)s takımı" msgid "Password reset on %(site_name)s" msgstr "%(site_name)s şifre sıfırlaması" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Devam et >" @@ -5280,36 +5297,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "Başarıyla kaydoldun! Girdiğin e-posta adresine kaydını onaylaman için bir e-posta gönderdik." -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "(onaylamak için lütfen tekrar gir)" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "(sana en yakın büyük şehri seç)" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "haritadan seç" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "Varsayılan dil" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "Organizasyon üyelikleri" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "Gelecek yarışmalar hakkında beni bilgilendir" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "Kaydol!" @@ -5351,17 +5368,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5370,7 +5387,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5388,12 +5405,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5491,23 +5508,23 @@ msgstr "Hata bilgisi" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "Duruma göre filtrele..." -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "Dile göre filtrele..." -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "Çözümleri filtrele" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "Bağlantın koptu. Son güncellemeleri görmek için sayfayı yenile." @@ -5671,33 +5688,33 @@ msgstr "Yeniden açıldı: " msgid "Closed: " msgstr "Kapatıldı: " -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "Masaüstü bildirimlerini kullan" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "Sadece benim biletlerimi göster" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "Dolduran kullanıcı" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "Başlık" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "Sorumlular" @@ -5748,129 +5765,133 @@ msgstr "Sorumlu notları" msgid "Nothing here." msgstr "Burada hiçbir şey yok :(" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "Sıralama" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "Kullanıcı adı ile ara..." -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "En yakın büyük şehri seç" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Saat dilimi:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Dil:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "Editör teması:" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "Matematik motoru:" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "Profil fotoğrafı değiştir" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "Şifre değiştir" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:360 -msgid "Refresh" +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:363 -msgid "Scratch codes:" +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" +#: templates/user/edit-profile.html:377 +msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:377 -msgid "If you ever need more scratch codes, you can regenerate them here." +#: templates/user/edit-profile.html:380 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:385 -msgid "Two-factor Authentication is disabled:" +#: templates/user/edit-profile.html:394 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" +#: templates/user/edit-profile.html:402 +msgid "Two-factor Authentication is disabled:" msgstr "" #: templates/user/edit-profile.html:410 diff --git a/locale/tr/LC_MESSAGES/djangojs.po b/locale/tr/LC_MESSAGES/djangojs.po index 9d6c4360bc..90543adfe2 100644 --- a/locale/tr/LC_MESSAGES/djangojs.po +++ b/locale/tr/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:44\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:52\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -17,14 +17,14 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "%d gün, %h:%m:%s" msgstr[1] "%d gün, %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/vi/LC_MESSAGES/django.po b/locale/vi/LC_MESSAGES/django.po index 8e86aa6c22..8048819cb4 100644 --- a/locale/vi/LC_MESSAGES/django.po +++ b/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:53\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "Tiếng Catalan" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "Tiếng Đức" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "Tiếng Hy Lạp" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "Tiếng Anh" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "Tiếng Tây Ban Nha" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "Tiếng Pháp" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "Tiếng Croatia" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "Tiếng Hung-ga-ri" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "Tiếng Nhật Bản" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "Tiếng Hàn Quốc" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "Tiếng Braxin-Bồ Đào Nha" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "Tiếng Romania" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "Tiếng Nga" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "Tiếng Séc-bi (Latin)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "Tiếng Thổ Nhĩ Kỳ" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "Tiếng Việt" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "Tiếng Trung (Giản thể)" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "Tiếng Trung (Phồn thể)" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "Kích hoạt thành công!" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "Đăng ký thành công" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "Không được phép đăng ký" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "Trang chủ" @@ -138,19 +138,19 @@ msgid "Included contests" msgstr "Các cuộc thi" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "Đề bài" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "Đề bài" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -225,27 +225,27 @@ msgstr[0] "Mở khóa %d cuộc thi thành công." msgid "Unlock contest submissions" msgstr "Gỡ khóa nạp bài cho kỳ thi" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "%d bài nộp đã được lên lịch để chấm lại." -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "%d tham gia tính lại." -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "Tính lại kết quả" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "tên người dùng" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "ảo" @@ -257,9 +257,9 @@ msgstr "đường dẫn liên kết" msgid "Summary" msgstr "Tổng hợp" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "thành viên" @@ -290,8 +290,8 @@ msgid "Taxonomy" msgstr "Phân loại" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Điểm" @@ -300,9 +300,9 @@ msgstr "Điểm" msgid "Limits" msgstr "Giới hạn" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "Ngôn ngữ" @@ -344,8 +344,8 @@ msgstr[0] "%d bài tập đã được đánh dấu là cá nhân." msgid "Mark problems as private" msgstr "Ẩn đề bài" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -356,19 +356,19 @@ msgstr "vấn đề" msgid "timezone" msgstr "múi giờ" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "Thành viên" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "Hộp thư" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "Múi giờ" @@ -386,26 +386,26 @@ msgstr[0] "%d người dùng có tính lại điểm." msgid "Recalculate scores" msgstr "Tính lại điểm" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "Tạo lại" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "Mô tả" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "Thông tin" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "Khả năng" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "Không" @@ -437,56 +437,56 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(problem)s trong %(contest)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "Bạn không có quyền chấm lại bài." -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "Bạn không không có quyền chấm lại QUÁ NHIỀU bài nộp." -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "Chấm lại các bài đã chọn" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d bài đã được tính điểm lại." -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "Tính điểm lại các bài đã chọn" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "Mã bài tập" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "Tên bài" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "Thời gian" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "Bộ nhớ" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "Đã khóa" @@ -511,6 +511,7 @@ msgid "Comment body" msgstr "Bình luận" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "Không có phần nói của ngươi, đồ cóc ghẻ." @@ -615,7 +616,7 @@ msgstr "Mã xác thực 2 yếu tố không đúng." msgid "Scratch codes must be 16 Base32 characters." msgstr "Mã dự phòng phải là 16 kí tự hệ 32." -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "Mã dự phòng không hợp lệ." @@ -631,89 +632,89 @@ msgstr "Bật các tính năng đang thử nghiệm" msgid "You must solve at least one problem before you can update your profile." msgstr "Bạn cần phải giải ít nhất một bài trước khi được quyền cập nhật hồ sơ." -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "Bạn không thể là thành viên của nhiều hơn {count} tổ chức công khai." -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "Tải các bình luận về?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "Tải xuống các bài nộp?" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "Sắp xếp theo mã bài tập:" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "Hãy để trống để bao gồm mọi bài nộp" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "Lọc theo kết quả:" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "Vui lòng chọn ít nhất một thứ để tải về." -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "Bất kì máy chấm nào" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "Tên người dùng" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "Mật khẩu" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "Độ dài của bài nộp không hợp lệ." -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "Phản hồi WebAuthn không hợp lệ." -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "Không có xác thực web (WebAuthn) nào được sử dụng." -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "Chứng chỉ xác thực web (WebAuthn) không hợp lệ." -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "Mã xác thực 2 yếu tố hoặc mã dự phòng không hợp lệ." -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "Bắt buộc phải có totp_token hoặc webauthn_response." -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Mã đầu bài chỉ bao gồm ^[a-z0-9]+$" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "Mã bài tập đã tồn tại." -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "Id cuộc thi phải bao gồm ^[a-z0-9]+$" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "Mã kỳ thi đã tồn tại." @@ -736,26 +737,42 @@ msgstr "vào lúc {time}" msgid "Unrated" msgstr "Chưa xếp hạng" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "Giữ nguyên dạng LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "Chỉ dạng SVG" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "Chỉ dạng MathML" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax với SVG dự phòng" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "Phát hiện chất lượng tốt nhất" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "Chọn theo mặc định" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "Sáng" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "Tối" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "Mã trang phải bao gồm ^[pcs]:[a-z0-9]+$|^b:\\d+$" @@ -937,7 +954,7 @@ msgstr "mô tả" msgid "problems" msgstr "đề bài" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "t. gian b. đầu" @@ -1185,213 +1202,213 @@ msgstr "độ chính xác" msgid "Number of digits to round points to." msgstr "Số chữ số sau dấu chấm phẩy để làm tròn." -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "Xem các kỳ thi riêng tư" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "Sửa các kỳ thi sở hữu" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "Sửa tất cả các kỳ thi" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "Nhân bản kỳ thi" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS kỳ thi" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "Đánh gia các kỳ thi" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "Mã truy cập kỳ thi" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "Tạo kỳ thi riêng tư" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "Chỉnh tính công khai của cuộc thi" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "Sửa tiêu đề của bài tập trong kỳ thi" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "Chỉnh trạng thái khóa của cuộc thi" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "cuộc thi" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "cuộc thi" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "cuộc thi liên quan" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "điểm" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "thời gian tích lũy" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "bị loại" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "Có bị hủy tư cách tham gia" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "trường dùng để tie-break" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "mã số tham gia ảo" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "0 nghĩa là không phải đăng ký ảo, ngược lại là lần đăng ký ảo thứ n." -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "định dạng dữ liệu cụ thể của kỳ thi" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "%(user)s đang theo dõi trong %(contest)s" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "%(user)s trong %(contest)s, v%(id)d" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "%(user)s trong %(contest)s" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "tham gia cuộc thi" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "tham gia cuộc thi" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "điểm" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "một phần" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "được test trước" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "thứ tự" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "ghi đè độ dài output prefix" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "gửi tối đa" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "Số lượng tối đa lần nộp cho bài này, hoặc để trống nếu không giới hạn." -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "Tại sao bạn không thể nộp bài cho một bài tập?" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "đề bài của cuộc thi" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "đề bài của cuộc thi" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "nộp bài" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "tham gia" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "Bài nộp này chỉ chỉ chạy trên bài thử." -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "nộp bài thi" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "nộp bài thi" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "hạng" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "đánh giá" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "đáng giá thô" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "hiệu suất của kỳ thi" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "lần xếp hạng cuối" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "xếp hạng cuộc thi" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "xếp hạng cuộc thi" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "kết quả kỳ thi moss" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "kết quả kỳ thi moss" @@ -1808,11 +1825,11 @@ msgstr "lời giải" #: judge/models/problem.py:568 msgid "proposed points" -msgstr "" +msgstr "điểm được đề xuất" #: judge/models/problem.py:569 msgid "The amount of points the voter thinks this problem deserves." -msgstr "" +msgstr "Lượng điểm được vote cho bài này." #: judge/models/problem.py:575 msgid "voter" @@ -1824,7 +1841,7 @@ msgstr "thời gian vote" #: judge/models/problem.py:578 msgid "The time this vote was cast." -msgstr "" +msgstr "Thời điểm vote." #: judge/models/problem.py:580 msgid "note" @@ -1845,7 +1862,7 @@ msgstr "" #: judge/models/problem.py:588 #, python-format msgid "Points vote by %(voter)s for %(problem)s" -msgstr "" +msgstr "Điểm được vote bởi %(voter)s cho %(problem)s" #: judge/models/problem_data.py:23 msgid "Standard" @@ -1868,8 +1885,8 @@ msgid "Non-trailing spaces" msgstr "Dấu cách liền" #: judge/models/problem_data.py:28 -msgid "Unordered" -msgstr "Không sắp xếp" +msgid "Sorted" +msgstr "Đã sắp xếp" #: judge/models/problem_data.py:29 msgid "Byte identical" @@ -1905,11 +1922,11 @@ msgstr "kiểm tra" #: judge/models/problem_data.py:45 msgid "enable unicode" -msgstr "" +msgstr "bật unicode" #: judge/models/problem_data.py:46 msgid "disable bigInteger / bigDecimal" -msgstr "" +msgstr "chặn Số nguyên lớn" #: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" @@ -2040,7 +2057,7 @@ msgid "Edit all organizations" msgstr "Sửa mọi tổ chức" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "tổ chức" @@ -2081,7 +2098,7 @@ msgstr "các thành viên" msgid "%(class)s in %(organization)s" msgstr "%(class)s trong %(organization)s" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "lớp" @@ -2106,26 +2123,30 @@ msgid "Ace theme" msgstr "Chủ đề Ace" #: judge/models/profile.py:158 +msgid "site theme" +msgstr "giao diện" + +#: judge/models/profile.py:159 msgid "last access time" msgstr "lần truy cập cuối cùng" -#: judge/models/profile.py:159 +#: judge/models/profile.py:160 msgid "last IP" msgstr "IP cuối cùng" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "hiển thị xếp hạng" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "Người dùng bình thường" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "Người ra đề" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2135,200 +2156,200 @@ msgstr "Người ra đề" msgid "Admin" msgstr "Quản trị" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "bình luận tắt" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "Một vài người tốt nhất là khi im lặng." -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "thành viên không được liệt kê" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "Thành viên không được xếp hạng." -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "script tự định nghĩa" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "JavaScript tự định nghĩa để tùy chỉnh trang web." -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "cuộc thi hiện tại" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "bộ xử lý toán học" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "Công cụ được sử dụng để render toán học." -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "Xác thực 2 yếu tố TOTP được kích hoạt" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "Đánh dấu để kích hoạt xác thực 2 yếu tố TOTP-based." -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn xác thực 2 yếu tố được kích hoạt" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "Đánh dấu để kích hoạt xác thực 2 yếu tố dựa trên WebAuthn." -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "Mã TOTP" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "Mã 32 ký tự Base32-encoded cho TOTP." -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "Mã TOTP cần rỗng hoặc Base32." -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "mã dự phòng" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "Mảng JSON gồm 16 mã được mã hóa Base32 ký tự cho mã dự phòng." -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "Mã dự phòng phải để trống hoặc là một mảng JSON với 16 kí tự Base32." -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "thời gian mật khẩu dùng một lần (TOTP) cuối cùng" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "Mã API" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "Mã truy cập API được mã hóa hex 64 ký tự." -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "Mã API phải là None hoặc là số ở hệ thập lục phân" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "ghi chú nội bộ" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "Ghi chú cho quản trị viên chấm lại cho thành viên này." -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "thời gian tải dữ liệu cuối cùng" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "hiển thị tên ghi đè" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "Tên hiển thị thay cho tên người dùng." -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "Hiển thị những thứ đang được phát triển" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "Chỉnh sửa cài đặt TOTP" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "hồ sơ người dùng" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "hồ sơ người dùng" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "tên thiết bị" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "thông tin đăng nhập" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "public key" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "sign counter" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "Chứng chỉ WebAuthn: %(name)s" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "Chứng chỉ WebAuthn" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "Nhiều chứng chỉ WebAuthn" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "thời gian yêu cầu" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "trạng thái" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "Đang chờ" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "Phê duyệt" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Bị từ chối" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "lý do" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "yêu cầu tham gia tổ chức" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "yêu cầu tham gia tổ chức" @@ -2571,15 +2592,15 @@ msgstr "Lỗi nội bộ (máy chủ chấm bài lỗi)" msgid "submission time" msgstr "ngày nộp bài" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "thời gian thực hiện tối đa" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "bộ nhớ sử dụng" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "điểm được cho" @@ -2668,60 +2689,60 @@ msgstr "Chỉnh sửa trạng thái khóa của nạp bài" msgid "submissions" msgstr "nộp bài" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "bài nộp liên quan" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "mã nguồn" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "Nguồn %(submission)s" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "nguồn nộp" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "các nguồn nộp" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "mã testcase" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "cờ trạng thái" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "khả năng điểm" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "lô số" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "phản hồi chấm thi" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "phản hồi trình chấm mở rộng" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "lập trình đầu ra" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "test case của bài" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "các test case của bài" @@ -2936,7 +2957,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "Trang %d của bài viết" @@ -2961,7 +2982,7 @@ msgstr "Bạn không thể bình chọn cho bình luận của mình." msgid "You already voted." msgstr "Bạn đã bỏ phiếu rồi." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "Biên tập từ trang web" @@ -2969,12 +2990,12 @@ msgstr "Biên tập từ trang web" msgid "Editing comment" msgstr "Đang chỉnh sửa bình luận" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "Không có cuộc thi như vậy" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "Không thể tìm thấy một cuộc thi với khóa \"%s\"." @@ -2983,111 +3004,111 @@ msgstr "Không thể tìm thấy một cuộc thi với khóa \"%s\"." msgid "Contests" msgstr "Cuộc thi" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "Không thể tìm thấy các cuộc thi như vậy." -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "Truy cập vào cuộc thi \"%s\" từ chối" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "Nhân bản kỳ thi" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "Cuộc thi được nhân bàn từ %s" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "Cuộc thi không đang diễn ra" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "\"%s\" không đang diễn ra." -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "Cấm tham gia" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "Bạn đã được xác định không phải đối tượng tham gia của cuộc thi này. Bạn bị ban vĩnh viễn khỏi cuộc thi này." -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "Không thể vào" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "Bạn không thể tham gia cuộc thi này." -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "Nhập mã đăng nhập cho \"%s\"" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "Bạn đang không tham gia cuộc thi \"%s\"." -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "Cuộc thi tại %(month)s" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "\\t\\há\\n\\g n \\nă\\m Y" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "Thống kê của %s" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "%s xếp hạng" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "???" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "Tham gia của bạn vào %(contest)s" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "Sự tham gia của %(user)s vào %(contest)s" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "Trực tuyến" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Tham gia" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "Kết quả MOSS của %s" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "Đang chạy MOSS cho %s..." -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "Thẻ cuộc thi: %s" @@ -3129,163 +3150,163 @@ msgstr "Không thể tìm thấy một tổ chức với khóa \"%s\"." msgid "Could not find such organization." msgstr "Không thể tìm thấy các tổ chức như vậy." -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Tổ chức" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "%s thành viên" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "Đang tham gia tổ chức" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "Bạn đã trong tổ chức." -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "Tổ chức này không phải là mở." -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "Rời khỏi tổ chức" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "Bạn đang không ở trong \"%s\"." -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "Không thể yêu cầu tham gia %s" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "Bạn đã có một yêu cầu trước đó để tham gia %s." -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "Yêu cầu tham gia %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "Chi tiết yêu cầu tham gia" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "Quản lý các yêu cầu tham gia %s" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "Tổ chức của bạn có thể chỉ nhận được %d thêm các thành viên." -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "Bạn không thể chấp nhận người dùng %d." -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "Chấp nhận %d thành viên." -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "Từ chối %d thành viên." -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "Đang chỉnh sửa %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "Không thể chỉnh sửa tổ chức" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "Bạn không có quyền chỉnh sửa tổ chức này." -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "Bạn không có quyền loại người từ tổ chức này." -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "Không thể loại thành viên" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "Thành viên bạn muốn loại không tồn tại!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "Thành viên mà bạn muốn loại không thuộc tổ chức: %s" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Lớp {name} trong {organization}" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Lớp {name} - {organization}" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "Yêu cầu tham gia {name} trong {organization}" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "Không có vấn đề như vậy" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "Không thể tìm thấy một đề bài với mã \"%s\"." -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "Hướng giải của {0}" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "Không có hướng dẫn" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "Không thể tìm thấy một hướng dẫn với mã \"%s\"." -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "thành công" @@ -3380,17 +3401,17 @@ msgid "Successfully scheduled %d submission for rejudging." msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "Hẹn lịch thành công cho %d nạp bài để chấm lại." -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "Các giải pháp tốt nhất cho %s" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "Các giải pháp tốt nhất cho %(problem)s trong %(contest)s" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "Những lời giải tốt nhất cho bài %(number)s trong cuộc thi %(contest)s" @@ -3420,11 +3441,11 @@ msgstr "Nhà cung cấp email của bạn không được phép do phát tán th msgid "Register" msgstr "Đăng ký" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "Mã kích hoạt không hợp lệ" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "Xác thực không thành công" @@ -3436,7 +3457,7 @@ msgstr "Khác" msgid "Language statistics" msgstr "Thống kê theo ngôn ngữ" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "Trạng thái" @@ -3467,46 +3488,46 @@ msgstr "Nộp %(problem)s bởi %(user)s" msgid "All submissions" msgstr "Tất cả các bài nộp" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "Tất cả những lần nộp bài của tôi" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "Tất cả các bài nộp bởi %s" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "Tất cả các bài nộp cho %s" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "Các bài nộp của tôi cho %(problem)s" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "Bài nộp của %(user)s cho %(problem)s" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "Các bài nộp của tôi trong %(contest)s" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "Các bài nộp của %(user)s trong %(contest)s" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "{user} gửi cho {problem} trong {contest}" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "Bài nộp của {user} cho bài {number} trong {contest}" @@ -3561,99 +3582,103 @@ msgstr "không có ai" msgid "New Ticket Message For: %s" msgstr "Tin nhắn về thẻ mới cho: %s" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "Kích hoạt xác thực 2 yếu tố" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "Đặt lại xác thực 2 yếu tố" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "Vô hiệu hóa xác thực 2 yếu tố" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "Phản hồi WebAuthn không hợp lệ" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "Tên không hợp lệ" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "Staff không thể tắt 2FA" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "Thực hiện xác thực 2 yếu tố" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "Không có thư mục này" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "Không xử lý người dùng \"%s\"." -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "Tài khoản của tôi" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "Người dùng %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "Đăng nhập" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "j \\t\\há\\n\\g n \\nă\\m Y, G:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "Đang chuẩn bị dữ liệu..." -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "Đang tải xuống dữ liệu" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "Cập nhật trên trang web" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Chỉnh sửa tiểu sử" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "Tạo mã API cho người dùng" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "Xóa mã API cho người dùng" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "Tạo mã dự phòng cho người dùng" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Bảng xếp hạng" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "Bạn vừa đăng xuất thành công." -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "Bạn đã gửi quá nhiều yêu cầu đặt lại mật khẩu. Hãy vui lòng thử lại sau." @@ -3682,13 +3707,13 @@ msgstr "Chấm dứt" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "Vô hiệu hóa" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "Kích hoạt" @@ -3708,48 +3733,48 @@ msgstr "" msgid "Edit user" msgstr "Cập nhật người dùng" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "Xin chào, %(username)s." -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "Ngừng mạo danh" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "Đăng xuất" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Đăng nhập" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "hoặc" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "Đăng ký" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "đang theo dõi" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "Trang web này hoạt động tốt nhất với JavaScript được cho phép." -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "dựa trên nền tảng **DMOJ**" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Soạn thảo" @@ -3950,15 +3975,15 @@ msgstr "Điểm" msgid "No votes" msgstr "Không có phiếu bầu" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "Nhấn để sao chép" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "Sao chép" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "Đã sao chép!" @@ -4039,7 +4064,7 @@ msgstr "Lịch" msgid "Info" msgstr "Thông tin" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "Thống kê" @@ -4251,7 +4276,7 @@ msgstr "Tỷ lệ AC" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "Thành viên" @@ -4259,7 +4284,7 @@ msgstr "Thành viên" msgid "Editorials" msgstr "Hướng dẫn giải" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "Hướng dẫn giải" @@ -4423,19 +4448,19 @@ msgstr "Bỏ loại" msgid "Disqualify" msgstr "Loại" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "Liệu bạn có muốn loại bài tham gia này?" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "Liệu bạn có muốn bỏ loại bài tham gia này?" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "Xem thành viên tham gia" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "Hiển thị các tổ chức" @@ -4622,7 +4647,7 @@ msgid "There are no requests to approve." msgstr "Không có yêu cầu để chấp nhận." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "Xoá?" @@ -4658,59 +4683,59 @@ msgstr "Xem trước cập nhật" msgid "Enter a new code for the cloned problem:" msgstr "Nhập mã mới cho bài tập đã nhân bản:" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "Xem YAML" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "Hiển thị các cột:" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "Tiền tố đầu ra" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "Giới hạn đầu ra" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "Kiểm tra" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "Bộ sinh args" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "Kiểu" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "Tập tin đầu vào" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "Tập tin đầu ra" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "Thử sơ bộ?" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "Nộp bài!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "Thêm mới trường hợp" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "Lưu" @@ -4727,98 +4752,98 @@ msgid "Author:" msgid_plural "Authors:" msgstr[0] "Tác giả:" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "Lọc theo loại..." -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "Những bài tập nổi bật" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Nhóm" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "Kiểu" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "AC %%" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "Để trống để không lọc theo ngôn ngữ" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "Để trống để không lọc theo kết quả" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "Cần giá trị hợp lệ cho cả ID bắt đầu và kết thúc." -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "ID kết thúc phải sau ID bắt đầu." -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "Bạn chuẩn bị chấm lại {count} bài nộp. Bạn có chắc bạn muốn làm việc này?" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "Bạn chuẩn bị chấm lại một vài bài nộp. Bạn có chắc bạn muốn làm việc này?" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "Chấm lại bài nộp" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "Lọc theo ID:" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "ID bắt đầu:" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "ID kết thúc:" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "Khoảng này bao gồm cả 2 điểm đầu cuối." -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "Lọc theo ngôn ngữ:" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "Chấm lại các bài đã chọn" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "Tính điểm lại mọi thứ" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "Việc này sẽ chấm lại %(count)s bài nộp." -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "Bạn có chắc chấm lại %(count)s bài nộp?" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "Chấm điểm lại mọi bài nộp" @@ -4894,11 +4919,11 @@ msgstr "Điểm:" msgid "(partial)" msgstr "(một phần)" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "Giới hạn thời gian:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "Giới hạn bộ nhớ:" @@ -4933,14 +4958,6 @@ msgstr "Gửi thắc mắc" msgid "Report an issue" msgstr "Báo cáo vấn đề" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "Giới hạn thời gian:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "Giới hạn bộ nhớ:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "Tìm kiếm bài tập" @@ -4978,8 +4995,8 @@ msgstr "Kiểu bài tập" msgid "Point range" msgstr "Tầm điểm" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "Tìm" @@ -4988,7 +5005,7 @@ msgid "Random" msgstr "Ngẫu nhiên" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "ID" @@ -5000,30 +5017,30 @@ msgstr "Kết quả" msgid "Date" msgstr "Ngày" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "Mã nguồn của bạn chỉ được chứa tối đa 65536 kí tự." -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "Cảnh báo!" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "Ngôn ngữ mặc định của bạn, %(language)s, không có sẵn cho bài tập này đã bị bỏ chọn." -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "Bạn còn %(left)s lần nộp" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "Bạn còn 0 lần nộp" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "Bài tập này hiện không sẵn sàng để chấm." @@ -5229,7 +5246,7 @@ msgstr "Đội ngũ %(site_name)s" msgid "Password reset on %(site_name)s" msgstr "Đặt lại mật khẩu tại %(site_name)s" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Tiếp tục >" @@ -5242,36 +5259,36 @@ msgstr "Việc đăng ký hiện đã đóng. Vui lòng liên hệ với quản msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "Chúc mừng bạn đã đăng ký thành công. Một Email đã được gửi đến cho bạn để xác nhận đăng ký của bạn." -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "(xác nhận mật khẩu)" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "(chọn thành phố gần bạn nhất)" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "chọn từ bản đồ" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "Ngôn ngữ mặc định" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "Tổ chức đại diện" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "Thông báo cho tôi về các cuộc thi sắp tới" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "Đăng ký!" @@ -5313,17 +5330,17 @@ msgid "Enable Two Factor Authentication" msgstr "Kích hoạt xác thực 2 yếu tố" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "Dưới đây là các mã dự phòng sử dụng một lần." #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "Những mã này chỉ có thể được sử dụng một lần và được sử dụng trong trường hợp khẩn cấp." #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "Bạn có thể sử dụng những mã này để đăng nhập vào tài khoản hoặc vô hiệu hóa xác thực 2 yếu tố." @@ -5332,7 +5349,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "Nếu bạn cần thêm mã dự phòng, bạn có thể tạo thêm ở trang sửa thông tin." #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "Hãy ghi lại và giữ chúng ở vị trí an toàn." @@ -5350,12 +5367,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "Nếu bạn đánh mất thiết bị xác minh và không thể sử dụng mã dự phòng, quản trị viên của %(site_name)s sẽ KHÔNG THỂ phục hồi tài khoản. Hãy giữ mã dự phòng an toàn!" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "Trình duyệt của bạn không hỗ trợ WebAuthn." #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "Không thể kết nối với máy chủ." @@ -5453,23 +5470,23 @@ msgstr "Thông tin về lỗi" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "Lọc theo trạng thái..." -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "Lọc theo ngôn ngữ..." -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "Lọc các bài nộp" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "Tổng:" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "Bạn đã bị ngắt kết nối. Tải lại trang để hiển thị thông tin cập nhật mới nhất." @@ -5633,32 +5650,32 @@ msgstr "Đã mở lại: " msgid "Closed: " msgstr "Đã đóng: " -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "Sử dụng thông báo trên màn hình" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "Ẩn các ticket đã đóng" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "Chỉ hiện thẻ của tôi" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "Filing user" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "Người được phân công" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "Tiêu đề" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "Những người được phân công" @@ -5709,131 +5726,135 @@ msgstr "Ghi chú của người được giao" msgid "Nothing here." msgstr "Không có gì ở đây." -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "Xếp hạng" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "Tìm kiếm theo tên..." -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "Bạn có chắc chắn để tạo hoặc tạo lại mã API?" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "Điều này sẽ làm mất hiệu lực của mọi mã thông báo API trước đó." -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "Nó cho phép bạn truy cập tài khoản mà không có xác thực 2 yếu tố." -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "Bạn sẽ không thể xem lại mã API sau khi rời trang này!" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "Đang tạo..." -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "Xóa" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "Bạn có chắc chắn muốn xóa mã API?" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "Tạo" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "Bạn có chắc chắn muốn xóa mã bảo mật này?" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "Mô tả bản thân:" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "Chọn thành phố lớn gần bạn nhất" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "Múi giờ:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "Ngôn ngữ:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "Giao diện:" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "Giao diện khung viết code:" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "Công cụ toán học:" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "Tổ chức đại diện:" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "Đổi ảnh đại diện của bạn" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "Đổi mật khẩu của bạn" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" +msgstr "Mã API:" + +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" +msgstr "Ẩn" + +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "Xác thực 2 yếu tố đã được kích hoạt:" -#: templates/user/edit-profile.html:360 +#: templates/user/edit-profile.html:377 msgid "Refresh" msgstr "Làm mới" -#: templates/user/edit-profile.html:363 +#: templates/user/edit-profile.html:380 msgid "Scratch codes:" msgstr "Mã dự phòng:" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" -msgstr "Ẩn" - -#: templates/user/edit-profile.html:377 +#: templates/user/edit-profile.html:394 msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:402 msgid "Two-factor Authentication is disabled:" msgstr "Xác thực 2 yếu tố đã được vô hiệu hóa:" -#: templates/user/edit-profile.html:393 -msgid "API token:" -msgstr "Mã API:" - #: templates/user/edit-profile.html:410 msgid "Security keys:" msgstr "Khóa bảo mật:" diff --git a/locale/vi/LC_MESSAGES/djangojs.po b/locale/vi/LC_MESSAGES/djangojs.po index a1a3affebc..f5aaa062ce 100644 --- a/locale/vi/LC_MESSAGES/djangojs.po +++ b/locale/vi/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:44\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-02-19 00:53\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -17,39 +17,39 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "%d ngày %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" #: resources/problem-vote.js:11 msgid "Vote on problem points" -msgstr "" +msgstr "Vote điểm điểm cho bài tập" #: resources/problem-vote.js:16 #, javascript-format msgid "Unable to delete vote: %s" -msgstr "" +msgstr "Không thể xoá vote: %s" #: resources/problem-vote.js:28 #, javascript-format msgid "Edit points vote (%s)" -msgstr "" +msgstr "Sửa điểm vote (%s)" #: resources/problem-vote.js:34 #, javascript-format msgid "Unable to cast vote: %s" -msgstr "" +msgstr "Không thể sửa điểm: %s" #: resources/problem-vote.js:63 msgid "Number of votes for this point value" -msgstr "" +msgstr "Số lượng vote cho điểm này" #: resources/user_profile.js:47 msgid "past year" diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po index 6ed83bf773..af887471af 100644 --- a/locale/zh_Hans/LC_MESSAGES/django.po +++ b/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-22 00:52\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "加泰隆语" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "德语" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "希腊语" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "英语" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "西班牙语" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "法语" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "克罗地亚语" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "匈牙利语" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "日语" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "韩语" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "巴西葡萄牙语" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "罗马尼亚语" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "俄语" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "塞尔维亚文(拉丁字母)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "土耳其语" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "越南语" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "简体中文" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "繁体中文" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "激活成功!" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "注册完成" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "不允许注册" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "首页" @@ -138,19 +138,19 @@ msgid "Included contests" msgstr "带标签的竞赛" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "题目" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "题目" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -225,27 +225,27 @@ msgstr[0] "%d个竞赛解锁成功。" msgid "Unlock contest submissions" msgstr "解锁竞赛提交" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "%d个提交被计划重新评分。" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "重新计算了%d个参与。" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "重新计算结果" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "用户名" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "模拟竞赛" @@ -257,9 +257,9 @@ msgstr "链接路径" msgid "Summary" msgstr "概要" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "用户" @@ -290,8 +290,8 @@ msgid "Taxonomy" msgstr "分类" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "分数" @@ -300,9 +300,9 @@ msgstr "分数" msgid "Limits" msgstr "限制" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "语言" @@ -344,8 +344,8 @@ msgstr[0] "%d 个题目已被成功地隐藏。" msgid "Mark problems as private" msgstr "隐藏题目" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -356,19 +356,19 @@ msgstr "题目" msgid "timezone" msgstr "时区" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "用户" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "电子邮箱" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "时区" @@ -386,26 +386,26 @@ msgstr[0] "%d个用户的总分已被重新计算。" msgid "Recalculate scores" msgstr "重新计算总分" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "重新生成" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "描述" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "信息" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "能力" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "无" @@ -437,56 +437,56 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "%(contest)s 中的 %(problem)s" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "您没有为程序重新评分的权利。" -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "您没有为这么多程序重新评分的权利。" -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "重新评分选定的程序" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d个程序提交的分数已被重新计算。" -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "重新计算选定程序的分数" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "题目代码" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "题目名称" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "时间" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "内存" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "已锁定" @@ -511,6 +511,7 @@ msgid "Comment body" msgstr "评论正文" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "你已被静音……" @@ -615,7 +616,7 @@ msgstr "无效的双重验证码。" msgid "Scratch codes must be 16 Base32 characters." msgstr "一次性双重验证码必须是16个32十进制字符。" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "无效的一次性代码。" @@ -631,89 +632,89 @@ msgstr "允许使用实验性功能" msgid "You must solve at least one problem before you can update your profile." msgstr "你必须至少解决一个题目,才能更新你的资料。" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "你不能参与超过{count}个组织。" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "下载评论?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "下载提交?" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "按题目代码glob过滤:" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "留空以包含所有提交" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "以结果过滤:" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "请选择下载至少一个东西。" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "任何裁判服务器" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "用户名" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "密码" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "无效的代码长度。" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "WebAuthn回复无效。" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "未发出WebAuthn质疑。" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "无效的WebAuthn凭据ID。" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "无效的双重验证码或者一次性代码。" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "必须指定 totp_token 或 webauthn_response。" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "题目代码必须匹配 ^[a-z0-9]+$" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "代码已经存在题目。" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "竞赛标识必须匹配 ^[a-z0-9]+$" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "有这个代码的竞赛已经存在。" @@ -736,26 +737,42 @@ msgstr "在{time}" msgid "Unrated" msgstr "未评分" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "显示为LaTeX" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "仅使用SVG" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "仅使用MathML" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "MathJax,自动SVG切换" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "检测最佳质量" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "页代码必须匹配 ^[pcs]:[a-z0-9]+$|^b:\\d+$" @@ -937,7 +954,7 @@ msgstr "描述" msgid "problems" msgstr "题目" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "开始时间" @@ -1185,213 +1202,213 @@ msgstr "精度" msgid "Number of digits to round points to." msgstr "将分数四舍五入到第几位。" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "查看私人竞赛" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "编辑我的竞赛" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "编辑全部竞赛" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "复制竞赛" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS竞赛" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "计算积分的竞赛" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "竞赛访问码" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "创建私人竞赛" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "更改竞赛可见性" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "编辑竞赛题目标签脚本" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "更改竞赛锁定状态" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "竞赛" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "竞赛" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "关联的竞赛" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "得分" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "累积时间" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "已被取消资格" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "此参与是否被取消资格。" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "以这个抢七" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "虚拟参与信息编号" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "0 表示正式参与,否则表示第n次虚拟参与。" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "竞赛格式特有的数据" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "%(user)s 在 %(contest)s 旁观" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "%(user)s 于 %(contest)s 的第%(id)d次虚拟参与" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "竞赛参与信息" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "竞赛参与信息" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "分" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "部分" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "仅通过预测试" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "顺序" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "输出前缀替换" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "提交次数上限" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "此题目的最大提交数量,或留空白而表示无限制。" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "为什么包括一个你不能提交的题目?" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "竞赛题目" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "竞赛题目" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "提交信息" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "参与" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "该程序是否只通过预测试。" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "竞赛提交信息" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "竞赛提交历史" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "排名" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "评分" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "原始评分" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "竞赛表现" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "上次评分" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "竞赛评分信息" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "竞赛评分历史" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "竞赛MOSS结果" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "竞赛MOSS结果" @@ -1868,8 +1885,8 @@ msgid "Non-trailing spaces" msgstr "无尾随空格" #: judge/models/problem_data.py:28 -msgid "Unordered" -msgstr "无序的" +msgid "Sorted" +msgstr "" #: judge/models/problem_data.py:29 msgid "Byte identical" @@ -2040,7 +2057,7 @@ msgid "Edit all organizations" msgstr "编辑所有组织" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "组织" @@ -2081,7 +2098,7 @@ msgstr "成员" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "类" @@ -2106,26 +2123,30 @@ msgid "Ace theme" msgstr "Ace主题" #: judge/models/profile.py:158 +msgid "site theme" +msgstr "" + +#: judge/models/profile.py:159 msgid "last access time" msgstr "上次访问时间" -#: judge/models/profile.py:159 +#: judge/models/profile.py:160 msgid "last IP" msgstr "上次访问 IP" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "显示排名" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "普通用户" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "题目作家" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2135,200 +2156,200 @@ msgstr "题目作家" msgid "Admin" msgstr "管理" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "禁止评论" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "某些用户在沉默时表现最佳。" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "未列出用户" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "用户将不被排名。" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "用户脚本" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "用户自定义 JavaScript。" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "当前竞赛" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "数学引擎" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "数学渲染使用的引擎。" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "TOTP 2FA 已启用" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "打钩以启用TOTP双重验证。" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn 2FA 已启用" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "打钩以启用WebAuthn双重验证。" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "TOTP 密钥" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "TOTP的32字符,32进制密钥。" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "TOTP密钥必须为空或32进制。" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "一次性代码" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "含有16字符的32进制代码的JSON数组。" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "一次性代码必须是空的或者是一个含有32进制代码的JSON数组。" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "API令牌" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "64个字符hex编码的API访问令牌。" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "API 令牌必须是莫或十六进制的" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "内部备注" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "此用户的管理员备注。" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "上次数据下载时间" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "显示名覆盖" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "显示正在开发的内容" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "编辑 TOTP 设置" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "用户信息" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "用户信息" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "设备名称" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "凭据ID" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "公钥" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "签名数量" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "WebAuthn凭据:%(name)s" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "WebAuthn凭据" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "WebAuthn凭据" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "请求时间" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "状态" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "待确认" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "已批准" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "已拒绝" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "理由" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "组织加入请求" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "组织加入请求" @@ -2571,15 +2592,15 @@ msgstr "内部错误 (裁判服务器错误)" msgid "submission time" msgstr "提交时间" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "执行时间" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "内存使用" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "获得分数" @@ -2668,60 +2689,60 @@ msgstr "更改提交锁定状态" msgid "submissions" msgstr "提交历史" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "相关提交" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "源码" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "%(submission)s 的源代码" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "测试编号" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "状态标志" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "满分" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "批号" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "评测反馈" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "延长的裁判反馈" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "程序输出" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "程序测试" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "程序测试" @@ -2936,7 +2957,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "帖子第%d页" @@ -2961,7 +2982,7 @@ msgstr "您不能为自己的评论投票。" msgid "You already voted." msgstr "你已经投了票。" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "从网站中上编辑" @@ -2969,12 +2990,12 @@ msgstr "从网站中上编辑" msgid "Editing comment" msgstr "编辑评论" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "该竞赛不存在" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "找不到标识符为“%s“的竞赛。" @@ -2983,111 +3004,111 @@ msgstr "找不到标识符为“%s“的竞赛。" msgid "Contests" msgstr "竞赛" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "找不到该竞赛。" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "对竞赛”%s“的访问被拒绝" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "复制竞赛" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "从 %s 克隆的竞赛" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "竞赛不在进行" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "“%s“不在进行。" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "禁止加入" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "您在该竞赛不受欢迎。您被永久禁止参加该竞赛。" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "无法输入" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "您不能加入这场竞赛。" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "输入“%s”的访问码" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "你不是在竞赛\"%s\"中。" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "%(month)s的竞赛" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "Y年n月" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "%s 数据" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "%s 排行榜" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "???" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "你在 %(contest)s 中的参与历史" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "%(user)s 在 %(contest)s 中的参与历史" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "实时" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "参与历史" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "%s MOSS 结果" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "正在为 %s 运行 MOSS…" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "竞赛标签:%s" @@ -3129,163 +3150,163 @@ msgstr "找不到标识符为”%s“的组织。" msgid "Could not find such organization." msgstr "找不到该组织。" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "组织" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "%s 成员列表" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "加入组织" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "你已经是该组织的成员。" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "该组织不开放。" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "离开组织" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "你不是是“%s”的成员。" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "无法申请加入 %s" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "你已经有一个待确认的加入 %s 的请求。" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "请求加入 %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "组织加入请求详细信息" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "管理 %s 的加入请求" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "你的组织只能再接受%d个用户。" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "无法接受%d个用户。" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "批准了%d个用户。" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "拒绝了%d个用户。" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "编辑 %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "无法编辑组织" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "您没有编辑该组织的权利。" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "你没有踢组织成员的权利。" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "无法踢用户" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "你想踢的用户不存在!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "你想踢的用户不是组织成员:%s" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "无该题目" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "找不到代码为“%s”的题目。" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "{0} 的题解" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "没有这种题解" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "找不到标识符为“%s”的题解。" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "成功" @@ -3380,17 +3401,17 @@ msgid "Successfully scheduled %d submission for rejudging." msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "成功预定重新评分%d个提交。" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "%s 排行榜" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "竞赛 %(contest)s 中 %(problem)s 排行榜" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "%(contest)s 第%(number)s题的最佳解决方案" @@ -3420,11 +3441,11 @@ msgstr "由于滥用历史,我们不允许您的电子邮件提供商。请使 msgid "Register" msgstr "注册" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "激活Key无效" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "身份验证失败" @@ -3436,7 +3457,7 @@ msgstr "其他" msgid "Language statistics" msgstr "语言统计信息" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "状态" @@ -3467,46 +3488,46 @@ msgstr "%(user)s 在 %(problem)s 的提交结果" msgid "All submissions" msgstr "所有提交历史" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "我提交的程序" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "%s 的提交历史" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "%s 的提交历史" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "我对 %(problem)s 提交的程序" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "%(user)s 在 %(problem)s 的提交历史" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "我在 %(contest)s 的提交" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "%(user)s 在 %(contest)s 的提交历史" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "{contest} 中 {user} 在 {problem} 的提交历史" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "{user} 对 {contest} 第 {number} 题提交的程序" @@ -3561,99 +3582,103 @@ msgstr "没人" msgid "New Ticket Message For: %s" msgstr "%s 的新工单消息" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "启用双因素身份认证" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "刷新两步验证" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "禁用双因素身份认证" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "WebAuthn回复无效" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "名称无效" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "员工不能禁用 2FA" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "执行双因素身份认证" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "无该用户" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "无名为“%s”的用户。" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "我的帐户" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "用户 %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "登录" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "Y年n月j日 G:i" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "正在准备您的数据…" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "下载您的数据" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "在网站上更新" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "编辑个人资料" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "为用户生成 API 令牌" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "为用户清除API令牌" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "为用户生成一次性代码" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "排行榜" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "您已成功注销。" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "您发送了太多密码重置请求。请稍后再试。" @@ -3682,13 +3707,13 @@ msgstr "终止" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "禁用" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "启用" @@ -3708,48 +3733,48 @@ msgstr "" msgid "Edit user" msgstr "编辑用户" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "你好,%(username)s。" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "登出" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "登录" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "或" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "注册" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "旁观中" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "本网站启用 JavaScript 效果最好。" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "编辑" @@ -3950,15 +3975,15 @@ msgstr "得分" msgid "No votes" msgstr "没有投票" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "点击复制" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "复制" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "复制成功!" @@ -4039,7 +4064,7 @@ msgstr "日历" msgid "Info" msgstr "资料和信息" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "统计数据" @@ -4251,7 +4276,7 @@ msgstr "AC率" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "用户" @@ -4259,7 +4284,7 @@ msgstr "用户" msgid "Editorials" msgstr "题目讲解" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "题解" @@ -4423,19 +4448,19 @@ msgstr "取消取消资格" msgid "Disqualify" msgstr "取消资格" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "您确定要取消此参与资格吗?" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "您确定要取消取消此参与资格吗?" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "查看用户参与历史" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "显示组织" @@ -4622,7 +4647,7 @@ msgid "There are no requests to approve." msgstr "没有请求批准。" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "删除?" @@ -4658,59 +4683,59 @@ msgstr "更新预览" msgid "Enter a new code for the cloned problem:" msgstr "输入复制题目的新代码:" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "精度(十进制数)" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "查看 YAML" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "显示列:" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "输出前缀" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "输出限制" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "检查器" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "生成器参数" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "类型" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "输入文件" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "输出文件" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "预测试?" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "提交!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "添加新的用例" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "保存" @@ -4727,98 +4752,98 @@ msgid "Author:" msgid_plural "Authors:" msgstr[0] "作者:" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "根据类型过滤…" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "热门题目" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "分类" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "类型" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "AC%%" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "留空则不按语言过滤" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "留空则不按结果过滤" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "开始和结束ID必须有效。" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "结束ID必须在开始 ID之后。" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "您将重新评分{count}提交,是否确认?" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "您将重新评分一些提交,是否确认?" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "重新评分所有提交" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "通过ID过滤:" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "开始ID:" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "结束ID:" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "这个范围包括两个终点。" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "按语言筛选:" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "重新评分选定的提交" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "全部重新评分" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "这将重新评分%(count)s个提交。" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "您确定您要重新评判%(count)s个提交?" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "重新评分所有提交" @@ -4894,11 +4919,11 @@ msgstr "分数:" msgid "(partial)" msgstr "(部分)" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "时间限制:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "内存限制:" @@ -4933,14 +4958,6 @@ msgstr "提出问题" msgid "Report an issue" msgstr "反馈问题" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "时间限制:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "内存限制:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "题目搜索" @@ -4978,8 +4995,8 @@ msgstr "题目类型" msgid "Point range" msgstr "分数范围" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "搜索" @@ -4988,7 +5005,7 @@ msgid "Random" msgstr "随机" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "ID" @@ -5000,30 +5017,30 @@ msgstr "结果" msgid "Date" msgstr "日期" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "您的程序必须最多包含 65536 个字符。" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "警告!" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "您的默认编程语言,%(language)s,在此题目不可用,且已取消选择。" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "你還可以提交%(left)s次" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "你還可以提交0次" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "此题目没有可用的裁判服务器。" @@ -5229,7 +5246,7 @@ msgstr "%(site_name)s 团队" msgid "Password reset on %(site_name)s" msgstr "在 %(site_name)s 上重置密码" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "继续 >" @@ -5242,36 +5259,36 @@ msgstr "注册目前已关闭。请联系管理员。" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "您已成功注册。一封电子邮件已被发送到的您的电子邮件地址以确认您的注册。" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "(再输一次密码以确定)" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "(选择离您最近的主要城市)" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "从地图中选" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "默认语言" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "关联的组织" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "通过Email发送未来竞赛的通知" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "注册!" @@ -5313,17 +5330,17 @@ msgid "Enable Two Factor Authentication" msgstr "启用两因素认证" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "下面是一个一次性验证码列表。" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "这些代码只能在紧急情况时使用一次。" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5332,7 +5349,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5350,12 +5367,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "你的浏览器不支持 WebAuthn。" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "联系服务器失败。" @@ -5453,23 +5470,23 @@ msgstr "错误信息" msgid "Are you sure you want to rejudge?" msgstr "您确定要重新评测吗?" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "按状态过滤…" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "按语言筛选…" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "提交筛选" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "总计:" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "您处于离线状态。刷新以显示最近的更新。" @@ -5633,32 +5650,32 @@ msgstr "重新打开状态:" msgid "Closed: " msgstr "已关闭:" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "使用桌面通知" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "隐藏已关闭的工单" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "只显示我的工单" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "归档用户" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "处理人" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "标题" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "被分配的人" @@ -5709,131 +5726,135 @@ msgstr "受让人说明" msgid "Nothing here." msgstr "暂无内容!" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "排名" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "用户名搜索…" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "您确定要生成或重新生成您的API令牌吗?" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "这将使任何之前的 API 令牌无效。" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "它还允许不需要双重身份验证而访问您的帐户。" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "离开此页面后,您将无法查看您的API令牌!" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "正在生成…" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "删除" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "您确定要删除您的API令牌吗?" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "生成" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "您确定要删除此安全密钥吗?" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "离开此页面后,您将无法查看您的一次性代码!" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "自我描述:" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "选择离您最近的主要城市" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "时区:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "默认语言:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "编辑器主题:" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "数学引擎:" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "关联的组织:" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "修改头像" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "更改密码" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" +msgstr "API令牌:" + +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" +msgstr "隐藏" + +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "已激活双元素认证:" -#: templates/user/edit-profile.html:360 +#: templates/user/edit-profile.html:377 msgid "Refresh" msgstr "刷新" -#: templates/user/edit-profile.html:363 +#: templates/user/edit-profile.html:380 msgid "Scratch codes:" msgstr "一次性代码:" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" -msgstr "隐藏" - -#: templates/user/edit-profile.html:377 +#: templates/user/edit-profile.html:394 msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:402 msgid "Two-factor Authentication is disabled:" msgstr "已禁用双元素认证:" -#: templates/user/edit-profile.html:393 -msgid "API token:" -msgstr "API令牌:" - #: templates/user/edit-profile.html:410 msgid "Security keys:" msgstr "安全密钥:" diff --git a/locale/zh_Hans/LC_MESSAGES/djangojs.po b/locale/zh_Hans/LC_MESSAGES/djangojs.po index 4db596f2f8..58675a46b0 100644 --- a/locale/zh_Hans/LC_MESSAGES/djangojs.po +++ b/locale/zh_Hans/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2023-01-16 00:50\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -17,13 +17,13 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "%d 天 %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" diff --git a/locale/zh_Hant/LC_MESSAGES/django.po b/locale/zh_Hant/LC_MESSAGES/django.po index 67f515c127..5604a1e088 100644 --- a/locale/zh_Hant/LC_MESSAGES/django.po +++ b/locale/zh_Hant/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-20 23:04+0000\n" -"PO-Revision-Date: 2023-01-21 00:48\n" +"POT-Creation-Date: 2023-02-18 22:47+0000\n" +"PO-Revision-Date: 2023-02-19 00:52\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -17,91 +17,91 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:392 msgid "Catalan" msgstr "加泰隆語" -#: dmoj/settings.py:381 +#: dmoj/settings.py:393 msgid "German" msgstr "德文" -#: dmoj/settings.py:382 +#: dmoj/settings.py:394 msgid "Greek" msgstr "希臘文" -#: dmoj/settings.py:383 +#: dmoj/settings.py:395 msgid "English" msgstr "英文" -#: dmoj/settings.py:384 +#: dmoj/settings.py:396 msgid "Spanish" msgstr "西班牙文" -#: dmoj/settings.py:385 +#: dmoj/settings.py:397 msgid "French" msgstr "法文" -#: dmoj/settings.py:386 +#: dmoj/settings.py:398 msgid "Croatian" msgstr "克羅地亞文" -#: dmoj/settings.py:387 +#: dmoj/settings.py:399 msgid "Hungarian" msgstr "匈牙利文" -#: dmoj/settings.py:388 +#: dmoj/settings.py:400 msgid "Japanese" msgstr "日語" -#: dmoj/settings.py:389 +#: dmoj/settings.py:401 msgid "Korean" msgstr "韓文" -#: dmoj/settings.py:390 +#: dmoj/settings.py:402 msgid "Brazilian Portuguese" msgstr "巴西葡萄牙語" -#: dmoj/settings.py:391 +#: dmoj/settings.py:403 msgid "Romanian" msgstr "羅馬尼亞文" -#: dmoj/settings.py:392 +#: dmoj/settings.py:404 msgid "Russian" msgstr "俄文" -#: dmoj/settings.py:393 +#: dmoj/settings.py:405 msgid "Serbian (Latin)" msgstr "塞爾維亞文(拉丁語系)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:406 msgid "Turkish" msgstr "土耳其文" -#: dmoj/settings.py:395 +#: dmoj/settings.py:407 msgid "Vietnamese" msgstr "越南文" -#: dmoj/settings.py:396 +#: dmoj/settings.py:408 msgid "Simplified Chinese" msgstr "簡體中文" -#: dmoj/settings.py:397 +#: dmoj/settings.py:409 msgid "Traditional Chinese" msgstr "繁体中文" -#: dmoj/urls.py:32 +#: dmoj/urls.py:31 msgid "Activation Successful!" msgstr "啟動成功!" -#: dmoj/urls.py:40 +#: dmoj/urls.py:39 msgid "Registration Completed" msgstr "註冊完成" -#: dmoj/urls.py:44 +#: dmoj/urls.py:43 msgid "Registration Not Allowed" msgstr "不允許註冊" -#: dmoj/urls.py:93 templates/base.html:183 +#: dmoj/urls.py:92 templates/base.html:193 msgid "Home" msgstr "首頁" @@ -138,19 +138,19 @@ msgid "Included contests" msgstr "帶標籤的競賽" #: judge/admin/contest.py:65 templates/contest/contest.html:195 -#: templates/contest/moss.html:41 templates/problem/list.html:197 -#: templates/problem/list.html:213 templates/user/user-problems.html:58 +#: templates/contest/moss.html:41 templates/problem/list.html:188 +#: templates/problem/list.html:204 templates/user/user-problems.html:58 #: templates/user/user-problems.html:102 msgid "Problem" msgstr "題目" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:356 #: templates/contest/contest.html:191 templates/user/user-tabs.html:5 #: templates/user/users-table.html:23 msgid "Problems" msgstr "題目" -#: judge/admin/contest.py:76 judge/admin/submission.py:249 +#: judge/admin/contest.py:76 judge/admin/submission.py:250 #: templates/admin/judge/submission/change_form.html:14 #: templates/admin/judge/submission/change_form.html:17 #: templates/submission/source.html:34 templates/submission/status.html:89 @@ -225,27 +225,27 @@ msgstr[0] "已成功解鎖%d場競賽。" msgid "Unlock contest submissions" msgstr "解鎖競賽提交" -#: judge/admin/contest.py:280 judge/admin/submission.py:175 +#: judge/admin/contest.py:280 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." msgstr[0] "%d筆提交紀錄已被計畫重新評分。" -#: judge/admin/contest.py:356 +#: judge/admin/contest.py:358 #, python-format msgid "%d participation recalculated." msgid_plural "%d participations recalculated." msgstr[0] "%d位選手的分數被重判了。" -#: judge/admin/contest.py:359 +#: judge/admin/contest.py:361 msgid "Recalculate results" msgstr "重新計算結果" -#: judge/admin/contest.py:363 judge/admin/organization.py:113 +#: judge/admin/contest.py:365 judge/admin/organization.py:113 msgid "username" msgstr "使用者名稱" -#: judge/admin/contest.py:368 templates/base.html:249 +#: judge/admin/contest.py:370 templates/base.html:259 msgid "virtual" msgstr "模擬競賽" @@ -257,9 +257,9 @@ msgstr "" msgid "Summary" msgstr "概要" -#: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:331 -#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/admin/interface.py:124 judge/models/contest.py:500 +#: judge/models/contest.py:632 judge/models/profile.py:347 +#: judge/models/profile.py:378 judge/models/submission.py:67 #: judge/models/ticket.py:32 msgid "user" msgstr "使用者" @@ -290,8 +290,8 @@ msgid "Taxonomy" msgstr "分類" #: judge/admin/problem.py:133 templates/contest/contest.html:196 -#: templates/problem/data.html:380 templates/problem/list.html:202 -#: templates/problem/list.html:224 templates/user/base-users-table.html:10 +#: templates/problem/data.html:381 templates/problem/list.html:193 +#: templates/problem/list.html:215 templates/user/base-users-table.html:11 #: templates/user/user-problems.html:60 msgid "Points" msgstr "分數" @@ -300,9 +300,9 @@ msgstr "分數" msgid "Limits" msgstr "限制" -#: judge/admin/problem.py:135 judge/admin/submission.py:243 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 #: templates/problem/submission-diff.html:65 templates/stats/tabs.html:4 -#: templates/submission/list.html:317 +#: templates/submission/list.html:319 msgid "Language" msgstr "語言" @@ -344,8 +344,8 @@ msgstr[0] "" msgid "Mark problems as private" msgstr "把題目應藏" -#: judge/admin/problem.py:276 judge/models/contest.py:583 -#: judge/models/contest.py:608 judge/models/contest.py:648 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 #: judge/models/problem.py:488 judge/models/problem.py:493 #: judge/models/problem.py:516 judge/models/problem.py:576 #: judge/models/problem_data.py:35 judge/models/submission.py:68 @@ -356,19 +356,19 @@ msgstr "題目" msgid "timezone" msgstr "時區" -#: judge/admin/profile.py:98 judge/admin/submission.py:222 +#: judge/admin/profile.py:98 judge/admin/submission.py:223 #: templates/organization/requests/log.html:9 #: templates/organization/requests/pending.html:12 -#: templates/ticket/list.html:201 +#: templates/ticket/list.html:202 msgid "User" msgstr "使用者" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:145 msgid "Email" msgstr "電子郵件" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "Timezone" msgstr "時區" @@ -386,26 +386,26 @@ msgstr[0] "%d個用戶的分數被重判了。" msgid "Recalculate scores" msgstr "" -#: judge/admin/runtime.py:50 templates/user/edit-profile.html:124 -#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 -#: templates/user/edit-profile.html:396 +#: judge/admin/runtime.py:52 templates/user/edit-profile.html:119 +#: templates/user/edit-profile.html:241 templates/user/edit-profile.html:353 +#: templates/user/edit-profile.html:383 msgid "Regenerate" msgstr "" -#: judge/admin/runtime.py:64 +#: judge/admin/runtime.py:66 msgid "Description" msgstr "描述說明" -#: judge/admin/runtime.py:65 +#: judge/admin/runtime.py:67 msgid "Information" msgstr "" -#: judge/admin/runtime.py:66 +#: judge/admin/runtime.py:68 msgid "Capabilities" msgstr "" #: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:233 msgid "None" msgstr "無" @@ -437,56 +437,56 @@ msgctxt "contest problem" msgid "%(problem)s in %(contest)s" msgstr "" -#: judge/admin/submission.py:160 judge/admin/submission.py:182 +#: judge/admin/submission.py:161 judge/admin/submission.py:183 msgid "You do not have the permission to rejudge submissions." msgstr "您沒有對程式重新評分的權限。" -#: judge/admin/submission.py:166 +#: judge/admin/submission.py:167 msgid "You do not have the permission to rejudge THAT many submissions." msgstr "您沒有對這麼多程式重新評分的權限。" -#: judge/admin/submission.py:178 +#: judge/admin/submission.py:179 msgid "Rejudge the selected submissions" msgstr "重新評分選定的程式" -#: judge/admin/submission.py:204 judge/views/problem_manage.py:129 +#: judge/admin/submission.py:205 judge/views/problem_manage.py:129 #, python-format msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d筆提交紀錄已成功重新計分。" -#: judge/admin/submission.py:207 +#: judge/admin/submission.py:208 msgid "Rescore the selected submissions" msgstr "重新計分所選取的提交紀錄" -#: judge/admin/submission.py:211 +#: judge/admin/submission.py:212 msgid "Problem code" msgstr "題目代碼" -#: judge/admin/submission.py:216 +#: judge/admin/submission.py:217 msgid "Problem name" msgstr "題目名稱" -#: judge/admin/submission.py:226 templates/organization/requests/log.html:10 +#: judge/admin/submission.py:227 templates/organization/requests/log.html:10 #: templates/organization/requests/pending.html:13 msgid "Time" msgstr "時間" -#: judge/admin/submission.py:234 +#: judge/admin/submission.py:235 #, python-format msgid "%d KB" msgstr "%d KB" -#: judge/admin/submission.py:236 +#: judge/admin/submission.py:237 #, python-format msgid "%.2f MB" msgstr "%.2f MB" -#: judge/admin/submission.py:238 +#: judge/admin/submission.py:239 msgid "Memory" msgstr "記憶體" -#: judge/admin/submission.py:247 +#: judge/admin/submission.py:248 msgid "Locked" msgstr "已锁定" @@ -511,6 +511,7 @@ msgid "Comment body" msgstr "評論主體" #: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/views/user.py:348 msgid "Your part is silent, little toad." msgstr "" @@ -615,7 +616,7 @@ msgstr "" msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:39 judge/forms.py:265 +#: judge/forms.py:39 judge/forms.py:266 msgid "Invalid scratch code." msgstr "" @@ -631,89 +632,89 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "您必須解開至少一道問題才可以更新您的個人檔案。" -#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 +#: judge/forms.py:80 judge/views/organization.py:174 judge/views/register.py:58 #, python-brace-format msgid "You may not be part of more than {count} public organization." msgid_plural "You may not be part of more than {count} public organizations." msgstr[0] "您不可以同時在多餘{count}的公共組織。" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download comments?" msgstr "下載評論?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Download submissions?" msgstr "下載提交紀錄?" -#: judge/forms.py:100 +#: judge/forms.py:101 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:104 +#: judge/forms.py:105 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:107 templates/problem/manage_submission.html:142 +#: judge/forms.py:108 templates/problem/manage_submission.html:144 msgid "Filter by result:" msgstr "" -#: judge/forms.py:113 +#: judge/forms.py:114 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:139 +#: judge/forms.py:140 msgid "Any judge" msgstr "任何評測伺服器" -#: judge/forms.py:160 judge/views/register.py:25 +#: judge/forms.py:161 judge/views/register.py:25 #: templates/problem/submission-diff.html:63 -#: templates/registration/registration_form.html:143 -#: templates/user/base-users-table.html:5 +#: templates/registration/registration_form.html:139 +#: templates/user/base-users-table.html:6 msgid "Username" msgstr "使用者名稱" -#: judge/forms.py:161 templates/registration/registration_form.html:155 -#: templates/registration/registration_form.html:169 +#: judge/forms.py:162 templates/registration/registration_form.html:151 +#: templates/registration/registration_form.html:165 msgid "Password" msgstr "密碼" -#: judge/forms.py:193 +#: judge/forms.py:194 msgid "Invalid code length." msgstr "" -#: judge/forms.py:224 +#: judge/forms.py:225 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:227 +#: judge/forms.py:228 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:263 +#: judge/forms.py:264 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:267 +#: judge/forms.py:268 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:271 judge/models/problem.py:118 +#: judge/forms.py:272 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:276 +#: judge/forms.py:277 msgid "Problem with code already exists." msgstr "此題目代號已經存在。" -#: judge/forms.py:281 judge/models/contest.py:68 +#: judge/forms.py:282 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:286 +#: judge/forms.py:287 msgid "Contest with key already exists." msgstr "" @@ -736,26 +737,42 @@ msgstr "在{time}" msgid "Unrated" msgstr "" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "" + +#: judge/models/choices.py:60 msgid "Leave as LaTeX" msgstr "以LaTeX顯示" -#: judge/models/choices.py:60 +#: judge/models/choices.py:61 msgid "SVG only" msgstr "" -#: judge/models/choices.py:61 +#: judge/models/choices.py:62 msgid "MathML only" msgstr "" -#: judge/models/choices.py:62 +#: judge/models/choices.py:63 msgid "MathJax with SVG fallback" msgstr "" -#: judge/models/choices.py:63 +#: judge/models/choices.py:64 msgid "Detect best quality" msgstr "" +#: judge/models/choices.py:70 +msgid "Follow system default" +msgstr "" + +#: judge/models/choices.py:71 +msgid "Light" +msgstr "" + +#: judge/models/choices.py:72 +msgid "Dark" +msgstr "" + #: judge/models/comment.py:25 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" @@ -937,7 +954,7 @@ msgstr "" msgid "problems" msgstr "題目" -#: judge/models/contest.py:90 judge/models/contest.py:492 +#: judge/models/contest.py:90 judge/models/contest.py:501 msgid "start time" msgstr "開始時間" @@ -1185,213 +1202,213 @@ msgstr "" msgid "Number of digits to round points to." msgstr "" -#: judge/models/contest.py:470 +#: judge/models/contest.py:479 msgid "See private contests" msgstr "" -#: judge/models/contest.py:471 +#: judge/models/contest.py:480 msgid "Edit own contests" msgstr "" -#: judge/models/contest.py:472 +#: judge/models/contest.py:481 msgid "Edit all contests" msgstr "編輯所有競賽" -#: judge/models/contest.py:473 +#: judge/models/contest.py:482 msgid "Clone contest" msgstr "複製競賽" -#: judge/models/contest.py:474 templates/contest/moss.html:76 +#: judge/models/contest.py:483 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" -#: judge/models/contest.py:475 +#: judge/models/contest.py:484 msgid "Rate contests" msgstr "" -#: judge/models/contest.py:476 +#: judge/models/contest.py:485 msgid "Contest access codes" msgstr "" -#: judge/models/contest.py:477 +#: judge/models/contest.py:486 msgid "Create private contests" msgstr "" -#: judge/models/contest.py:478 +#: judge/models/contest.py:487 msgid "Change contest visibility" msgstr "" -#: judge/models/contest.py:479 +#: judge/models/contest.py:488 msgid "Edit contest problem label script" msgstr "" -#: judge/models/contest.py:480 +#: judge/models/contest.py:489 msgid "Change lock status of contest" msgstr "" -#: judge/models/contest.py:482 judge/models/contest.py:584 -#: judge/models/contest.py:624 judge/models/contest.py:647 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 #: judge/models/submission.py:87 msgid "contest" msgstr "競賽" -#: judge/models/contest.py:483 +#: judge/models/contest.py:492 msgid "contests" msgstr "競賽" -#: judge/models/contest.py:490 +#: judge/models/contest.py:499 msgid "associated contest" msgstr "" -#: judge/models/contest.py:493 +#: judge/models/contest.py:502 msgid "score" msgstr "得分" -#: judge/models/contest.py:494 +#: judge/models/contest.py:503 msgid "cumulative time" msgstr "累計時間" -#: judge/models/contest.py:495 +#: judge/models/contest.py:504 msgid "is disqualified" msgstr "" -#: judge/models/contest.py:496 +#: judge/models/contest.py:505 msgid "Whether this participation is disqualified." msgstr "" -#: judge/models/contest.py:497 +#: judge/models/contest.py:506 msgid "tie-breaking field" msgstr "" -#: judge/models/contest.py:498 +#: judge/models/contest.py:507 msgid "virtual participation id" msgstr "" -#: judge/models/contest.py:499 +#: judge/models/contest.py:508 msgid "0 means non-virtual, otherwise the n-th virtual participation." msgstr "" -#: judge/models/contest.py:500 +#: judge/models/contest.py:509 msgid "contest format specific data" msgstr "" -#: judge/models/contest.py:568 +#: judge/models/contest.py:577 #, python-format msgid "%(user)s spectating in %(contest)s" msgstr "" -#: judge/models/contest.py:570 +#: judge/models/contest.py:579 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" msgstr "" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" msgstr "" -#: judge/models/contest.py:576 +#: judge/models/contest.py:585 msgid "contest participation" msgstr "" -#: judge/models/contest.py:577 +#: judge/models/contest.py:586 msgid "contest participations" msgstr "" -#: judge/models/contest.py:585 judge/models/contest.py:612 +#: judge/models/contest.py:594 judge/models/contest.py:621 #: judge/models/problem.py:147 msgid "points" msgstr "分" -#: judge/models/contest.py:586 +#: judge/models/contest.py:595 msgid "partial" msgstr "部分" -#: judge/models/contest.py:587 judge/models/contest.py:613 +#: judge/models/contest.py:596 judge/models/contest.py:622 msgid "is pretested" msgstr "" -#: judge/models/contest.py:588 judge/models/interface.py:43 +#: judge/models/contest.py:597 judge/models/interface.py:43 msgid "order" msgstr "順序" -#: judge/models/contest.py:589 +#: judge/models/contest.py:598 msgid "output prefix length override" msgstr "" -#: judge/models/contest.py:591 +#: judge/models/contest.py:600 msgid "max submissions" msgstr "" -#: judge/models/contest.py:592 +#: judge/models/contest.py:601 msgid "Maximum number of submissions for this problem, or leave blank for no limit." msgstr "本題最多可以提交的次數,留空表示無限制。" -#: judge/models/contest.py:595 +#: judge/models/contest.py:604 msgid "Why include a problem you can't submit to?" msgstr "" -#: judge/models/contest.py:600 +#: judge/models/contest.py:609 msgid "contest problem" msgstr "" -#: judge/models/contest.py:601 +#: judge/models/contest.py:610 msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:230 +#: judge/models/contest.py:615 judge/models/submission.py:230 msgid "submission" msgstr "提交訊息" -#: judge/models/contest.py:610 judge/models/contest.py:625 +#: judge/models/contest.py:619 judge/models/contest.py:634 msgid "participation" msgstr "" -#: judge/models/contest.py:614 +#: judge/models/contest.py:623 msgid "Whether this submission was ran only on pretests." msgstr "" -#: judge/models/contest.py:618 +#: judge/models/contest.py:627 msgid "contest submission" msgstr "" -#: judge/models/contest.py:619 +#: judge/models/contest.py:628 msgid "contest submissions" msgstr "" -#: judge/models/contest.py:627 +#: judge/models/contest.py:636 msgid "rank" msgstr "排名" -#: judge/models/contest.py:628 +#: judge/models/contest.py:637 msgid "rating" msgstr "評分" -#: judge/models/contest.py:629 +#: judge/models/contest.py:638 msgid "raw rating" msgstr "" -#: judge/models/contest.py:630 +#: judge/models/contest.py:639 msgid "contest performance" msgstr "" -#: judge/models/contest.py:631 +#: judge/models/contest.py:640 msgid "last rated" msgstr "" -#: judge/models/contest.py:635 +#: judge/models/contest.py:644 msgid "contest rating" msgstr "" -#: judge/models/contest.py:636 +#: judge/models/contest.py:645 msgid "contest ratings" msgstr "" -#: judge/models/contest.py:655 +#: judge/models/contest.py:664 msgid "contest moss result" msgstr "" -#: judge/models/contest.py:656 +#: judge/models/contest.py:665 msgid "contest moss results" msgstr "" @@ -1868,7 +1885,7 @@ msgid "Non-trailing spaces" msgstr "" #: judge/models/problem_data.py:28 -msgid "Unordered" +msgid "Sorted" msgstr "" #: judge/models/problem_data.py:29 @@ -2040,7 +2057,7 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:363 +#: judge/models/profile.py:161 judge/models/profile.py:379 msgid "organization" msgstr "組織" @@ -2081,7 +2098,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:387 msgid "class" msgstr "" @@ -2106,26 +2123,30 @@ msgid "Ace theme" msgstr "" #: judge/models/profile.py:158 -msgid "last access time" +msgid "site theme" msgstr "" #: judge/models/profile.py:159 +msgid "last access time" +msgstr "" + +#: judge/models/profile.py:160 msgid "last IP" msgstr "上一訪問 IP" -#: judge/models/profile.py:162 +#: judge/models/profile.py:163 msgid "display rank" msgstr "顯示排名" -#: judge/models/profile.py:164 +#: judge/models/profile.py:165 msgid "Normal User" msgstr "" -#: judge/models/profile.py:165 +#: judge/models/profile.py:166 msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:211 +#: judge/models/profile.py:167 templates/base.html:221 #: templates/comments/list.html:97 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 @@ -2135,200 +2156,200 @@ msgstr "" msgid "Admin" msgstr "管理員" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "comment mute" msgstr "" -#: judge/models/profile.py:167 +#: judge/models/profile.py:168 msgid "Some users are at their best when silent." msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "unlisted user" msgstr "" -#: judge/models/profile.py:169 +#: judge/models/profile.py:170 msgid "User will not be ranked." msgstr "" -#: judge/models/profile.py:172 +#: judge/models/profile.py:173 msgid "banned from voting on problem point values" msgstr "" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." msgstr "" -#: judge/models/profile.py:177 +#: judge/models/profile.py:178 msgid "user script" msgstr "" -#: judge/models/profile.py:178 +#: judge/models/profile.py:179 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:180 msgid "current contest" msgstr "目前競賽" -#: judge/models/profile.py:181 +#: judge/models/profile.py:182 msgid "math engine" msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:184 msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:185 +#: judge/models/profile.py:186 msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:186 +#: judge/models/profile.py:187 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:188 msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:188 +#: judge/models/profile.py:189 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:189 +#: judge/models/profile.py:190 msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:191 +#: judge/models/profile.py:192 msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:193 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:193 +#: judge/models/profile.py:194 msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "含有16字符的32進制代碼的JSON數組。" -#: judge/models/profile.py:197 +#: judge/models/profile.py:198 msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "一次性代碼必須是空的或者是一個含有32進制代碼的JSON數組。" -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" msgstr "API 令牌" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:204 +#: judge/models/profile.py:205 msgid "internal notes" msgstr "" -#: judge/models/profile.py:205 +#: judge/models/profile.py:206 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:206 +#: judge/models/profile.py:207 msgid "last data download time" msgstr "" -#: judge/models/profile.py:207 +#: judge/models/profile.py:208 msgid "display name override" msgstr "" -#: judge/models/profile.py:208 +#: judge/models/profile.py:209 msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:323 +#: judge/models/profile.py:333 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:334 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:336 msgid "user profile" msgstr "使用者個人檔案" -#: judge/models/profile.py:327 +#: judge/models/profile.py:337 msgid "user profiles" msgstr "使用者個人檔案" -#: judge/models/profile.py:333 +#: judge/models/profile.py:349 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:350 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:351 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:352 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:370 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:373 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:374 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:381 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:382 msgid "state" msgstr "狀態" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:383 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "待確認" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:384 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "已批准" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "已拒絕" -#: judge/models/profile.py:372 +#: judge/models/profile.py:388 msgid "reason" msgstr "原因" -#: judge/models/profile.py:381 +#: judge/models/profile.py:397 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:398 msgid "organization join requests" msgstr "" @@ -2571,15 +2592,15 @@ msgstr "" msgid "submission time" msgstr "提交時間" -#: judge/models/submission.py:70 judge/models/submission.py:255 +#: judge/models/submission.py:70 judge/models/submission.py:265 msgid "execution time" msgstr "執行時間" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:266 msgid "memory usage" msgstr "記憶體使用量" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:267 msgid "points granted" msgstr "獲得分數" @@ -2668,60 +2689,60 @@ msgstr "" msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:245 judge/models/submission.py:261 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:247 msgid "source code" msgstr "源碼" -#: judge/models/submission.py:240 +#: judge/models/submission.py:250 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:253 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:254 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:263 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:264 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:268 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:269 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:270 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:271 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:272 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:286 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:287 msgid "submission test cases" msgstr "" @@ -2936,7 +2957,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:36 +#: judge/views/blog.py:37 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2961,7 +2982,7 @@ msgstr "" msgid "You already voted." msgstr "你已經投過票了。" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:134 judge/views/organization.py:382 msgid "Edited from site" msgstr "" @@ -2969,12 +2990,12 @@ msgstr "" msgid "Editing comment" msgstr "" -#: judge/views/contests.py:58 judge/views/contests.py:231 -#: judge/views/contests.py:234 judge/views/contests.py:439 +#: judge/views/contests.py:58 judge/views/contests.py:248 +#: judge/views/contests.py:251 judge/views/contests.py:456 msgid "No such contest" msgstr "" -#: judge/views/contests.py:59 judge/views/contests.py:232 +#: judge/views/contests.py:59 judge/views/contests.py:249 #, python-format msgid "Could not find a contest with the key \"%s\"." msgstr "" @@ -2983,111 +3004,111 @@ msgstr "" msgid "Contests" msgstr "競賽" -#: judge/views/contests.py:235 +#: judge/views/contests.py:252 msgid "Could not find such contest." msgstr "" -#: judge/views/contests.py:238 +#: judge/views/contests.py:255 #, python-format msgid "Access to contest \"%s\" denied" msgstr "" -#: judge/views/contests.py:283 +#: judge/views/contests.py:300 msgid "Clone Contest" msgstr "複製競賽" -#: judge/views/contests.py:317 +#: judge/views/contests.py:334 #, python-format msgid "Cloned contest from %s" msgstr "" -#: judge/views/contests.py:353 +#: judge/views/contests.py:370 msgid "Contest not ongoing" msgstr "" -#: judge/views/contests.py:354 +#: judge/views/contests.py:371 #, python-format msgid "\"%s\" is not currently ongoing." msgstr "" -#: judge/views/contests.py:359 +#: judge/views/contests.py:376 msgid "Banned from joining" msgstr "" -#: judge/views/contests.py:360 +#: judge/views/contests.py:377 msgid "You have been declared persona non grata for this contest. You are permanently barred from joining this contest." msgstr "您在該競賽不受歡迎。您被永久禁止參加該競賽。" -#: judge/views/contests.py:390 +#: judge/views/contests.py:407 msgid "Cannot enter" msgstr "" -#: judge/views/contests.py:391 +#: judge/views/contests.py:408 msgid "You are not able to join this contest." msgstr "" -#: judge/views/contests.py:429 +#: judge/views/contests.py:446 #, python-format msgid "Enter access code for \"%s\"" msgstr "" -#: judge/views/contests.py:440 +#: judge/views/contests.py:457 #, python-format msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:498 +#: judge/views/contests.py:515 msgid "F Y" msgstr "Y年n月" -#: judge/views/contests.py:556 +#: judge/views/contests.py:573 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:730 +#: judge/views/contests.py:747 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:738 +#: judge/views/contests.py:755 msgid "???" msgstr "???" -#: judge/views/contests.py:754 +#: judge/views/contests.py:771 #, python-format msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:772 #, python-format msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:764 +#: judge/views/contests.py:781 msgid "Live" msgstr "實時" -#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:793 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:820 +#: judge/views/contests.py:837 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:847 +#: judge/views/contests.py:864 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:870 +#: judge/views/contests.py:887 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3129,163 +3150,163 @@ msgstr "" msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:96 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "組織" -#: judge/views/organization.py:118 +#: judge/views/organization.py:139 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:142 judge/views/organization.py:145 -#: judge/views/organization.py:150 +#: judge/views/organization.py:165 judge/views/organization.py:168 +#: judge/views/organization.py:173 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:165 msgid "You are already in the organization." msgstr "您已經在此組織中。" -#: judge/views/organization.py:145 +#: judge/views/organization.py:168 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:187 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:214 judge/views/organization.py:474 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:215 judge/views/organization.py:475 #, python-format msgid "You already have a pending request to join %s." msgstr "您已有一個待處理加入 %s 的請求。" -#: judge/views/organization.py:205 +#: judge/views/organization.py:228 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:247 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:286 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:318 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." msgstr[0] "你的組織只能再接受%d個用戶。" -#: judge/views/organization.py:297 +#: judge/views/organization.py:320 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." msgstr[0] "無法接受%d個用戶。" -#: judge/views/organization.py:312 +#: judge/views/organization.py:335 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:336 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:366 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:390 judge/views/organization.py:398 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:391 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:399 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:381 judge/views/organization.py:385 +#: judge/views/organization.py:404 judge/views/organization.py:408 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:405 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:409 #, python-format msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:423 +#: judge/views/organization.py:446 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:452 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:480 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 msgid "No such problem" msgstr "沒有這個題目" -#: judge/views/problem.py:73 +#: judge/views/problem.py:74 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:115 judge/views/problem.py:118 +#: judge/views/problem.py:116 judge/views/problem.py:119 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:140 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:241 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:264 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:267 msgid "success" msgstr "成功" @@ -3380,17 +3401,17 @@ msgid "Successfully scheduled %d submission for rejudging." msgid_plural "Successfully scheduled %d submissions for rejudging." msgstr[0] "" -#: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 +#: judge/views/ranked_submission.py:67 judge/views/ranked_submission.py:70 #, python-format msgid "Best solutions for %s" msgstr "" -#: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 +#: judge/views/ranked_submission.py:84 judge/views/ranked_submission.py:93 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" msgstr "" -#: judge/views/ranked_submission.py:88 judge/views/ranked_submission.py:100 +#: judge/views/ranked_submission.py:87 judge/views/ranked_submission.py:99 #, python-format msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" @@ -3420,11 +3441,11 @@ msgstr "由於濫用歷史,我們不允許您的電子郵件提供商。請使 msgid "Register" msgstr "註冊" -#: judge/views/register.py:103 +#: judge/views/register.py:101 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:114 +#: judge/views/register.py:112 msgid "Authentication failure" msgstr "" @@ -3436,7 +3457,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:308 +#: judge/views/status.py:23 templates/submission/list.html:310 msgid "Status" msgstr "狀態" @@ -3467,46 +3488,46 @@ msgstr "" msgid "All submissions" msgstr "全部的提交紀錄" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:397 judge/views/submission.py:402 msgid "All my submissions" msgstr "我的提交紀錄" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:398 judge/views/submission.py:403 #, python-format msgid "All submissions by %s" msgstr "%s 的提交" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:431 judge/views/submission.py:434 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:495 judge/views/submission.py:502 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:496 judge/views/submission.py:506 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:606 judge/views/submission.py:621 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:607 judge/views/submission.py:625 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:643 judge/views/submission.py:661 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "{contest} 中 {user} 在 {problem} 的提交歷史" -#: judge/views/submission.py:643 judge/views/submission.py:664 +#: judge/views/submission.py:648 judge/views/submission.py:669 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "{user} 對 {contest} 第 {number} 題提交的程序" @@ -3561,99 +3582,103 @@ msgstr "沒人" msgid "New Ticket Message For: %s" msgstr "" -#: judge/views/two_factor.py:49 +#: judge/views/two_factor.py:50 msgid "Enable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:109 +#: judge/views/two_factor.py:110 msgid "Refresh Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:117 +#: judge/views/two_factor.py:118 msgid "Disable Two-factor Authentication" msgstr "" -#: judge/views/two_factor.py:166 +#: judge/views/two_factor.py:167 msgid "Invalid WebAuthn response" msgstr "" -#: judge/views/two_factor.py:169 +#: judge/views/two_factor.py:170 msgid "Invalid name" msgstr "" -#: judge/views/two_factor.py:222 +#: judge/views/two_factor.py:223 msgid "Staff may not disable 2FA" msgstr "" -#: judge/views/two_factor.py:230 +#: judge/views/two_factor.py:231 msgid "Perform Two-factor Authentication" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 msgid "No such user" msgstr "" -#: judge/views/user.py:77 +#: judge/views/user.py:78 #, python-format msgid "No user handle \"%s\"." msgstr "" -#: judge/views/user.py:81 +#: judge/views/user.py:82 msgid "My account" msgstr "我的帳戶" -#: judge/views/user.py:82 +#: judge/views/user.py:83 #, python-format msgid "User %s" msgstr "用戶 %s" -#: judge/views/user.py:129 +#: judge/views/user.py:130 msgid "Login" msgstr "登入" -#: judge/views/user.py:170 +#: judge/views/user.py:171 msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:294 +#: judge/views/user.py:295 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:298 templates/user/edit-profile.html:345 +#: judge/views/user.py:299 templates/user/edit-profile.html:344 msgid "Download your data" msgstr "" -#: judge/views/user.py:354 +#: judge/views/user.py:348 +msgid "Can't edit profile" +msgstr "" + +#: judge/views/user.py:355 msgid "Updated on site" msgstr "" #: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:213 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:223 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:402 +#: judge/views/user.py:401 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:414 +#: judge/views/user.py:413 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:423 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:429 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:491 +#: judge/views/user.py:490 msgid "You have been successfully logged out." msgstr "您已成功登出。" -#: judge/views/user.py:508 +#: judge/views/user.py:507 msgid "You have sent too many password reset requests. Please try again later." msgstr "" @@ -3682,13 +3707,13 @@ msgstr "終止" #: templates/admin/judge/judge/change_form.html:27 #: templates/admin/judge/judge/change_form.html:30 -#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 +#: templates/user/edit-profile.html:372 templates/user/edit-profile.html:375 msgid "Disable" msgstr "禁用" #: templates/admin/judge/judge/change_form.html:33 #: templates/admin/judge/judge/change_form.html:36 -#: templates/user/edit-profile.html:386 +#: templates/user/edit-profile.html:403 msgid "Enable" msgstr "啟用" @@ -3708,48 +3733,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: templates/base.html:206 +#: templates/base.html:216 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:215 +#: templates/base.html:225 msgid "Stop impersonating" msgstr "" -#: templates/base.html:220 +#: templates/base.html:230 msgid "Log out" msgstr "登出" -#: templates/base.html:229 +#: templates/base.html:239 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "登錄" -#: templates/base.html:230 templates/registration/registration_form.html:181 +#: templates/base.html:240 templates/registration/registration_form.html:177 msgid "or" msgstr "或" -#: templates/base.html:231 +#: templates/base.html:241 msgid "Sign up" msgstr "註冊" -#: templates/base.html:243 +#: templates/base.html:253 msgid "spectating" msgstr "" -#: templates/base.html:256 +#: templates/base.html:266 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:283 +#: templates/base.html:293 msgid "proudly powered by **DMOJ**" msgstr "" #: templates/blog/content.html:13 templates/comments/list.html:89 #: templates/comments/list.html:105 templates/contest/contest-tabs.html:23 #: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3 -#: templates/license.html:10 templates/problem/data.html:423 +#: templates/license.html:10 templates/problem/data.html:424 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "編輯" @@ -3950,15 +3975,15 @@ msgstr "得分" msgid "No votes" msgstr "" -#: templates/common-content.html:32 templates/user/edit-profile.html:219 +#: templates/common-content.html:32 templates/user/edit-profile.html:214 msgid "Click to copy" msgstr "" -#: templates/common-content.html:33 templates/user/edit-profile.html:220 +#: templates/common-content.html:33 templates/user/edit-profile.html:215 msgid "Copy" msgstr "" -#: templates/common-content.html:44 templates/user/edit-profile.html:231 +#: templates/common-content.html:44 templates/user/edit-profile.html:226 msgid "Copied!" msgstr "" @@ -4039,7 +4064,7 @@ msgstr "" msgid "Info" msgstr "資訊" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 msgid "Statistics" msgstr "統計資料" @@ -4251,7 +4276,7 @@ msgstr "AC率" #: templates/contest/contest.html:198 templates/contest/list.html:152 #: templates/contest/list.html:194 templates/contest/list.html:271 -#: templates/problem/list.html:203 templates/problem/list.html:235 +#: templates/problem/list.html:194 templates/problem/list.html:226 msgid "Users" msgstr "用戶" @@ -4259,7 +4284,7 @@ msgstr "用戶" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" msgstr "" @@ -4423,19 +4448,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:151 +#: templates/contest/ranking.html:46 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:156 +#: templates/contest/ranking.html:51 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:228 +#: templates/contest/ranking.html:124 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:232 +#: templates/contest/ranking.html:128 msgid "Show organizations" msgstr "" @@ -4622,7 +4647,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:387 +#: templates/problem/data.html:388 msgid "Delete?" msgstr "刪除?" @@ -4658,59 +4683,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:70 +#: templates/problem/data.html:71 msgid "precision (decimal digits)" msgstr "" -#: templates/problem/data.html:339 +#: templates/problem/data.html:340 msgid "View YAML" msgstr "" -#: templates/problem/data.html:355 +#: templates/problem/data.html:356 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:358 templates/problem/data.html:382 +#: templates/problem/data.html:359 templates/problem/data.html:383 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:362 templates/problem/data.html:383 +#: templates/problem/data.html:363 templates/problem/data.html:384 msgid "Output limit" msgstr "" -#: templates/problem/data.html:366 templates/problem/data.html:384 +#: templates/problem/data.html:367 templates/problem/data.html:385 msgid "Checker" msgstr "檢查器" -#: templates/problem/data.html:370 templates/problem/data.html:385 +#: templates/problem/data.html:371 templates/problem/data.html:386 msgid "Generator args" msgstr "" -#: templates/problem/data.html:377 +#: templates/problem/data.html:378 msgid "Type" msgstr "類型" -#: templates/problem/data.html:378 +#: templates/problem/data.html:379 msgid "Input file" msgstr "" -#: templates/problem/data.html:379 +#: templates/problem/data.html:380 msgid "Output file" msgstr "" -#: templates/problem/data.html:381 +#: templates/problem/data.html:382 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:433 templates/problem/submit.html:256 +#: templates/problem/data.html:434 templates/problem/submit.html:190 msgid "Submit!" msgstr "提交!" -#: templates/problem/data.html:434 +#: templates/problem/data.html:435 msgid "Add new case" msgstr "" -#: templates/problem/data.html:436 +#: templates/problem/data.html:437 msgid "Save" msgstr "" @@ -4727,98 +4752,98 @@ msgid "Author:" msgid_plural "Authors:" msgstr[0] "作者:" -#: templates/problem/list.html:58 +#: templates/problem/list.html:49 msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:176 +#: templates/problem/list.html:167 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:198 templates/problem/list.html:216 +#: templates/problem/list.html:189 templates/problem/list.html:207 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "分類" -#: templates/problem/list.html:200 templates/problem/list.html:220 +#: templates/problem/list.html:191 templates/problem/list.html:211 msgid "Types" msgstr "類型" -#: templates/problem/list.html:227 +#: templates/problem/list.html:218 #, python-format msgid "AC %%" msgstr "AC %%" -#: templates/problem/manage_submission.html:55 +#: templates/problem/manage_submission.html:56 msgid "Leave empty to not filter by language" msgstr "" -#: templates/problem/manage_submission.html:60 +#: templates/problem/manage_submission.html:62 msgid "Leave empty to not filter by result" msgstr "" -#: templates/problem/manage_submission.html:79 +#: templates/problem/manage_submission.html:81 msgid "Need valid values for both start and end IDs." msgstr "" -#: templates/problem/manage_submission.html:82 +#: templates/problem/manage_submission.html:84 msgid "End ID must be after start ID." msgstr "" -#: templates/problem/manage_submission.html:90 +#: templates/problem/manage_submission.html:92 #, python-brace-format msgid "You are about to rejudge {count} submissions. Are you sure you want to do this?" msgstr "您將重新評分{count}提交,是否確認?" -#: templates/problem/manage_submission.html:96 +#: templates/problem/manage_submission.html:98 msgid "You are about to rejudge a few submissions. Are you sure you want to do this?" msgstr "您將重新評分一些提交,是否確認?" -#: templates/problem/manage_submission.html:115 +#: templates/problem/manage_submission.html:117 msgid "Rejudge Submissions" msgstr "重新評測提交紀錄" -#: templates/problem/manage_submission.html:120 +#: templates/problem/manage_submission.html:122 msgid "Filter by ID:" msgstr "" -#: templates/problem/manage_submission.html:123 +#: templates/problem/manage_submission.html:125 msgid "Starting ID:" msgstr "" -#: templates/problem/manage_submission.html:127 +#: templates/problem/manage_submission.html:129 msgid "Ending ID:" msgstr "" -#: templates/problem/manage_submission.html:131 +#: templates/problem/manage_submission.html:133 msgid "This range includes both endpoints." msgstr "" -#: templates/problem/manage_submission.html:134 +#: templates/problem/manage_submission.html:136 msgid "Filter by language:" msgstr "" -#: templates/problem/manage_submission.html:150 +#: templates/problem/manage_submission.html:152 msgid "Rejudge selected submissions" msgstr "重新評測選取的提交紀錄" -#: templates/problem/manage_submission.html:157 +#: templates/problem/manage_submission.html:159 msgid "Rescore Everything" msgstr "" -#: templates/problem/manage_submission.html:158 +#: templates/problem/manage_submission.html:160 #, python-format msgid "This will rescore %(count)s submission." msgid_plural "This will rescore %(count)s submissions." msgstr[0] "" -#: templates/problem/manage_submission.html:166 +#: templates/problem/manage_submission.html:168 #, python-format msgid "Are you sure you want to rescore %(count)s submission?" msgid_plural "Are you sure you want to rescore %(count)s submissions?" msgstr[0] "" -#: templates/problem/manage_submission.html:171 +#: templates/problem/manage_submission.html:173 msgid "Rescore all submissions" msgstr "" @@ -4894,11 +4919,11 @@ msgstr "分數:" msgid "(partial)" msgstr "" -#: templates/problem/problem.html:198 +#: templates/problem/problem.html:198 templates/problem/raw.html:61 msgid "Time limit:" msgstr "時間限制:" -#: templates/problem/problem.html:210 +#: templates/problem/problem.html:210 templates/problem/raw.html:70 msgid "Memory limit:" msgstr "記憶體限制:" @@ -4933,14 +4958,6 @@ msgstr "" msgid "Report an issue" msgstr "" -#: templates/problem/raw.html:61 -msgid "Time Limit:" -msgstr "時間限制:" - -#: templates/problem/raw.html:70 -msgid "Memory Limit:" -msgstr "記憶體限制:" - #: templates/problem/search-form.html:2 msgid "Problem search" msgstr "" @@ -4978,8 +4995,8 @@ msgstr "題目類型" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:326 -#: templates/ticket/list.html:188 +#: templates/problem/search-form.html:68 templates/submission/list.html:328 +#: templates/ticket/list.html:189 msgid "Go" msgstr "搜索" @@ -4988,7 +5005,7 @@ msgid "Random" msgstr "隨機" #: templates/problem/submission-diff.html:62 -#: templates/status/language-list.html:34 templates/ticket/list.html:199 +#: templates/status/language-list.html:34 templates/ticket/list.html:200 msgid "ID" msgstr "ID" @@ -5000,30 +5017,30 @@ msgstr "結果" msgid "Date" msgstr "日期" -#: templates/problem/submit.html:117 +#: templates/problem/submit.html:118 msgid "Your source code must contain at most 65536 characters." msgstr "" -#: templates/problem/submit.html:204 +#: templates/problem/submit.html:138 msgid "Warning!" msgstr "警告!" -#: templates/problem/submit.html:205 +#: templates/problem/submit.html:139 #, python-format msgid "Your default language, %(language)s, is unavailable for this problem and has been deselected." msgstr "您的默認編程語言,%(language)s,在此題目不可用,且已取消選擇。" -#: templates/problem/submit.html:213 +#: templates/problem/submit.html:147 #, python-format msgid "You have %(left)s submission left" msgid_plural "You have %(left)s submissions left" msgstr[0] "" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" msgstr "" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "此題目目前沒有可用的評測伺服器。" @@ -5229,7 +5246,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:44 +#: templates/registration/profile_creation.html:38 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "繼續 》" @@ -5242,36 +5259,36 @@ msgstr "" msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." msgstr "您已成功註冊。一封電子郵件已被發送到的您的電子郵件地址以確認您的註冊。" -#: templates/registration/registration_form.html:170 +#: templates/registration/registration_form.html:166 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:177 +#: templates/registration/registration_form.html:173 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:182 +#: templates/registration/registration_form.html:178 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:187 +#: templates/registration/registration_form.html:183 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:190 +#: templates/registration/registration_form.html:186 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:199 -#: templates/user/edit-profile.html:322 +#: templates/registration/registration_form.html:195 +#: templates/user/edit-profile.html:321 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:213 +#: templates/registration/registration_form.html:209 msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:216 +#: templates/registration/registration_form.html:212 msgid "Register!" msgstr "" @@ -5313,17 +5330,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 -#: templates/user/edit-profile.html:374 +#: templates/user/edit-profile.html:391 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 -#: templates/user/edit-profile.html:375 +#: templates/user/edit-profile.html:392 msgid "These codes can only be used once and are for emergency use." msgstr "" #: templates/registration/totp_enable.html:100 -#: templates/user/edit-profile.html:376 +#: templates/user/edit-profile.html:393 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5332,7 +5349,7 @@ msgid "If you ever need more scratch codes, you can regenerate them on the edit msgstr "" #: templates/registration/totp_enable.html:102 -#: templates/user/edit-profile.html:378 +#: templates/user/edit-profile.html:395 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5350,12 +5367,12 @@ msgid "If you lose your authentication device and are unable to use your scratch msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:164 +#: templates/user/edit-profile.html:159 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:188 +#: templates/user/edit-profile.html:183 msgid "Failed to contact server." msgstr "" @@ -5453,23 +5470,23 @@ msgstr "" msgid "Are you sure you want to rejudge?" msgstr "" -#: templates/submission/list.html:74 +#: templates/submission/list.html:75 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:80 +#: templates/submission/list.html:82 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:304 +#: templates/submission/list.html:306 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:340 +#: templates/submission/list.html:342 msgid "Total:" msgstr "總計:" -#: templates/submission/list.html:350 +#: templates/submission/list.html:352 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5633,32 +5650,32 @@ msgstr "" msgid "Closed: " msgstr "" -#: templates/ticket/list.html:156 +#: templates/ticket/list.html:157 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:162 +#: templates/ticket/list.html:163 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:167 +#: templates/ticket/list.html:168 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:171 +#: templates/ticket/list.html:172 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:180 templates/ticket/ticket.html:196 +#: templates/ticket/list.html:181 templates/ticket/ticket.html:196 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" -#: templates/ticket/list.html:200 +#: templates/ticket/list.html:201 msgid "Title" msgstr "標題" -#: templates/ticket/list.html:202 +#: templates/ticket/list.html:203 msgid "Assignees" msgstr "" @@ -5709,131 +5726,135 @@ msgstr "" msgid "Nothing here." msgstr "" -#: templates/user/base-users-table.html:3 +#: templates/user/base-users-table.html:4 msgid "Rank" msgstr "排名" -#: templates/user/base-users.html:14 templates/user/base-users.html:57 +#: templates/user/base-users.html:15 templates/user/base-users.html:59 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:107 +#: templates/user/edit-profile.html:102 msgid "The administrators for this site require all the staff to have Two-factor Authentication enabled, so it may not be disabled at this time." msgstr "" -#: templates/user/edit-profile.html:112 +#: templates/user/edit-profile.html:107 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:108 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:109 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:110 msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 +#: templates/user/edit-profile.html:111 templates/user/edit-profile.html:205 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:355 msgid "Remove" msgstr "刪除" -#: templates/user/edit-profile.html:140 +#: templates/user/edit-profile.html:135 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 -#: templates/user/edit-profile.html:402 +#: templates/user/edit-profile.html:142 templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:387 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:193 +#: templates/user/edit-profile.html:188 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:207 +#: templates/user/edit-profile.html:202 msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" msgstr "" -#: templates/user/edit-profile.html:208 +#: templates/user/edit-profile.html:203 msgid "This will invalidate any previous scratch codes you have." msgstr "" -#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +#: templates/user/edit-profile.html:204 templates/user/edit-profile.html:396 msgid "You will not be able to view your scratch codes after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:278 +#: templates/user/edit-profile.html:273 msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:285 +#: templates/user/edit-profile.html:280 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:286 +#: templates/user/edit-profile.html:281 msgid "Time zone:" msgstr "時區:" -#: templates/user/edit-profile.html:290 +#: templates/user/edit-profile.html:285 msgid "Language:" msgstr "語言:" -#: templates/user/edit-profile.html:294 +#: templates/user/edit-profile.html:289 +msgid "Site theme:" +msgstr "" + +#: templates/user/edit-profile.html:293 msgid "Editor theme:" msgstr "編輯器主題:" -#: templates/user/edit-profile.html:299 +#: templates/user/edit-profile.html:298 msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:308 +#: templates/user/edit-profile.html:307 msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:334 +#: templates/user/edit-profile.html:333 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:339 +#: templates/user/edit-profile.html:338 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:352 -msgid "Two-factor Authentication is enabled:" +#: templates/user/edit-profile.html:350 +msgid "API token:" +msgstr "API令牌:" + +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:384 +msgid "Hidden" +msgstr "隱藏" + +#: templates/user/edit-profile.html:369 +msgid "Two-factor authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:360 +#: templates/user/edit-profile.html:377 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:363 +#: templates/user/edit-profile.html:380 msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 -msgid "Hidden" -msgstr "隱藏" - -#: templates/user/edit-profile.html:377 +#: templates/user/edit-profile.html:394 msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:402 msgid "Two-factor Authentication is disabled:" msgstr "" -#: templates/user/edit-profile.html:393 -msgid "API token:" -msgstr "API令牌:" - #: templates/user/edit-profile.html:410 msgid "Security keys:" msgstr "" diff --git a/locale/zh_Hant/LC_MESSAGES/djangojs.po b/locale/zh_Hant/LC_MESSAGES/djangojs.po index 229a6274a8..780ace894e 100644 --- a/locale/zh_Hant/LC_MESSAGES/djangojs.po +++ b/locale/zh_Hant/LC_MESSAGES/djangojs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: dmoj\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-20 23:43+0000\n" -"PO-Revision-Date: 2022-12-21 00:43\n" +"POT-Creation-Date: 2023-01-23 05:23+0000\n" +"PO-Revision-Date: 2023-01-24 00:51\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -17,13 +17,13 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:195 +#: resources/common.js:194 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" msgstr[0] "%d 天 %h:%m:%s" -#: resources/common.js:198 +#: resources/common.js:197 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s"