diff --git a/locale/ar/LC_MESSAGES/django.po b/locale/ar/LC_MESSAGES/django.po index db47f1667d..b8dbf2c7bf 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:53\n" "Last-Translator: \n" "Language-Team: Arabic, Saudi Arabia\n" "Language: ar_SA\n" @@ -17,99 +17,99 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "الكاتالونية" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "الألمانية" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "الانجليزية" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "الإسبانية" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "الفرنسية" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "الكرواتية" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "الهنغارية" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "يابانية" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "الكورية" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "البرتغالية" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "محتوى" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." @@ -120,11 +120,11 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." @@ -135,11 +135,11 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +399,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "" @@ -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 "" @@ -575,7 +575,8 @@ msgstr "" msgid "Comment body" msgstr "" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "" @@ -807,108 +808,118 @@ msgstr "" msgid "N j, Y, g:i a" msgstr "" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -965,7 +976,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "" @@ -973,7 +984,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "" @@ -981,7 +992,7 @@ msgstr "" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "" @@ -1017,12 +1028,12 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "" @@ -1030,12 +1041,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "" @@ -1155,11 +1166,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "" @@ -1189,7 +1200,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "" @@ -1209,7 +1220,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1222,7 +1233,7 @@ msgstr "" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "" @@ -1270,213 +1281,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1528,7 +1539,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1581,7 +1592,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "" @@ -1593,7 +1604,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "" @@ -1630,7 +1641,7 @@ msgstr "" msgid "license text" msgstr "" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "" @@ -1670,264 +1681,264 @@ msgstr "" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1953,7 +1964,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 +2136,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:381 msgid "organization" msgstr "" @@ -2166,7 +2177,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:389 msgid "class" msgstr "" @@ -2191,26 +2202,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 +2235,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2656,15 +2671,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:282 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "" @@ -2672,141 +2687,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2870,16 +2885,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2936,6 +2941,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -3036,45 +3046,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3093,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 "" @@ -3216,76 +3226,76 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3296,7 +3306,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:324 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3307,7 +3317,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3318,7 +3328,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3329,120 +3339,120 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3505,17 +3515,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 +3555,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,77 +3571,77 @@ 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 "" #: judge/views/status.py:108 -msgid "Version matrix" +msgid "Version" msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3686,99 +3696,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 +3821,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 +3847,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 +4089,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 +4178,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 +4405,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 +4413,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 +4582,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 +4781,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 +4817,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 +4891,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 +4981,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 +4992,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 +5073,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 +5122,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 +5159,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 +5169,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 +5181,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 +5205,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 +5425,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 +5438,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 +5509,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 +5528,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 +5546,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 "" @@ -5614,7 +5620,7 @@ msgid "Judges" msgstr "" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" +msgid "Versions" msgstr "" #: templates/submission/info-base.html:8 @@ -5643,23 +5649,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 +5829,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 +5855,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 +5910,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..2de4dec251 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:53\n" "Last-Translator: \n" "Language-Team: Catalan\n" "Language: ca_ES\n" @@ -17,121 +17,121 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Català" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Alemany" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Grec" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Anglès" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Castellà" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Francès" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Croat" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Hongarès" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Japonès" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Coreà" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "Portuguès (Brasil)" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Romanès" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Rus" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Serbi (llatí)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Turc" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Vietnamita" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Xinès simplificat" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "Contingut" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "Comentari %d ocultat amb èxit." msgstr[1] "Comentaris %d ocultats amb èxit." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Amagar comentaris" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "Comentari %d mostrat amb èxit." msgstr[1] "Comentaris %d mostrats amb èxit." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Deixa d'amagar els comentaris" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" msgstr "Pàgina associada" @@ -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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +355,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "problema" @@ -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" @@ -523,7 +523,8 @@ msgstr "Jutge Online" msgid "Comment body" msgstr "Cos del comentari" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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." @@ -739,108 +740,118 @@ msgstr "Ja existeix un concurs amb aquesta clau." msgid "N j, Y, g:i a" msgstr "j N Y, G:i" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "en {time}" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 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+$" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "comentarista" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "publicat a les" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "pàgina associada" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "vots" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "cos del comentari" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "ocult" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "pare" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "revisions" + +#: judge/models/comment.py:39 msgid "comment" msgstr "comentari" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "comentaris" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "Editorial de %s" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "vot del comentari" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "vots del comentari" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "Ignora el bloqueig del comentari" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -897,7 +908,7 @@ msgid "contest name" msgstr "nom del concurs" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "autors/es" @@ -905,7 +916,7 @@ msgstr "autors/es" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "conservadors/es" @@ -913,7 +924,7 @@ msgstr "conservadors/es" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "testers" @@ -949,12 +960,12 @@ msgstr "" msgid "description" msgstr "descripció" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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" @@ -962,12 +973,12 @@ msgstr "hora d'inici" msgid "end time" msgstr "hora de finalització" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "límit de temps" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "visible públicament" @@ -1087,11 +1098,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "privat per a organitzacions" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "organitzacions" @@ -1121,7 +1132,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "imatge OpenGraph" @@ -1141,7 +1152,7 @@ msgstr "la quantitat de participans en viu" msgid "contest summary" msgstr "resum del concurs" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "Text pla, que surt en l'etiqueta de meta descripció, per exemple per Xarxes Socials." @@ -1154,7 +1165,7 @@ msgstr "codi d'accés" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "Un codi opcional que se li demana als concursants abans de que se'ls permeti participar. Deixa-ho buit per a desactivar-ho." -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "persones non grates" @@ -1202,213 +1213,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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" @@ -1460,7 +1471,7 @@ msgstr "títol de l'entrada" msgid "slug" msgstr "identificador únic" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "visibilitat pública" @@ -1513,7 +1524,7 @@ msgstr "nom de la categoria del problema" msgid "problem type" msgstr "tipus del problema" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "tipus de problemes" @@ -1525,7 +1536,7 @@ msgstr "ID del grup del problema" msgid "problem group name" msgstr "nom del grup del problema" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "grup del problema" @@ -1562,7 +1573,7 @@ msgstr "URL de la icona." msgid "license text" msgstr "text de la llicència" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "llicència" @@ -1602,264 +1613,264 @@ msgstr "nom del problema" msgid "The full name of the problem, as shown in the problem list." msgstr "El nom complet del problema, tal i com es mostra en la llista de problemes." -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "cos del problema" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "creadors/es" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "Aquests usuaris seran capaços d'editar el problema i seran mostrats com els seus autors." -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "Aquests usuaris seran capaços d'editar el problema però no seran mostrats com els seus autors." -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "Aquests usuaris podran veure el problema privat, però no editar-lo." -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "El tipus del problema, tal i com es mostra en la llista de problemes." -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "El grup del problema, tal i com es mostra en la llista de problemes com a Categoria." -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "El temps límit per aquest problema, en segons. Les fraccions (1.5) estan permeses." -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "límit de memòria" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "El límit de memòria per aquest problema, en kilobytes (p.e. 256mb = 262144 kilobytes)." -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "curt circuit" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "Punts otorgats per completar el problema. Els punts es mostren amb un sufix 'p' si son parcials (és a dir, cada cas completat otorga punts tot i que no es completin tots els casos)." -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "permetre punts parcials" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "llenguatges permesos" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "Llista de llenguatges d'enviament permesos." -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "operat manualment" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "Si els jutges poden modificar les dades manualment o no." -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "data de publicació" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "No té l'habilitat màgica d'autopublicar per a preservar la compatibilitat amb versions anteriors." -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "Baneja als usuaris seleccionats de fer enviaments per aquest problema." -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "La llicència sota la qual aquest problema ha estat publicat." -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "resum del problema" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "nombre d'usuaris" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "El nombre d'usuaris que ha resolt aquest problema." -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "percentatge d'usuaris que han resolt el problema" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "permet fer servir la llibreria sencera de Markdown" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "Si està en privat, només aquestes organitzacions podran veure el problema." -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "Veure problemes ocults" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "Editar problemes propis" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "Editar tots els problemes" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "Editar tots els problemes públics" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "Editar problemes amb accés total a markup" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Clonar problema" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "Cambiar camp is_public" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "Cambiar camp is_manually_managed" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "Veure els problemes privats per a organitzacions" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "llenguatge" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "nom traduït" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "descripció traduïda" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "traducció del problema" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "traduccions del problema" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "problema aclarit" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "cos de l'aclariment" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "marca de temps de l'aclariment" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "límit de recursos específics per llenguatge" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "límits de recursos específics per llenguatge" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "problema associat" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "data de publicació" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "contingut de l'editorial" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "Veure solucions ocultes" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "solució" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "solucions" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "votant" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "nota" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "vot del problema" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "vots del problema" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1885,8 +1896,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 +2068,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:381 msgid "organization" msgstr "organització" @@ -2098,7 +2109,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:389 msgid "class" msgstr "" @@ -2123,26 +2134,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 +2167,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:335 msgid "Shows in-progress development stuff" msgstr "Mostra coses de desenvolupament en progrès" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "Editar ajustos de TOTP" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "perfil d'usuari" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "perfils d'usuaris" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "nom de dispositiu" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "ID de la credencial" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "clau pública" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "comptador de firmes" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "data de solicitud" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "estat" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 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:386 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:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Rebutjat" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "motiu" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "petició d'unir-se a organització" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "peticions d'unir-se a organització" @@ -2588,15 +2603,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:282 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:283 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:284 msgid "points granted" msgstr "punts atorgats" @@ -2604,141 +2619,141 @@ msgstr "punts atorgats" msgid "submission language" msgstr "llenguatge de l'enviament" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "estat" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "resultat" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "errors de compilació" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "casos en lot (batch)" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "punts del cas de proves" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "punts totals del cas de proves" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "jutjat en" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "temps per a jutjar l'enviament" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "només s'han passat casos de proves preliminars" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "Enviament %(id)d de %(problem)s per %(user)s" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "Avortar qualsevol enviament" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "Rejutjar l'enviament" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "Rejutjar molts enviaments" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "Enviar sense límit" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "Veure tots els enviaments" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "Reenviar l'enviament d'un altre" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "Canviar l'estat de bloqueig d'un enviament" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "enviaments" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "enviament associat" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "codi font" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "Id del cas de proves" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "flag d'estat" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "punts possibles" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "nombre de lot (batch)" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "resultat del jutge" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "resultat extés del jutge" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "sortida del programa" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "cas de prova de l'enviament" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "casos de prova de l'enviament" @@ -2802,16 +2817,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "Pàgina [page] de [topage]" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "Pàgina %s de %s" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2868,6 +2873,11 @@ msgstr "Preparant les dades del teu enviament" msgid "Preparing your comment data" msgstr "Preparant les dades del teu comentari" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "Pàgina {page_number} de {total_pages}" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "No es permeten lots buits." @@ -2956,45 +2966,45 @@ 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" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "Toquetejant-me el programa, eh?" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "Has de resoldre com a mínim un problema abans de poder votar." -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "Ja has votat." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "Editat des de'l lloc web" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3013,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" @@ -3136,217 +3146,217 @@ msgstr "pàgina corrupta %s" msgid "Runtimes" msgstr "Execucions" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "No s'ha trobat aquesta organització" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "No s'ha pogut trobar una organització amb la clau \"%s\"." -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 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:98 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:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "Unint-se a l'organització" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "Ja estàs en l'organització." -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "Aquesta organització no està oberta." -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "Abandonant l'organització" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, 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:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "Sol·licitud d'unir-se a %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "Detall de la sol·licitud" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "Administrants sol·licituds per a %s" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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:324 #, 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:339 #, 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:340 #, 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:370 #, python-format msgid "Editing %s" msgstr "Editant %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "No es pot editar l'organització" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 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:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "No pots fer fora a aquest usuari" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 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:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "No existeix aquest problema" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "Editorial per a {0}" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "èxit" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "Enviar a %s" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "Banejat de fer enviaments" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "Has estat declarat persona non grata per aquest problema. Estàs vetat permanentment de fer enviaments." -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "Masses enviaments" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "Has superat el límit d'enviaments per a aquest problema." -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "Clonar Problema" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3405,17 +3415,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 +3455,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,77 +3471,77 @@ 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" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "Matriu de versions" +msgid "Version" +msgstr "Versió" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "Enviament de %(problem)s per %(user)s" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "Tots els enviaments" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "Tots els meus enviaments" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, 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:434 judge/views/submission.py:437 #, 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:498 judge/views/submission.py:505 #, 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:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, 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:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, 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 +3596,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 +3721,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 +3747,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 +3989,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 +4078,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 +4293,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 +4301,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 +4466,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 +4665,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 +4701,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 +4771,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 +4941,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 +4982,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 +5019,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 +5029,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 +5041,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 +5273,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 +5286,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 +5357,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 +5376,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 +5394,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." @@ -5462,8 +5468,8 @@ msgid "Judges" msgstr "Jutges" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "Matriu de Versions" +msgid "Versions" +msgstr "Versions" #: templates/submission/info-base.html:8 #, python-format @@ -5491,23 +5497,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 +5677,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 +5754,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..815a8f7c8e 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:53\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -17,121 +17,121 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Katalanisch" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Deutsch" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Englisch" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Spanisch" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Französisch" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Kroatisch" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Ungarisch" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Japanisch" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Koreanisch" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "Brasilianisches Portugiesisch" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Rumänisch" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Russisch" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Serbisch (Lateinisches Alphabet)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Türkisch" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Vietnamesisch" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Chinesisch (vereinfacht)" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "%d Kommentar erfolgreich versteckt." msgstr[1] "%d Kommentare erfolgreich versteckt." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Kommentare verstecken" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "" msgstr[1] "" -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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 "Problem" -#: judge/admin/contest.py:66 judge/views/problem.py:355 +#: judge/admin/contest.py:66 judge/views/problem.py:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +355,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "" @@ -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 "" @@ -523,7 +523,8 @@ msgstr "" msgid "Comment body" msgstr "" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "" @@ -739,108 +740,118 @@ msgstr "" msgid "N j, Y, g:i a" msgstr "" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -897,7 +908,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "" @@ -905,7 +916,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "" @@ -913,7 +924,7 @@ msgstr "" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "" @@ -949,12 +960,12 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "" @@ -962,12 +973,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "" @@ -1087,11 +1098,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "" @@ -1121,7 +1132,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "" @@ -1141,7 +1152,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1154,7 +1165,7 @@ msgstr "" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "" @@ -1202,213 +1213,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1460,7 +1471,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1513,7 +1524,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "" @@ -1525,7 +1536,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "" @@ -1562,7 +1573,7 @@ msgstr "" msgid "license text" msgstr "" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "" @@ -1602,264 +1613,264 @@ msgstr "" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1885,7 +1896,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 +2068,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:381 msgid "organization" msgstr "" @@ -2098,7 +2109,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:389 msgid "class" msgstr "" @@ -2123,26 +2134,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 +2167,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2588,15 +2603,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:282 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "" @@ -2604,141 +2619,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2802,16 +2817,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2868,6 +2873,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2956,45 +2966,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3013,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 "" @@ -3136,217 +3146,217 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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:324 #, 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:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "erfolgreich" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3405,17 +3415,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 +3455,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,77 +3471,77 @@ 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 "" #: judge/views/status.py:108 -msgid "Version matrix" +msgid "Version" msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3586,99 +3596,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 +3721,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 +3747,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 +3989,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 +4078,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 +4293,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 +4301,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 +4466,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 +4665,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 +4701,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 +4771,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 +4941,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 +4982,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 +5019,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 +5029,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 +5041,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 +5273,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 +5286,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 +5357,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 +5376,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 +5394,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 "" @@ -5462,7 +5468,7 @@ msgid "Judges" msgstr "" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" +msgid "Versions" msgstr "" #: templates/submission/info-base.html:8 @@ -5491,23 +5497,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 +5677,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 +5754,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..fb52b1f937 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -17,121 +17,121 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Καταλανικά" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Γερμανικά" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Ελληνικά" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Αγγλικά" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Ισπανικά" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Γαλλικά" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Κροάτικα" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Ουγγρικά" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Ιαπωνικά" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Κορεατικά" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "Πορτογαλικά Βραζιλίας" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Ρουμανικά" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Ρωσικά" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Σερβικά (Λατινικά)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Τουρκικά" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Βιετναμέζικα" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Απλοποιημένα Κινέζικα" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "Αρχική" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "Περιεχόμενο" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "%d σχόλιο αποκρύφθηκε επιτυχώς." msgstr[1] "%d σχόλια αποκρύφθηκαν επιτυχώς." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Απόκρυψη σχολίων" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "%d σχόλιο επανεμφανίστηκε επιτυχώς." msgstr[1] "%d σχόλια επανεμφανίστηκαν επιτυχώς." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Επανεμφάνιση σχολίων" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +355,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "πρόβλημα" @@ -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 "Κλειδωμένο" @@ -523,7 +523,8 @@ msgstr "Διαδικτυακός Κριτής" msgid "Comment body" msgstr "Σώμα σχολίου" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "Διαγωνισμός με αυτό το κλειδί υπάρχει ήδη." @@ -739,108 +740,118 @@ msgstr "Διαγωνισμός με αυτό το κλειδί υπάρχει ή msgid "N j, Y, g:i a" msgstr "j N Y, g:i a" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "στις {time}" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "Ο κωδικός σελίδας πρέπει να είναι ^[pcs]:[a-z0-9]+$|^b:\\d+$" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "σχολιαστής" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "ώρα δημοσίευσης" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "συσχετιζόμενη σελίδα" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "ψήφοι" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "σώμα σχολίου" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "κρυφό" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "γονέας" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "αναθεωρήσεις" + +#: judge/models/comment.py:39 msgid "comment" msgstr "σχόλιο" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "σχόλια" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "Εξήγηση για %s" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "ψήφος σχολίου" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "ψήφοι σχολίου" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "Παράκαμψη κλειδώματος σχολίου" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "κλείδωμα σχολίου" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "κλειδαριές σχολίων" @@ -897,7 +908,7 @@ msgid "contest name" msgstr "όνομα διαγωνισμού" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "συγγραφείς" @@ -905,7 +916,7 @@ msgstr "συγγραφείς" msgid "These users will be able to edit the contest." msgstr "Αυτοί οι χρήστες θα είναι σε θέση να επεξεργαστούν το διαγωνισμό." -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "επιμελητές" @@ -913,7 +924,7 @@ msgstr "επιμελητές" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "Αυτοί οι χρήστες θα είναι σε θέση να επεξεργαστούν το διαγωνισμό, αλλά δεν θα εμφανίζονται ως συγγραφείς." -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "δοκιμαστές" @@ -949,12 +960,12 @@ msgstr "Αυτοί οι χρήστες θα είναι σε θέση να παρ msgid "description" msgstr "περιγραφή" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "ώρα έναρξης" @@ -962,12 +973,12 @@ msgstr "ώρα έναρξης" msgid "end time" msgstr "ώρα λήξης" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "χρονικό όριο" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "δημόσια ορατό" @@ -1021,7 +1032,7 @@ msgstr "χαμηλότερη αξιολόγηση" #: judge/models/contest.py:113 msgid "Do not rate users who have a lower rating." -msgstr "" +msgstr "Να μην αξιολογούνται οι χρήστες που έχουν χαμηλότερη βαθμολογία." #: judge/models/contest.py:114 msgid "rating ceiling" @@ -1029,7 +1040,7 @@ msgstr "ανώτατο όριο αξιολόγησης" #: judge/models/contest.py:115 msgid "Do not rate users who have a higher rating." -msgstr "" +msgstr "Να μην αξιολογούνται οι χρήστες που έχουν υψηλότερη βαθμολογία." #: judge/models/contest.py:117 msgid "rate all" @@ -1087,11 +1098,11 @@ msgstr "εμφάνιση μερικών ρυθμίσεων φόρμας" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "Εάν θα εμφανίζεται μια ενότητα που περιέχει ρυθμίσεις διαγωνισμού στη σελίδα διαγωνισμού ή όχι." -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "ιδιωτικό για οργανισμούς" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "οργανισμοί" @@ -1121,7 +1132,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "Εάν ιδιωτικό για οργανισμό, μόνο αυτές οι κατηγορίες μπορούν να δουν το διαγωνισμό." #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "Εικόνα OpenGraph" @@ -1141,7 +1152,7 @@ msgstr "ο αριθμός των ζωντανών συμμετεχόντων" msgid "contest summary" msgstr "σύνοψη διαγωνισμού" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "Απλό κείμενο, που εμφανίζεται στην ετικέτα meta, π.χ. για τα μέσα κοινωνικής δικτύωσης." @@ -1154,7 +1165,7 @@ msgstr "κωδικός πρόσβασης" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "Ένας προαιρετικός κώδικας για την προτροπή των διαγωνιζομένων πριν τους επιτραπεί να συμμετάσχουν στο διαγωνισμό. Αφήστε το κενό για απενεργοποίηση." -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "personae non gratae" @@ -1202,213 +1213,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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 "" +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 "" +msgstr "%(user)s σε %(contest)s, v%(id)d" -#: judge/models/contest.py:573 +#: judge/models/contest.py:582 #, python-format msgid "%(user)s in %(contest)s" -msgstr "" +msgstr "%(user)s σε %(contest)s" -#: 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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" @@ -1460,7 +1471,7 @@ msgstr "τίτλος ανάρτησης" msgid "slug" msgstr "slug" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "δημόσια ορατότητα" @@ -1513,7 +1524,7 @@ msgstr "όνομα κατηγορίας προβλήματος" msgid "problem type" msgstr "τύπος προβλήματος" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "τύποι προβλήματος" @@ -1525,7 +1536,7 @@ msgstr "ID ομάδας προβλημάτων" msgid "problem group name" msgstr "όνομα ομάδας προβλημάτων" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "ομάδα προβλημάτων" @@ -1562,7 +1573,7 @@ msgstr "URL για το εικονίδιο." msgid "license text" msgstr "κείμενο άδειας χρήσης" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "άδεια" @@ -1602,264 +1613,264 @@ msgstr "όνομα προβλήματος" msgid "The full name of the problem, as shown in the problem list." msgstr "Το πλήρες όνομα του προβλήματος, όπως φαίνεται στη λίστα προβλημάτων." -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "σώμα προβλήματος" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "δημιουργοί" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "Αυτοί οι χρήστες θα είναι σε θέση να επεξεργάζονται το πρόβλημα και να εμφανίζονται ως συγγραφείς." -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "Αυτοί οι χρήστες θα είναι σε θέση να επεξεργάζονται το πρόβλημα, αλλά δεν θα εμφανίζονται ως συγγραφείς." -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "Αυτοί οι χρήστες θα είναι σε θέση να δουν το ιδιωτικό πρόβλημα, αλλά όχι να το επεξεργαστούν." -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "Ο τύπος του προβλήματος, όπως εμφανίζεται στη σελίδα του προβλήματος." -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "Η ομάδα του προβλήματος, όπως εμφανίζεται στην Κατηγορία στη λίστα προβλημάτων." -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "Το χρονικό όριο για αυτό το πρόβλημα, σε δευτερόλεπτα. Κλασματικά δευτερόλεπτα (π.χ. 1.5) υποστηρίζονται." -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "όριο μνήμης" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "Το όριο μνήμης για αυτό το πρόβλημα, σε kilobytes (π.χ. 256mb = 262144 kilobytes)." -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "βραχυκύκλωμα" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "Πόντοι που απονέμονται για την ολοκλήρωση του προβλήματος. Οι πόντοι εμφανίζονται με επίθεμα 'p' αν βαθμολογείται μερικώς." -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "επιτρέπεται μερική βαθμολόγηση" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "επιτρεπόμενες γλώσσες" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "Λίστα επιτρεπόμενων γλωσσών υποβολής." -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "χειροκίνητη διαχείριση" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "Αν οι κριτές θα επιτρέπεται να διαχειρίζονται δεδομένα ή όχι." -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "ημερομηνία δημοσίευσης" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "Δεν έχει μαγική ικανότητα αυτόματης δημοσίευσης λόγω οπισθόδρομης συμβατότητας." -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "Απαγορεύει στους επιλεγμένους χρήστες την υποβολή σε αυτό το πρόβλημα." -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "Η άδεια χρήσης υπό την οποία δημοσιεύεται αυτό το πρόβλημα." -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "σύνοψη προβλήματος" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "αριθμός χρηστών" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "Ο αριθμός των χρηστών που έλυσαν το πρόβλημα." -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "ρυθμός επίλυσης" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "επιτρέπει πλήρη πρόσβαση markdown" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "ορατότητα πηγής υποβολής" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "Εάν ιδιωτικό, μόνο αυτοί οι οργανισμοί μπορούν να δουν το πρόβλημα." -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "Δείτε κρυμμένα προβλήματα" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "Επεξεργασία δικών σας προβλημάτων" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "Επεξεργασία όλων των προβλημάτων" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "Επεξεργασία όλων των δημόσιων προβλημάτων" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "Επεξεργασία προβλημάτων με πλήρη markup" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Κλωνοποίηση προβλήματος" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "Αλλαγή is_public πεδίου" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "Αλλαγή is_manually_managed πεδίου" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "Δείτε ιδιωτικά-οργανισμών προβλήματα" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "γλώσσα" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "μεταφρασμένο όνομα" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "μεταφρασμένη περιγραφή" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "μετάφραση προβλήματος" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "μεταφράσεις προβλήματος" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "διευκρινισμένο πρόβλημα" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "σώμα διευκρίνησης" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "χρονοσφραγίδα διευκρίνησης" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "διευκρίνηση προβλήματος" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "διευκρινίσεις προβλήματος" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "ειδικό όριο πόρων για τη γλώσσα" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "ειδικά όρια πόρων για τη γλώσσα" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "συσχετιζόμενο πρόβλημα" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "ημερομηνία δημοσίευσης" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "περιεχόμενο εξήγησης" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "Δείτε κρυφές λύσεις" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "λύση" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "λύσεις" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" -msgstr "" +msgstr "Προτεινόμενα σημεία" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." -msgstr "" +msgstr "Ο αριθμός των πόντων που ο ψηφοφόρος πιστεύει ότι αξίζει αυτό το πρόβλημα." -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "ψηφοφόρος" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" -msgstr "" +msgstr "Ώρα ψηφοφορίας" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." -msgstr "" +msgstr "Ήρθε η ώρα να διεξαχθεί αυτή η ψηφοφορία." -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "σημείωση" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." -msgstr "" +msgstr "Αιτιολόγηση για την τιμή των πόντων προβλήματος." -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" -msgstr "" +msgstr "Πρόβλημα ψήφου" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" -msgstr "" +msgstr "Πρόβλημα ψήφων" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1885,8 +1896,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 +2068,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:381 msgid "organization" msgstr "οργανισμός" @@ -2096,9 +2107,9 @@ msgstr "μέλη" #: judge/models/profile.py:128 #, python-format msgid "%(class)s in %(organization)s" -msgstr "" +msgstr "%(class)s σε %(organization)s" -#: judge/models/profile.py:142 judge/models/profile.py:371 +#: judge/models/profile.py:142 judge/models/profile.py:389 msgid "class" msgstr "κατηγορία" @@ -2123,26 +2134,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 +2167,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 "" +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:335 msgid "Shows in-progress development stuff" msgstr "Δείχνει πράγματα ανάπτυξης σε εξέλιξη" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "Επεξεργασία ρυθμίσεων TOTP" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "προφίλ χρήστη" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "προφίλ χρηστών" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "όνομα συσκευής" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "διαπιστευτήρια ID" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "δημόσιο κλειδί" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "μετρητής υπογραφής" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "WebAuthn διαπιστευτήριο: %(name)s" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "WebAuthn διαπιστευτήριο" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "WebAuthn διαπιστευτήρια" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "ώρα αιτήματος" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "κατάσταση" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "Εκκρεμεί" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "Εγκρίθηκε" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Απορρίφθηκε" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "αιτία" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "αίτηση συμμετοχής οργανισμού" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "αιτήσεις συμμετοχής οργανισμού" @@ -2479,11 +2494,11 @@ msgstr "Αν αυτός ο κριτής θα πρέπει να αποκλεισ #: judge/models/runtime.py:132 msgid "disable judge" -msgstr "" +msgstr "Απενεργοποίηση κριτή" #: judge/models/runtime.py:133 msgid "Whether this judge should be removed from judging queue." -msgstr "" +msgstr "Εάν αυτός ο κριτής πρέπει να αφαιρεθεί από την ουρά των κριτών." #: judge/models/runtime.py:134 msgid "judge online status" @@ -2557,7 +2572,7 @@ msgstr "Εσωτερικό Σφάλμα" #: judge/models/submission.py:31 judge/models/submission.py:52 msgid "Short Circuited" -msgstr "" +msgstr "Βραχυκύκλωμα" #: judge/models/submission.py:32 judge/models/submission.py:45 #: judge/models/submission.py:64 @@ -2588,15 +2603,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:282 msgid "execution time" msgstr "χρόνος εκτέλεσης" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "χρήση μνήμης" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "χορηγηθέντες πόντοι" @@ -2604,141 +2619,141 @@ msgstr "χορηγηθέντες πόντοι" msgid "submission language" msgstr "γλώσσα υποβολής" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "κατάσταση" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "αποτέλεσμα" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "σφάλματα μεταγλώττισης" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "δεσμίδες περιπτώσεων" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "πόντοι δοκιμαστικής περίπτωσης" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "συνολικοί πόντοι δοκιμαστικής περίπτωσης" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "κρίθηκε στις" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "ώρα κρίσης υποβολής" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "τελευταία ημερομηνία κρίσης εκ νεόυ από admin" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "έτρεξε μόνο σε προδοκιμές" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "κλείδωμα υποβολής" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" -msgstr "" +msgstr "Υποβολή %(id)d από %(problem)s από %(user)s" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "Ακύρωση οποιασδήποτε υποβολής" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "Κρίση εκ νέου της υποβολής" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "Κρίση εκ νέου πολλών υποβολών" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "Υποβολή χωρίς όριο" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "Δείτε όλες τις υποβολές" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "Επανυποβολή υποβολής τρίτων" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "Αλλαγή κατάστασης κλειδώματος υποβολής" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "υποβολές" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "συσχετιζόμενη υποβολή" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "πηγαίος κώδικας" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" -msgstr "" +msgstr "Πηγή του %(submission)s" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "πηγή υποβολής" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "πηγές υποβολής" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "ID δοκιμαστικής περίπτωσης" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "σημαία κατάστασης" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "δυνατοί πόντοι" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "αριθμός δεσμίδας" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "σχόλια κριτή" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "εκτενή σχόλια κριτή" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "έξοδος προγράμματος" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "δοκιμαστική περίπτωση υποβολής" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "δοκιμαστικές περιπτώσεις υποβολής" @@ -2802,16 +2817,6 @@ msgstr "μήνυμα αιτήματος" msgid "ticket messages" msgstr "μηνύματα αιτήματος" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "Σελίδα [page] από [topage]" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "Σελίδα %s από %s" - #: judge/ratings.py:194 msgid "Newbie" msgstr "Πρωτάρης" @@ -2868,6 +2873,11 @@ msgstr "Προετοιμασία των δεδομένων υποβολής" msgid "Preparing your comment data" msgstr "Προετοιμασία των δεδομένων σχολίου" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "Σελίδα {page_number} από {total_pages}" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "Δεν επιτρέπονται κενές δεσμίδες." @@ -2956,45 +2966,45 @@ 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 Αναρτήσεων" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "Σαχλαμαρίζουμε, ε;" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "Πρέπει να λύσετε τουλάχιστον ένα πρόβλημα πριν μπορέσετε να ψηφίσετε." -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "Το σχόλιο δεν βρέθηκε." -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "Δεν μπορείτε να ψηφίσετε για τα δικά σας σχόλια." -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "Έχετε ήδη ψηφίσει." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "Επεξεργάστηκε από την ιστοσελίδα" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3013,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" @@ -3136,217 +3146,217 @@ msgstr "αλλοιωμένη σελίδα %s" msgid "Runtimes" msgstr "Χρόνοι εκτέλεσης" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "Δεν υπάρχει τέτοιος οργανισμός" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "Αδυναμία εύρεσης οργανισμού με κλειδί \"%s\"." -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "Αδυναμία εύρεσης τέτοιου οργανισμού." -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Οργανισμοί" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "Εγγραφή στον οργανισμό" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "Είστε ήδη μέλος αυτού του οργανισμού." -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "Αυτός ο οργανισμός δεν είναι ανοιχτός." -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "Αποχώρηση από τον οργανισμό" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "Δεν είστε στο \"%s\"." -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, 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:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "Έχετε ήδη ένα αίτημα σε εκκρεμότητα για εγγραφή στο %s." -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "Αίτηση εγγραφής στο %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "Λεπτομέρειες αίτησης εγγραφής" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "Διαχείριση αιτήσεων εγγραφής για %s" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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] "" +msgstr[0] "Ο οργανισμός σας μπορεί να λάβει μόνο %d επιπλέον μέλη." +msgstr[1] "Ο οργανισμός σας μπορεί να λάβει μόνο %d περισσότερα μέλη." -#: judge/views/organization.py:297 +#: judge/views/organization.py:324 #, 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:339 #, 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:340 #, 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:370 #, python-format msgid "Editing %s" msgstr "Επεξεργασία %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "Αδυναμία επεξεργασίας οργανισμού" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "Δεν έχετε δικαιώμα να επεξεργαστείτε αυτόν τον οργανισμό." -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "Αδυναμία αποβολής χρήστη" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "Ο χρήστης που προσπαθείτε να αποβάλλετε δεν υπάρχει!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Κατηγορία {name} στο {organization}" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Κατηγορία {name} - {organization}" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "Αίτηση εγγραφής του {name} στο {organization}" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "Δεν υπάρχει τέτοιο πρόβλημα" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "Εξήγηση για {0}" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "Δεν υπάρχει τέτοια εξήγηση" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "Αδυναμία εύρεσης εξήγησης με κωδικό \"%s\"." -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." -msgstr "" +msgstr "Δεν επιτρέπεται να ψηφίσετε γι' αυτό το πρόβλημα." -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." -msgstr "" +msgstr "Δεν επιτρέπεται να διαγράψετε τις ψήφους γι' αυτό το πρόβλημα." -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "επιτυχία" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "Υποβολή στο %s" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." -msgstr "" +msgstr "Κάνατε πάρα πολλές υποβολές." -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "Αποκλεισμένος από υποβολή" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "Έχετε κηρυχθεί persona non grata για αυτό το πρόβλημα. Είστε μόνιμα αποκλεισμένοι από το να υποβάλλετε σε αυτό το πρόβλημα." -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "Πάρα πολλές υποβολές" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "Έχετε υπερβεί το όριο υποβολής για αυτό το πρόβλημα." -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" -msgstr "" +msgstr "Θέλετε να σας απαγορεύσω;" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "Κλωνοποίηση Προβλήματος" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "Κλωνοποιημένο πρόβλημα από %s" @@ -3405,17 +3415,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,93 +3455,93 @@ 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 "Αποτυχία ελέγχου ταυτότητας" #: judge/views/stats.py:23 msgid "Other" -msgstr "" +msgstr "Άλλο" #: judge/views/stats.py:62 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 "Κατάσταση" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "Πίνακας έκδοσης" +msgid "Version" +msgstr "Έκδοση" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "Απαγορεύεται η πρόσβαση. Λύστε %(problem)s για να το δείτε." -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "Αδυναμία πρόσβασης στην υποβολή" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "Απαγορεύεται η πρόσβαση." -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "Υποβολή για %(problem)s από %(user)s" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "Όλες οι υποβολές" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "Όλες οι υποβολές μου" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "Όλες οι υποβολές από %s" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "Όλες οι υποβολές για %s" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, 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:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, 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:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "Υποβολές του/της {user} για το πρόβλημα {number} στο {contest}" @@ -3586,101 +3596,105 @@ 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 "" +msgstr "Έχετε στείλει πάρα πολλά αιτήματα επαναφοράς κωδικού πρόσβασης. Παρακαλώ προσπαθήστε ξανά αργότερα." #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" @@ -3707,13 +3721,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 "Ενεργοποίηση" @@ -3726,55 +3740,55 @@ msgstr "Προβολή υποβολών" #: templates/admin/judge/problem/change_form.html:20 #: templates/admin/judge/problem/change_form.html:23 msgid "View problem votes" -msgstr "" +msgstr "Προβολή προβληματικών ψήφων." #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 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 "Επεξεργασία" @@ -3808,7 +3822,7 @@ msgstr "δημοσιεύθηκε {time}" #: templates/blog/list.html:81 msgid "Continue reading..." -msgstr "" +msgstr "Συνέχεια ανάγνωσης..." #: templates/blog/list.html:95 templates/problem/problem.html:331 msgid "Clarifications" @@ -3825,7 +3839,7 @@ msgstr "Διαγωνισμοί σε εξέλιξη" #: templates/blog/list.html:127 #, python-format msgid "Ends in %(countdown)s." -msgstr "" +msgstr "Λήγει σε %(countdown)s." #: templates/blog/list.html:137 templates/contest/list.html:226 msgid "Upcoming contests" @@ -3834,7 +3848,7 @@ msgstr "Επερχόμενοι διαγωνισμοί" #: templates/blog/list.html:145 templates/contest/contest.html:41 #, python-format msgid "Starting in %(countdown)s." -msgstr "" +msgstr "Ξεκινώντας σε %(countdown)s." #: templates/blog/list.html:154 msgid "Comment stream" @@ -3940,19 +3954,19 @@ msgstr "αρχικό" #: templates/comments/media-js.html:101 #, python-brace-format msgid "Could not vote: {error}" -msgstr "" +msgstr "Αδυναμία ψήφου: {error}" #: templates/comments/media-js.html:137 msgid "Are you sure you want to hide this comment?" -msgstr "" +msgstr "Είστε βέβαιοι ότι θέλετε να αποκρύψετε αυτό το σχόλιο;" #: templates/comments/media-js.html:145 msgid "Could not hide comment." -msgstr "" +msgstr "Αδυναμία απόκρυψης σχολίου." #: templates/comments/media-js.html:180 msgid "updated" -msgstr "" +msgstr "Ενημερώθηκε" #: templates/comments/media-js.html:182 msgid "Failed to update comment body." @@ -3961,7 +3975,7 @@ msgstr "" #: templates/comments/media-js.html:185 #, python-brace-format msgid "Could not edit comment: {error}" -msgstr "" +msgstr "Δεν ήταν δυνατή η επεξεργασία του σχολίου: {error}" #: templates/comments/votes.html:5 msgid "Voter" @@ -3975,17 +3989,17 @@ 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 "" +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 "" +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 "" +msgstr "Αντιγράφηκε!" #: templates/contest/access_code.html:26 msgid "Invalid access code." @@ -4064,7 +4078,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 "Στατιστικά" @@ -4117,12 +4131,12 @@ msgstr "Συνδεθείτε για να συμμετάσχετε" #: templates/contest/contest.html:33 #, python-format msgid "Spectating, contest ends in %(countdown)s." -msgstr "" +msgstr "Παρακολουθώντας, ο διαγωνισμός τελειώνει σε %(countdown)s." #: templates/contest/contest.html:35 #, python-format msgid "Participating virtually, %(countdown)s remaining." -msgstr "" +msgstr "Συμμετέχοντας εικονικά, απομένουν %(countdown)s." #: templates/contest/contest.html:37 msgid "Participating virtually." @@ -4135,7 +4149,7 @@ msgstr "Ο διαγωνισμός τελείωσε." #: templates/contest/contest.html:47 #, python-format msgid "Your time is up! Contest ends in %(countdown)s." -msgstr "" +msgstr "Ο χρόνος σου τελείωσε! Ο διαγωνισμός τελειώνει στο %(countdown)s." #: templates/contest/contest.html:49 #, python-format @@ -4279,7 +4293,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 +4301,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 +4466,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 +4665,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 +4701,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 +4771,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 +4941,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 +4982,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 +5019,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 +5029,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 +5041,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 +5273,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 +5286,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 +5357,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 +5376,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 +5394,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 "Αποτυχία επικοινωνίας με το διακομιστή." @@ -5462,8 +5468,8 @@ msgid "Judges" msgstr "Κριτές" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "Πίνακας Έκδοσης" +msgid "Versions" +msgstr "Εκδόσεις" #: templates/submission/info-base.html:8 #, python-format @@ -5491,23 +5497,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 +5677,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 +5754,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..c48718dfef 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-04-09 00:45\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -17,66 +17,66 @@ 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" #: resources/problem-vote.js:11 msgid "Vote on problem points" -msgstr "" +msgstr "Ψηφίστε για προβληματικούς πόντους." #: resources/problem-vote.js:16 #, javascript-format msgid "Unable to delete vote: %s" -msgstr "" +msgstr "Αδυναμία διαγραφής ψήφου: %s" #: resources/problem-vote.js:28 #, javascript-format msgid "Edit points vote (%s)" -msgstr "" +msgstr "Επεξεργασία ψήφων πόντων (%s)" #: resources/problem-vote.js:34 #, javascript-format msgid "Unable to cast vote: %s" -msgstr "" +msgstr "Αδυναμία μετάδοσης ψήφου: %s" #: resources/problem-vote.js:63 msgid "Number of votes for this point value" -msgstr "" +msgstr "Αριθμός ψήφων για αυτή την τιμή πόντων." #: resources/user_profile.js:47 msgid "past year" -msgstr "" +msgstr "Προηγούμενο έτος." #: resources/user_profile.js:64 msgid "%(cnt)d total submission" msgid_plural "%(cnt)d total submissions" msgstr[0] "" -msgstr[1] "" +msgstr[1] "%(cnt)d συνολικές υποβολές." #: resources/user_profile.js:69 msgid "%(cnt)d submission in the last year" msgid_plural "%(cnt)d submissions in the last year" msgstr[0] "" -msgstr[1] "" +msgstr[1] "%(cnt)d υποβολές το τελευταίο έτος." #: resources/user_profile.js:74 msgid "%(cnt)d submission in %(year)d" msgid_plural "%(cnt)d submissions in %(year)d" msgstr[0] "" -msgstr[1] "" +msgstr[1] "%(cnt)d υποβολές σε %(year)d." #: resources/user_profile.js:88 msgid "%(cnt)d submission on %(date)s" msgid_plural "%(cnt)d submissions on %(date)s" msgstr[0] "" -msgstr[1] "" +msgstr[1] "%(cnt)d υποβολές στις %(date)s." diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 4c97b8e3b2..c1c4ae4020 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-06-13 00:53+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,121 +18,121 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "" msgstr[1] "" -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "" msgstr[1] "" -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +356,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "" @@ -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 "" @@ -524,7 +524,8 @@ msgstr "" msgid "Comment body" msgstr "" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "" @@ -759,108 +760,118 @@ msgstr "" msgid "N j, Y, g:i a" msgstr "" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -917,7 +928,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "" @@ -925,7 +936,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "" @@ -935,7 +946,7 @@ msgid "" "authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "" @@ -973,12 +984,12 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "" @@ -986,12 +997,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "" @@ -1118,11 +1129,11 @@ msgid "" "not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "" @@ -1152,7 +1163,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "" @@ -1173,7 +1184,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1188,7 +1199,7 @@ msgid "" "contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "" @@ -1243,214 +1254,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1502,7 +1513,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1555,7 +1566,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "" @@ -1567,7 +1578,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "" @@ -1604,7 +1615,7 @@ msgstr "" msgid "license text" msgstr "" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "" @@ -1644,272 +1655,272 @@ msgstr "" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "" "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "" "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) " "are supported." msgstr "" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "" "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 " "kilobytes)." msgstr "" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "" "Points awarded for problem completion. Points are displayed with a 'p' " "suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "" "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1935,7 +1946,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 +2123,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:381 msgid "organization" msgstr "" @@ -2153,7 +2164,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:389 msgid "class" msgstr "" @@ -2178,26 +2189,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 +2222,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2657,15 +2672,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:282 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "" @@ -2673,141 +2688,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2871,16 +2886,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2937,6 +2942,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -3025,45 +3035,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3082,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 "" @@ -3207,219 +3217,219 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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:324 #, 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:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "" "You have been declared persona non grata for this problem. You are " "permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3478,17 +3488,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 +3532,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,77 +3548,77 @@ 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 "" #: judge/views/status.py:108 -msgid "Version matrix" +msgid "Version" msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3663,99 +3673,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 +3798,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 +3824,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 +4066,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 +4155,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 +4387,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 +4395,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 +4565,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 +4772,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 +4808,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 +4882,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 +5055,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 +5096,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 +5133,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 +5143,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 +5155,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 +5411,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 +5426,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 +5501,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 +5524,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 +5547,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 "" @@ -5617,7 +5623,7 @@ msgid "Judges" msgstr "" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" +msgid "Versions" msgstr "" #: templates/submission/info-base.html:8 @@ -5648,23 +5654,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 +5834,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 +5914,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..bcc57f7fcf 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -17,121 +17,121 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Catalán" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Alemán" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Griego" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Inglés" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Español" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Francés" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Croata" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Húngaro" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Japonés" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Coreano" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "Portugués (Brasil)" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Rumano" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Ruso" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Serbio (Latino)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Turco" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Vietnamita" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Chino Simplificado" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "Contenido" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "%d comentario oculto con éxito." msgstr[1] "%d comentarios ocultos con éxito." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Ocultar comentarios" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "%d comentario desocultado con éxito." msgstr[1] "%d comentarios desocultados con éxito." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Mostrar comentarios" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" msgstr "Página asociada" @@ -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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +355,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "problema" @@ -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" @@ -523,7 +523,8 @@ msgstr "Juez en Línea" msgid "Comment body" msgstr "Cuerpo del comentario" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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." @@ -739,108 +740,118 @@ msgstr "Ya existe un concurso con esta clave primaria." msgid "N j, Y, g:i a" msgstr "j N Y, g:i a" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "el {time}" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 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+$" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "comentador" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "hora de publicación" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "página asociada" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "votos" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "cuerpo del comentario" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "oculto" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "padre" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "revisiones" + +#: judge/models/comment.py:39 msgid "comment" msgstr "comentario" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "comentarios" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "Editorial para %s" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "voto del comentario" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "votos del comentario" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "Saltarse el bloqueo del comentario" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -897,7 +908,7 @@ msgid "contest name" msgstr "nombre del concurso" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "autores" @@ -905,7 +916,7 @@ msgstr "autores" msgid "These users will be able to edit the contest." msgstr "Estos usuarios serán capaces de editar el concurso." -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "curadores" @@ -913,7 +924,7 @@ msgstr "curadores" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "Estos usuarios serán capaces de editar el concurso, pero no serán listados como autores." -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "probadores" @@ -949,12 +960,12 @@ msgstr "" msgid "description" msgstr "descripción" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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" @@ -962,12 +973,12 @@ msgstr "hora de inicio" msgid "end time" msgstr "hora final" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "límite de tiempo" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "publicidad visible" @@ -1087,11 +1098,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "privado para organizaciones" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "organizaciones" @@ -1121,7 +1132,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "Imagen de OpenGraph" @@ -1141,7 +1152,7 @@ msgstr "la cantidad de participantes en vivo" msgid "contest summary" msgstr "resumen del concurso" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "Texto sin formato, que se muestra en la etiqueta de metadescripción, por ejemplo, para las redes sociales." @@ -1154,7 +1165,7 @@ msgstr "código de acceso" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "Un código opcional para incitar a los concursantes antes de que se les permita unirse al concurso. Déjelo en blanco para desactivar." -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "persona no grata" @@ -1202,213 +1213,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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" @@ -1460,7 +1471,7 @@ msgstr "título del post" msgid "slug" msgstr "slug" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "visibilidad pública" @@ -1513,7 +1524,7 @@ msgstr "nombre de categoría de problema" msgid "problem type" msgstr "tipo de problema" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "tipos de problema" @@ -1525,7 +1536,7 @@ msgstr "ID de grupo de problema" msgid "problem group name" msgstr "nombre de grupo de problema" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "grupo de problema" @@ -1562,7 +1573,7 @@ msgstr "URL al icono." msgid "license text" msgstr "texto de licencia" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "licencia" @@ -1602,264 +1613,264 @@ msgstr "nombre del problema" msgid "The full name of the problem, as shown in the problem list." msgstr "El nombre completa del problema, tal y como saldrá en la lista de problemas." -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "cuerpo del problema" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "creadores" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "Estos usuarios serán capaces de editar el problema, y serán listados como autores." -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "Estos usuarios serán capaces de editar el problema, pero no serán listados como autores." -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "Estos usuarios podrán ver el problema privado, pero no podrán editarlo." -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "El tipo de problema, tal y como se verá en la página del problema." -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "El grupo del problema, visto como Categoría en la lista de problemas." -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "El límite de tiempo para este problema, en segundos. Los segundos fraccionarios (por ejemplo, 1.5) están permitidos." -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "límite de memoria" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "La memoria límite para este problema, en kilobytes (e.g. 256mb = 262144 kilobytes)." -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "circuito corto" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "Puntos otorgados por completar el problema. Si los puntos son parciales (pasar un caso de prueba da puntos aunque el resto no se hayan pasado) se muestran con el sufijo 'p'." -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "permitir puntos parciales" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "lenguajes permitidos" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "Lista de lenguajes en el que se permite el envío." -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "manejado manualmente" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "Si los jueces se les permite administrar los datos manualmente o no." -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "fecha de publicación" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "No tiene la habilidad mágica para publicar automáticamente debido a la compatibilidad con versiones anteriores." -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "Prohíbe a los usuarios seleccionados enviar soluciones a este problema." -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "La licencia bajo la que este problema ha sido publicado." -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "resumen del problema" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "número de usuarios" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "El número de usuarios que ha resuelto este problema." -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "porcentaje de solucionados" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "permitir acceso completo al markdown" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "visibilidad de la fuente de envío" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "Si privado, solo estas organizaciones pueden ver el problema." -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "Ver problemas ocultos" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "Editar problemas propios" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "Editar todos los problemas" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "Editar todos los problemas públicos" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "Editar problemas con markup completo" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Clonar problema" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "Cambiar campo is_public" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "Cambiar campo is_manually_managed" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "Ver problemas privados para la organización" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "lenguaje" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "nombre traducido" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "descripción traducida" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "traducción del problema" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "traducciones del problema" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "problema aclarado" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "cuerpo de la aclaración" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "hora de la aclaración" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "aclaración del problema" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "aclaraciones del problema" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "límite de recursos específicos del lenguaje" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "límites de recursos específicos del lenguaje" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "problema asociado" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "fecha de publicación" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "contenido editorial" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "Ver soluciones ocultas" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "solución" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "soluciones" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "puntos propuestos" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "votante" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "nota" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "Justificación del valor de puntos del problema." -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "voto del problema" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "votos del problema" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "Voto por puntos de %(voter)s para %(problem)s" @@ -1885,8 +1896,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 +2068,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:381 msgid "organization" msgstr "organización" @@ -2098,7 +2109,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:389 msgid "class" msgstr "clase" @@ -2123,26 +2134,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 +2167,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:335 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:336 msgid "Edit TOTP settings" msgstr "Editar ajustes TOTP" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "perfil del usuario" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "perfiles de usuarios" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "nombre de dispositivo" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "ID de credencial" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "clave pública" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "contador de señales" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "Credencial de WebAuthn: %(name)s" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "credencial de WebAuthn" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "credenciales de WebAuthn" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "tiempo de solicitud" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "estado" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 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:386 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:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Rechazado" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "razón" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "solicitud de adhesión a la organización" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "solicitudes de adhesión a la organización" @@ -2588,15 +2603,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:282 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:283 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:284 msgid "points granted" msgstr "puntos otorgados" @@ -2604,141 +2619,141 @@ msgstr "puntos otorgados" msgid "submission language" msgstr "lenguaje del envío" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "estatus" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "resultado" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "errores de compilación" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "casos de lotes" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "puntos de caso de prueba" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "total de puntos del caso de prueba" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "juzgado en" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "hora del envío del juez" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "solo se ejecutó en pruebas previas" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "bloqueo de envío" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "Envío %(id)d de %(problem)s por %(user)s" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "Abortar cualquier envío" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "Rejuzgar el envío" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "Rejuzgar un montón de envíos" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "Enviar sin límite" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "Ver todos los envíos" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "Reenviar el envío de otros" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "Cambiar el estado de bloqueo del envío" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "envíos" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "envío asociado" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "código fuente" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "Fuente de %(submission)s" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "fuente de envío" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "fuentes de envío" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "ID de caso de prueba" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "indicador de estado" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "puntos posibles" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "número de lote" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "respuesta del juez" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "respuesta extendida del juez" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "salida del programa" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "caso de prueba del envío" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "casos de prueba del envío" @@ -2802,16 +2817,6 @@ msgstr "mensaje de ticket" msgid "ticket messages" msgstr "mensajes de ticket" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "Página [page] de [topage]" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "Página %s de %s" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2868,6 +2873,11 @@ msgstr "Preparando sus datos de envío" msgid "Preparing your comment data" msgstr "Preparando los datos de tus comentarios" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "Página {page_number} de {total_pages}" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "No se permiten lotes vacíos." @@ -2956,45 +2966,45 @@ 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" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "¿Nos aburrimos, eh?" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "Debes resolver como mínimo un problema antes de poder votar." -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "Comentario no encontrado." -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "Ya has votado." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "Editado desde sitio" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3013,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" @@ -3136,217 +3146,217 @@ msgstr "página corrupta %s" msgid "Runtimes" msgstr "Tiempo de ejecución" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "Ninguna organización" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "No se encontró una organización con la clave \"%s\"." -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 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:98 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:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "Unirse a la organización" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "Ya estas en esta organización." -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "Esta organización no está abierta." -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "Abandonar organización" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, 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:216 judge/views/organization.py:478 #, 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:217 judge/views/organization.py:479 #, 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:230 #, python-format msgid "Request to join %s" msgstr "Solicitar para unirse %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "Únete a detalle de la solicitud" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "Gestionar solicitudes de unirse para %s" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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:324 #, 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:339 #, 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:340 #, 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:370 #, python-format msgid "Editing %s" msgstr "Editando %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "No se puede editar la organización" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 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:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "No se puede expulsar al usuario" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 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:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Clase {name} en {organization}" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Clase {name} - {organization}" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "No existe ese problema" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "Editorial para {0}" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "No hay tal editorial" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, 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:239 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:262 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:265 msgid "success" msgstr "éxito" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "Enviar a %s" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "Ha enviado demasiados envíos." -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "Esta prohibido enviarlo" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "Usted ha sido declarado persona no grata por este problema. Usted está permanentemente impedido de enviar a este problema." -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "Demasiados envíos" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "Usted ha excedido el límite de envíos para este problema." -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "¿Quieres que te banee?" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "Clonar Problema" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3405,17 +3415,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 +3455,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,77 +3471,77 @@ 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" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "Matriz de versiones" +msgid "Version" +msgstr "Versión" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "Permiso denegado. Resolver %(problem)s para verlo." -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "No se puede acceder al envío" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "Permiso denegado." -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "Envío de %(problem)s por %(user)s" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "Todos los envíos" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "Todos mis envíos" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, 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:434 judge/views/submission.py:437 #, 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:498 judge/views/submission.py:505 #, 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:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, 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:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, 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 +3596,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 +3721,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 +3747,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 +3989,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 +4078,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 +4293,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 +4301,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 +4466,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 +4665,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 +4701,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 +4771,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 +4941,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 +4982,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 +5019,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 +5029,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 +5041,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 +5273,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 +5286,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 +5357,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 +5376,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 +5394,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." @@ -5462,8 +5468,8 @@ msgid "Judges" msgstr "Jueces" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "Matriz de Versiones" +msgid "Versions" +msgstr "Versiones" #: templates/submission/info-base.html:8 #, python-format @@ -5491,23 +5497,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 +5677,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 +5754,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..432abc3349 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:53\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -17,121 +17,121 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Catalan" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Allemand" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Grec" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Anglais" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Espagnol" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Français" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Croate" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Hongrois" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Japonais" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Coréen" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "Portugais Brésilien" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Roumain" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Russe" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Serbe (Latin)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Turc" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Vietnamien" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Chinois Simplifié" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "Contenu" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "%d commentaire caché avec succès." msgstr[1] "%d commentaires cachés avec succès." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Cacher les commentaires" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "%d commentaire non caché avec succès." msgstr[1] "%d commentaires non cachés avec succès." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Décacher les commentaires" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" msgstr "Page associée" @@ -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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +355,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "problème" @@ -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é" @@ -523,7 +523,8 @@ msgstr "Juge en Ligne" msgid "Comment body" msgstr "Corps du commentaire" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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é." +msgstr "Aucun défi WebAuthn émis." -#: judge/forms.py:233 +#: judge/forms.py:234 msgid "Invalid WebAuthn credential ID." -msgstr "" +msgstr "Identifiant d'identification WebAuthn invalide." -#: 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à." @@ -739,108 +740,118 @@ msgstr "Le concours avec la clé existe déjà." msgid "N j, Y, g:i a" msgstr "j N Y, G \\h i" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "le {time}" - #: judge/jinja2/rating.py:24 msgid "Unrated" msgstr "Non évalué" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "Suivre le thème du site" + +#: 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/comment.py:25 +#: 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:23 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+$" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "commentateur" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "date de publication" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "page associée" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "votes" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "corps du commentaire" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "caché" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "parent" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "révisions" + +#: judge/models/comment.py:39 msgid "comment" msgstr "commentaire" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "commentaires" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "Éditorial pour %s" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "%(page)s par %(user)s" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "vote de commentaire" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "votes de commentaires" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "Ignorer le verrouillage du commentaire" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "verrouillage du commentaire" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "verrouillages des commentaires" @@ -897,7 +908,7 @@ msgid "contest name" msgstr "nom du concours" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "auteurs" @@ -905,7 +916,7 @@ msgstr "auteurs" msgid "These users will be able to edit the contest." msgstr "Ces utilisateurs pourront modifier le concours." -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "conservateurs" @@ -913,7 +924,7 @@ msgstr "conservateurs" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "Ces utilisateurs pourront modifier le concours, mais ne seront pas listés comme auteurs." -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "testeurs" @@ -949,12 +960,12 @@ msgstr "Ces utilisateurs pourront observer le concours, mais ne pourront pas voi msgid "description" msgstr "description" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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" @@ -962,18 +973,18 @@ msgstr "heure de début" msgid "end time" msgstr "heure de fin" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "limite de temps" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "visible publiquement" #: judge/models/contest.py:94 msgid "Should be set even for organization-private contests, where it determines whether the contest is visible to members of the specified organizations." -msgstr "" +msgstr "Doit être activé même pour les concours privés d'organisation, où il détermine si le concours est visible par les membres des organisations spécifiées." #: judge/models/contest.py:97 msgid "contest rated" @@ -993,11 +1004,11 @@ msgstr "Ces utilisateurs pourront voir le tableau de bord." #: judge/models/contest.py:102 msgid "can see contest submissions" -msgstr "" +msgstr "peut voir les soumissions de concours" #: judge/models/contest.py:104 msgid "These users will be able to see in-contest submissions." -msgstr "Ces utilisateurs pourront voir les soumissions dans le concours." +msgstr "Ces utilisateurs pourront voir les soumissions effectuées pendant le concours." #: judge/models/contest.py:106 msgid "scoreboard visibility" @@ -1087,11 +1098,11 @@ msgstr "afficher les paramètres du formulaire court" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "Afficher ou non une section contenant les paramètres du concours sur la page du concours." -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "privés aux organisations" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "organisations" @@ -1121,7 +1132,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "Si privé aux organisations, seules ces classes peuvent voir le concours." #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "image OpenGraph" @@ -1141,7 +1152,7 @@ msgstr "le nombre de participants en direct" msgid "contest summary" msgstr "résumé du concours" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "Texte simple, affiché dans la meta description, par exemple pour les réseaux sociaux." @@ -1152,9 +1163,9 @@ msgstr "code d'accès" #: judge/models/contest.py:158 msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." -msgstr "" +msgstr "Un code facultatif pour demander aux concurrents avant qu'ils soient autorisés à rejoindre le concours. Laissez-le vide pour le désactiver." -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "personae non gratae" @@ -1184,7 +1195,7 @@ msgstr "script d'étiquette du problème du concours" #: judge/models/contest.py:169 msgid "A custom Lua function to generate problem labels. Requires a single function with an integer parameter, the zero-indexed contest problem index, and returns a string, the label." -msgstr "" +msgstr "Une fonction Lua personnalisée pour générer des étiquettes de problème. Requiert une fonction unique avec un paramètre entier, l'indice du problème de concours indexé à partir de zéro, et retourne une chaîne, l'étiquette." #: judge/models/contest.py:172 msgid "contest lock" @@ -1192,7 +1203,7 @@ msgstr "verrouillage du concours" #: judge/models/contest.py:173 msgid "Prevent submissions from this contest from being rejudged after this date." -msgstr "" +msgstr "Empêche les soumissions de ce concours d'être rejugées après cette date." #: judge/models/contest.py:175 msgid "precision points" @@ -1202,213 +1213,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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" @@ -1460,7 +1471,7 @@ msgstr "titre de l'article" msgid "slug" msgstr "slug" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "visibilité publique" @@ -1513,7 +1524,7 @@ msgstr "nom de la catégorie de problème" msgid "problem type" msgstr "type de problème" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "types de problème" @@ -1525,7 +1536,7 @@ msgstr "ID du groupe de problème" msgid "problem group name" msgstr "nom du groupe de problème" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "groupe de problème" @@ -1562,7 +1573,7 @@ msgstr "URL de l'icône." msgid "license text" msgstr "texte de la licence" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "licence" @@ -1602,264 +1613,264 @@ msgstr "nom du problème" msgid "The full name of the problem, as shown in the problem list." msgstr "Le nom complet du problème, tel qu'il apparaît dans la liste des problèmes." -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "corps du problème" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "créateurs" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "Ces utilisateurs pourront modifier le problème et seront listés comme auteurs." -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "Ces utilisateurs pourront modifier le problème, mais ne seront pas listés comme auteurs." -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "Ces utilisateurs pourront voir le problème privé, mais pas le modifier." -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "Le type de problème, comme indiqué sur la page du problème." -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "Le groupe de problème, indiqué sous Catégorie dans la liste des problèmes." -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "La limite de temps pour ce problème, en secondes. Les fractions de secondes (par exemple 1.5) sont acceptées." -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "limite de mémoire" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "La limite de mémoire pour ce problème, en kilo-octets (par exemple, 256 Mo = 262144 Ko)." -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "court circuit" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "Points attribués pour la résolution du problème. Les points sont affichés avec un suffixe 'p' si partiel." -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "permet des points partiels" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "langages autorisés" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "Liste des langages de soumission autorisés." -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "géré manuellement" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "Si les juges devraient être autorisés à gérer les données ou non." -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "date de publication" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "Ne dispose pas de la capacité magique d'autopublication pour des raisons de rétrocompatibilité." -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "Bannit les utilisateurs sélectionnés de soumettre à ce problème." -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "La licence sous laquelle ce problème est publié." -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "résumé du problème" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "nombre d'utilisateurs" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "Le nombre d'utilisateurs qui ont résolu le problème." -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "taux de résolution" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "autoriser l'accès complet au markdown" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "visibilité de la source de soumission" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "Si privé, seuls ces organisations peuvent voir le problème." -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "Voir les problèmes cachés" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "Modifier ses propres problèmes" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "Modifier tous les problèmes" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "Modifier tous les problèmes publics" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "Modifier les problèmes avec le markup complet" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Cloner problème" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "Changer le champ is_public" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "Changer le champ is_manually_managed" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "Voir les problèmes privés des organisations" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "langue" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "nom traduit" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "description traduite" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "traduction du problème" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "traductions du problème" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "problème clarifié" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "corps de la clarification" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "horodatage de clarification" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "clarification de problème" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "clarifications de problème" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "limite de ressources spécifiques à un langage" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "limites de ressources spécifiques à un langage" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "problème associé" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "date de publication" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "contenu éditorial" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "Voir les solutions cachées" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "solution" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "solutions" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "points proposés" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "Le nombre de points que le votant estime que ce problème mérite." -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "votant" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "date de vote" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." -msgstr "" +msgstr "L'heure à laquelle ce vote a été exprimé." -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "note" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." -msgstr "" +msgstr "Justification pour la valeur de point de problème." -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "vote de problème" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "votes de problème" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "Vote de points par %(voter)s pour %(problem)s" @@ -1885,8 +1896,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" @@ -1938,7 +1949,7 @@ msgstr "Arguments du vérificateur en tant qu'objet JSON." #: judge/models/problem_data.py:79 msgid "problem data set" -msgstr "" +msgstr "ensemble de données de problème" #: judge/models/problem_data.py:81 msgid "case position" @@ -2046,7 +2057,7 @@ msgstr "Si les membres sont obligés de sélectionner une classe lors de leur ad #: judge/models/profile.py:67 msgid "Class membership cannot be enforced when organization has open enrollment." -msgstr "" +msgstr "L'appartenance à la classe ne peut pas être imposée lorsque l'organisation a une inscription ouverte." #: judge/models/profile.py:95 msgid "Administer organizations" @@ -2057,7 +2068,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:381 msgid "organization" msgstr "organisation" @@ -2098,7 +2109,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:389 msgid "class" msgstr "classe" @@ -2123,26 +2134,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 +2167,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 "" +msgstr "interdit de voter sur les valeurs de point de problème" -#: judge/models/profile.py:173 +#: judge/models/profile.py:174 msgid "User will not be able to vote on problems' point values." -msgstr "" +msgstr "L'utilisateur ne pourra pas voter sur les valeurs de point de problème." -#: 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." +msgstr "Le moteur de rendu utilisé pour afficher les mathématiques." -#: judge/models/profile.py:184 +#: judge/models/profile.py:185 msgid "TOTP 2FA enabled" -msgstr "" +msgstr "TOTP A2F activé" -#: 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 "" +msgstr "WebAuthn A2F activé" -#: 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 "" +msgstr "Clé encodée en Base32 de 32 caractères pour TOTP." -#: 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 "" +msgstr "Tableau JSON de codes encodés en Base32 de 16 caractères pour les codes 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 "" +msgstr "Les codes scratch doivent être vides ou être un tableau JSON de codes Base32 de 16 caractères." -#: judge/models/profile.py:199 +#: judge/models/profile.py:200 msgid "last TOTP timecode" -msgstr "" +msgstr "dernier timecode TOTP" -#: judge/models/profile.py:200 +#: judge/models/profile.py:201 msgid "API token" -msgstr "Jeton API" +msgstr "jeton API" -#: judge/models/profile.py:201 +#: judge/models/profile.py:202 msgid "64-character hex-encoded API access token." -msgstr "" +msgstr "Jeton d'accès API encodé en hexadécimal de 64 caractères." -#: judge/models/profile.py:203 +#: judge/models/profile.py:204 msgid "API token must be None or hexadecimal" -msgstr "" +msgstr "Le jeton API doit être None ou hexadécimal" -#: 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:335 msgid "Shows in-progress development stuff" -msgstr "" +msgstr "Affiche les éléments en cours de développement" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "Modifier les paramètres TOTP" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "profil utilisateur" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "profils utilisateur" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "nom de l'appareil" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" -msgstr "" +msgstr "ID de l'identification" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "clé publique" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" -msgstr "" +msgstr "compteur de signature" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "Identifiant WebAuthn : %(name)s" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "identifiant WebAuthn" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "identifiants WebAuthn" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" -msgstr "" +msgstr "heure de la demande" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "état" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 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:386 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:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Rejeté" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "raison" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "demande d'adhésion de l'organisation" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "demandes d'adhésion de l'organisation" @@ -2355,7 +2370,7 @@ msgstr "identifiant court" #: judge/models/runtime.py:20 msgid "The identifier for this language; the same as its executor id for judges." -msgstr "" +msgstr "L'identificateur pour ce langage ; le même que son identifiant d'exécuteur pour les juges." #: judge/models/runtime.py:22 msgid "long name" @@ -2367,7 +2382,7 @@ msgstr "Nom plus long pour le langage, par exemple « Python 2 » ou « C++11 » #: judge/models/runtime.py:25 msgid "More readable, but short, name to display publicly; e.g. \"PY2\" or \"C++11\". If left blank, it will default to the short identifier." -msgstr "" +msgstr "Nom plus lisible, mais court, à afficher publiquement ; par exemple « PY2 » ou « C++11 ». S'il est laissé vide, il sera défini par défaut sur l'identificateur court." #: judge/models/runtime.py:29 msgid "common name" @@ -2403,11 +2418,11 @@ msgstr "Modèle de code à afficher dans l'éditeur de soumission." #: judge/models/runtime.py:39 msgid "runtime info override" -msgstr "" +msgstr "remplacement d'informations d'exécution" #: judge/models/runtime.py:40 msgid "Do not set this unless you know what you're doing! It will override the usually more specific, judge-provided runtime info!" -msgstr "" +msgstr "Ne pas définir à moins que vous sachiez ce que vous faites ! Cela remplacera les informations d'exécution généralement plus spécifiques fournies par le juge !" #: judge/models/runtime.py:42 msgid "language description" @@ -2431,23 +2446,23 @@ msgstr "langages" #: judge/models/runtime.py:116 msgid "language to which this runtime belongs" -msgstr "" +msgstr "langage auquel cette exécution appartient" #: judge/models/runtime.py:117 msgid "judge on which this runtime exists" -msgstr "" +msgstr "juge sur lequel cette exécution existe" #: judge/models/runtime.py:118 msgid "runtime name" -msgstr "" +msgstr "nom d'exécution" #: judge/models/runtime.py:119 msgid "runtime version" -msgstr "" +msgstr "version d'exécution" #: judge/models/runtime.py:120 msgid "order in which to display this runtime" -msgstr "" +msgstr "ordre d'affichage de cette exécution" #: judge/models/runtime.py:124 msgid "judge name" @@ -2455,7 +2470,7 @@ msgstr "nom du juge" #: judge/models/runtime.py:124 msgid "Server name, hostname-style." -msgstr "" +msgstr "Nom du serveur, de style nom d'hôte." #: judge/models/runtime.py:126 msgid "time of creation" @@ -2479,11 +2494,11 @@ msgstr "Si ce juge doit être empêché de se connecter, même si sa clé est co #: judge/models/runtime.py:132 msgid "disable judge" -msgstr "" +msgstr "désactiver le juge" #: judge/models/runtime.py:133 msgid "Whether this judge should be removed from judging queue." -msgstr "" +msgstr "Si ce juge doit être supprimé de la file d'attente de jugement." #: judge/models/runtime.py:134 msgid "judge online status" @@ -2588,15 +2603,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:282 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:283 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:284 msgid "points granted" msgstr "points accordés" @@ -2604,141 +2619,141 @@ msgstr "points accordés" msgid "submission language" msgstr "langage de soumission" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "statut" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "résultat" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "erreurs de compilation" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "cas en lot" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "points de cas de test" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "points totaux de cas de test" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "jugée le" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "heure de jugement de la soumission" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" -msgstr "" +msgstr "dernière date de rejugement par l'administrateur" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "a été exécuté sur les prétests seulement" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "verrouillage de la soumission" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "Soumission %(id)d de %(problem)s par %(user)s" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "Abandonner toute soumission" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "Rejuger la soumission" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "Rejuger beaucoup de soumissions" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "Soumettre sans limite" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "Voir toutes les soumissions" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "Resoumettre la soumission des autres" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "Changer le statut de verrouillage de la soumission" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "soumissions" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "soumission associée" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "code source" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "Source de %(submission)s" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "source de soumission" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "sources de soumission" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "ID du cas de test" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "indicateur de statut" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "points possibles" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "numéro de lot" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "commentaires du juge" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "commentaires étendus du juge" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "sortie du programme" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "cas de test de la soumission" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "cas de test de la soumission" @@ -2802,16 +2817,6 @@ msgstr "message de ticket" msgid "ticket messages" msgstr "messages de ticket" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "Page [page] sur [topage]" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "Page %s sur %s" - #: judge/ratings.py:194 msgid "Newbie" msgstr "Débutant" @@ -2854,7 +2859,7 @@ msgstr "Modification des soumissions" #: judge/tasks/submission.py:60 msgid "Recalculating user points" -msgstr "" +msgstr "Recalcul des points de l'utilisateur" #: judge/tasks/user.py:49 msgid "Applying filters" @@ -2868,6 +2873,11 @@ msgstr "Préparation des données de vos soumissions" msgid "Preparing your comment data" msgstr "Préparation des données de vos commentaires" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "Page {page_number} sur {total_pages}" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "Les lots vides ne sont pas autorisés." @@ -2875,7 +2885,7 @@ msgstr "Les lots vides ne sont pas autorisés." #: judge/utils/problem_data.py:82 #, python-format msgid "Points must be defined for non-batch case #%d." -msgstr "" +msgstr "Les points doivent être définis pour le cas non-lot #%d." #: judge/utils/problem_data.py:87 #, python-format @@ -2890,12 +2900,12 @@ msgstr "Le fichier de sortie pour le cas %d n'existe pas : %s" #: judge/utils/problem_data.py:115 #, python-format msgid "Batch start case #%d requires points." -msgstr "" +msgstr "Le début du lot au cas #%d nécessite des points." #: judge/utils/problem_data.py:136 #, python-format msgid "Attempt to end batch outside of one in case #%d." -msgstr "" +msgstr "Tentative de terminer le lot en dehors du cas #%d." #: judge/utils/problem_data.py:154 msgid "How did you corrupt the zip path?" @@ -2956,45 +2966,45 @@ 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" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "En train de déconner, hein ?" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "Vous devez résoudre au moins un problème avant de pouvoir voter." -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "Commentaire non trouvé." -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "Vous ne pouvez pas voter sur vos propres commentaires." -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "Vous avez déjà voté." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "Modifié à partir du site" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3013,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" @@ -3136,217 +3146,217 @@ msgstr "page corrompue %s" msgid "Runtimes" msgstr "Temps d'exécution" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "Cette organisation n'existe pas" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "Impossible de trouver une organisation avec la clé « %s »." -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 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:98 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:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "Rejoindre l'organisation" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "Vous êtes déjà dans l'organisation." -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "Cette organisation n'est pas ouverte." -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "Quitter l'organisation" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, 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:216 judge/views/organization.py:478 #, 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:217 judge/views/organization.py:479 #, 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:230 #, python-format msgid "Request to join %s" msgstr "Demande d'adhésion à %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "Détails de la demande d'adhésion" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, 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:322 #, 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:324 #, 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:339 #, 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:340 #, 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:370 #, python-format msgid "Editing %s" -msgstr "" +msgstr "Édition de %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "Impossible de modifier l'organisation" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 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:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "Impossible d'expulser cet utilisateur" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 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:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Classe {name} dans {organization}" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Classe {name} - {organization}" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, 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:71 msgid "No such problem" msgstr "Ce problème n'existe pas" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "Éditorial pour {0}" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "Cet éditorial n'existe pas" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, 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:239 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:262 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:265 msgid "success" msgstr "réussi" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "Soumettre à %s" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "Vous avez soumis trop de soumissions." -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "Interdit de soumettre" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "Vous êtes persona non grata pour ce problème. Il vous est définitivement interdit de soumettre à ce problème." -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "Trop de soumissions" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "Vous avez dépassé la limite de soumission pour ce problème." -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "Voulez-vous que je vous bannisse ?" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "Cloner Problème" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "Problème cloné de %s" @@ -3405,17 +3415,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" @@ -3439,17 +3449,17 @@ msgstr "Le courriel « %s » est déjà prise. Une seule inscription est autoris #: judge/views/register.py:50 msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." -msgstr "" +msgstr "Votre fournisseur de courrier électronique n'est pas autorisé en raison d'un historique de mauvaise utilisation. Veuillez utiliser un fournisseur de courrier électronique réputé." #: judge/views/register.py:65 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,77 +3471,77 @@ 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" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "Matrice de version" +msgid "Version" +msgstr "Version" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." -msgstr "" +msgstr "Autorisation refusée. Résolvez %(problem)s pour pouvoir le visualiser." -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "Impossible d'accéder à la soumission" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." -msgstr "" +msgstr "Autorisation refusée." -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "Soumission de %(problem)s par %(user)s" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "Toutes les soumissions" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "Toutes mes soumissions" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, 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:434 judge/views/submission.py:437 #, 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:498 judge/views/submission.py:505 #, 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:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, 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:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, 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 +3596,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 +3721,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 +3747,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 +3989,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 +4078,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" @@ -4122,11 +4136,11 @@ msgstr "En observant, le concours se termine dans %(countdown)s." #: templates/contest/contest.html:35 #, python-format msgid "Participating virtually, %(countdown)s remaining." -msgstr "" +msgstr "Participation virtuelle, %(countdown)s restant." #: templates/contest/contest.html:37 msgid "Participating virtually." -msgstr "" +msgstr "Participation virtuelle en cours." #: templates/contest/contest.html:43 msgid "Contest is over." @@ -4279,7 +4293,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 +4301,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" @@ -4298,7 +4312,7 @@ msgstr "Êtes-vous sûr de vouloir rejoindre ?" #: templates/contest/list.html:18 msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." -msgstr "" +msgstr "Rejoindre un concours pour la première fois déclenche votre chronomètre, après quoi il devient incontrôlable." #: templates/contest/list.html:70 msgid "private" @@ -4364,11 +4378,11 @@ msgstr "Êtes-vous sûr de vouloir quitter ?" #: templates/contest/media-js.html:5 msgid "You cannot come back to a virtual participation. You will have to start a new one." -msgstr "" +msgstr "Vous ne pouvez pas revenir à une participation virtuelle. Vous devrez en commencer une nouvelle." #: templates/contest/media-js.html:10 msgid "Joining a contest starts your timer, after which it becomes unstoppable." -msgstr "" +msgstr "Rejoindre un concours déclenche votre chronomètre, après quoi il devient incontrôlable." #: templates/contest/media-js.html:16 #, python-format @@ -4452,19 +4466,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" @@ -4561,7 +4575,7 @@ msgstr "Êtes-vous sûr de vouloir quitter cette organisation ?" #: templates/organization/home.html:30 msgid "You will have to rejoin to show up on the organization leaderboard." -msgstr "" +msgstr "Vous devrez rejoindre à nouveau pour apparaître dans le tableau de classement de l'organisation." #: templates/organization/home.html:32 msgid "You will have to request membership in order to join again." @@ -4651,7 +4665,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 +4701,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 "" +msgstr "précision (chiffres décimaux)" -#: 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 +4771,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 +4941,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 +4982,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 +5019,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 +5029,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 +5041,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." @@ -5123,14 +5129,14 @@ msgstr "Votre compte a été activé avec succès." #: templates/registration/activation_email.html:6 #, python-format msgid "Thanks for registering on the %(site_name)s! We're glad to have you." -msgstr "" +msgstr "Merci de vous être inscrit sur %(site_name)s ! Nous sommes ravis de vous avoir parmi nous." #: templates/registration/activation_email.html:8 #, python-format msgid "The last step is activating your account. Please activate your %(site_name)s account in the next %(count)s day." msgid_plural "The last step is activating your account. Please activate your %(site_name)s account in the next %(count)s days." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "La dernière étape est d'activer votre compte. Veuillez activer votre compte %(site_name)s dans le %(count)s prochain jour." +msgstr[1] "La dernière étape est d'activer votre compte. Veuillez activer votre compte %(site_name)s dans les %(count)s prochains jours." #: templates/registration/activation_email.html:14 #: templates/registration/activation_email.txt:8 @@ -5140,12 +5146,12 @@ msgstr "Veuillez cliquer sur le lien suivant pour activer votre compte :" #: templates/registration/activation_email.html:18 #: templates/registration/activation_email.txt:11 msgid "Alternatively, you can reply to this message to activate your account. Your reply must keep the following text intact for this to work:" -msgstr "" +msgstr "Alternativement, vous pouvez répondre à ce message pour activer votre compte. Votre réponse doit contenir le texte suivant pour que cela fonctionne :" #: templates/registration/activation_email.html:22 #, python-format msgid "See you soon! If you have problems activating your account, feel free to send us an email at %(email)s." -msgstr "" +msgstr "À bientôt ! Si vous rencontrez des problèmes pour activer votre compte, n'hésitez pas à nous envoyer un e-mail à %(email)s." #: templates/registration/activation_email.html:25 #: templates/registration/password_reset_email.html:17 @@ -5187,7 +5193,7 @@ msgstr "À plus tard !" #: templates/registration/password_change_done.html:3 msgid "Your password was successfully changed." -msgstr "Votre mot de passe a été modifié avec succès." +msgstr "Votre mot de passe a été changé avec succès." #: templates/registration/password_change_form.html:7 msgid "We found your password in [a database of compromised passwords][0]." @@ -5207,7 +5213,7 @@ msgstr "Envoyer un Email de Réinitialisation" #: templates/registration/password_reset_complete.html:3 msgid "Your password has been set. You may go ahead and log in now." -msgstr "" +msgstr "Votre mot de passe a été défini. Vous pouvez maintenant vous connecter." #: templates/registration/password_reset_confirm.html:9 msgid "Reset Password" @@ -5219,11 +5225,11 @@ msgstr "Lien de réinitialisation de mot de passe invalide." #: templates/registration/password_reset_done.html:4 msgid "We've emailed you instructions for setting your password. You should be receiving them shortly." -msgstr "" +msgstr "Nous vous avons envoyé un e-mail contenant des instructions pour définir votre mot de passe. Vous devriez le recevoir bientôt." #: templates/registration/password_reset_done.html:5 msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." -msgstr "" +msgstr "Si vous ne recevez pas d'e-mail, assurez-vous d'avoir entré l'adresse avec laquelle vous vous êtes inscrit et vérifiez votre dossier spam." #: templates/registration/password_reset_email.html:6 #, python-format @@ -5238,7 +5244,7 @@ msgstr "Pour réinitialiser le mot de passe de votre compte « %(username)s », #: templates/registration/password_reset_email.html:14 #, python-format msgid "See you soon! If you have problems resetting your password, feel free to shoot us an email at %(email)s." -msgstr "" +msgstr "À bientôt ! Si vous rencontrez des problèmes pour réinitialiser votre mot de passe, n'hésitez pas à nous envoyer un e-mail à %(email)s." #: templates/registration/password_reset_email.txt:1 #, python-format @@ -5267,7 +5273,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 +5286,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 +5357,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 +5376,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 +5394,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." @@ -5462,13 +5468,13 @@ msgid "Judges" msgstr "Juges" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "Matrice de Version" +msgid "Versions" +msgstr "Versions" #: templates/submission/info-base.html:8 #, python-format msgid "%(date)s on %(judge)s" -msgstr "" +msgstr "%(date)s sur %(judge)s" #: templates/submission/internal-error-message.html:3 #, python-format @@ -5491,23 +5497,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." @@ -5624,7 +5630,7 @@ msgstr "%(points)s/%(total)s points" #: templates/submission/status-testcases.html:161 msgid "Passing pretests does not guarantee a full score on system tests." -msgstr "" +msgstr "Le passage des prétests ne garantit pas un score complet sur les tests du système." #: templates/submission/status-testcases.html:164 msgid "Submission aborted!" @@ -5671,33 +5677,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 +5754,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 "" +msgstr "Les administrateurs de ce site exigent que tout le personnel ait l'authentification à deux facteurs activée, elle ne peut donc pas être désactivée pour le moment." -#: 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 "" +msgstr "Génération..." -#: 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 "" +msgstr "Cela invalidera tous les codes scratch précédents que vous avez." -#: 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é :" @@ -5904,7 +5914,7 @@ msgstr "pondérée %(percent)s (%(pp)spp)" #: templates/user/prepare-data.html:64 msgid "Are you sure you want to prepare a download?" -msgstr "" +msgstr "Êtes-vous sûr de vouloir préparer un téléchargement ?" #: templates/user/prepare-data.html:79 msgid "We are currently preparing your data." @@ -5921,7 +5931,7 @@ msgstr "Vous ne pouvez préparer un nouveau téléchargement de données qu'une #: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." -msgstr "" +msgstr "Une fois vos données prêtes, vous trouverez un lien de téléchargement sur cette page." #: templates/user/prepare-data.html:104 msgid "Submissions" diff --git a/locale/fr/LC_MESSAGES/djangojs.po b/locale/fr/LC_MESSAGES/djangojs.po index 304d1e8536..a47de1cf9f 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-04-25 00:45\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" @@ -65,8 +65,8 @@ msgstr[1] "%(cnt)d soumissions au total" #: resources/user_profile.js:69 msgid "%(cnt)d submission in the last year" msgid_plural "%(cnt)d submissions in the last year" -msgstr[0] "%(cnt)d soumission l'année dernière" -msgstr[1] "%(cnt)d soumissions l'année dernière" +msgstr[0] "%(cnt)d soumission au cours de la dernière année" +msgstr[1] "%(cnt)d soumissions au cours de la dernière année" #: resources/user_profile.js:74 msgid "%(cnt)d submission in %(year)d" diff --git a/locale/hr/LC_MESSAGES/django.po b/locale/hr/LC_MESSAGES/django.po index c9d906bbf2..978c8e313d 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:53\n" "Last-Translator: \n" "Language-Team: Croatian\n" "Language: hr_HR\n" @@ -17,99 +17,99 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Njemački" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Grčki" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Engleski" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Španjolski" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Francuski" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Hrvatski" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Mađarski" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Korejski" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Rumunjski" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Ruski" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Srpski (Latinica)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Turski" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Vijetnamski" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Pojednostavljeni Kineski" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "Sadržaj" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." @@ -117,11 +117,11 @@ msgstr[0] "%d komentar uspješno sakriven." msgstr[1] "%d komentara uspješno sakriven." msgstr[2] "%d komentara uspješno sakriveno." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Sakrij komentare" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." @@ -129,11 +129,11 @@ msgstr[0] "%d komentar uspješno otkriven." msgstr[1] "%d komentara uspješno otkriveno." msgstr[2] "%d komentara uspješno otkriveno." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Otkrij komentare" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" msgstr "Povezana stranica" @@ -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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +366,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "zadatak" @@ -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 "" @@ -536,7 +536,8 @@ msgstr "Evaluator" msgid "Comment body" msgstr "Tekst komentara" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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." @@ -756,108 +757,118 @@ msgstr "Već postoji natjecanje koje koristi taj ID." msgid "N j, Y, g:i a" msgstr "j. N Y. G:i" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "u {time}" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "ID stranice mora biti ^[pcs]:[a-z0-9]+$|^b:\\d+$" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "komentator" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "vrijeme objave" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "povezana stranica" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "glasova" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "tekst komentara" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "nadređeni komentar" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "revizije" + +#: judge/models/comment.py:39 msgid "comment" msgstr "komentar" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "komentari" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "Objašnjenje za %s" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -914,7 +925,7 @@ msgid "contest name" msgstr "naziv natjecanja" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "autori" @@ -922,7 +933,7 @@ msgstr "autori" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "" @@ -930,7 +941,7 @@ msgstr "" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "" @@ -966,12 +977,12 @@ msgstr "" msgid "description" msgstr "opis" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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" @@ -979,12 +990,12 @@ msgstr "vrijeme početka" msgid "end time" msgstr "vrijeme kraja" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "vremensko ograničenje" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "javno vidljivo" @@ -1104,11 +1115,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "privatno za organizacije" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "organizacije" @@ -1138,7 +1149,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "OpenGraph slika" @@ -1158,7 +1169,7 @@ msgstr "trenutni broj natjecatelja" msgid "contest summary" msgstr "sažetak natjecanja" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1171,7 +1182,7 @@ msgstr "" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "persona non grata" @@ -1219,213 +1230,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1477,7 +1488,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1530,7 +1541,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "" @@ -1542,7 +1553,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "" @@ -1579,7 +1590,7 @@ msgstr "" msgid "license text" msgstr "" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "" @@ -1619,264 +1630,264 @@ msgstr "ime zadatka" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "memorijsko ograničenje" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "Memorijsko ograničenje za ovaj zadatak, u kilobajtima (npr. 256mb = 262144 kilobajta)." -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "dopušteno djelomično bodovanje" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "dopušteni programski jezici" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "ručno upravljano" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "datum objave" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "sažetak zadatka" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "jezik" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1902,7 +1913,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 +2085,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:381 msgid "organization" msgstr "organizacija" @@ -2115,7 +2126,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:389 msgid "class" msgstr "" @@ -2140,26 +2151,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 +2184,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2605,15 +2620,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:282 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "" @@ -2621,141 +2636,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "status" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2819,16 +2834,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2885,6 +2890,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2976,45 +2986,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3033,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 "" @@ -3156,76 +3166,76 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 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:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "Zahtjev za pridruživanje %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3233,7 +3243,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:324 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3241,7 +3251,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3249,7 +3259,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3257,120 +3267,120 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "Uređivanje %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "Nije moguće urediti organizaciju" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 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:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "Nije moguće izbaciti korisnika" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 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:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "Previše poslanih rješenja" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3430,17 +3440,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 +3480,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,77 +3496,77 @@ 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" #: judge/views/status.py:108 -msgid "Version matrix" +msgid "Version" msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "Predano rješenje za zadatak %(problem)s od korisnika %(user)s" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "Sva predana rješenja" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "Sva moja predana rješenja" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, 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:434 judge/views/submission.py:437 #, 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:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3611,99 +3621,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 +3746,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 +3772,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 +4014,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 +4103,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 +4321,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 +4329,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 +4495,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 +4694,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 +4730,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 +4801,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 +4888,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 +4896,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 +4974,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 +5017,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 +5054,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 +5064,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 +5076,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 +5097,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 +5311,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 +5324,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 +5395,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 +5414,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 +5432,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 "" @@ -5500,7 +5506,7 @@ msgid "Judges" msgstr "" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" +msgid "Versions" msgstr "" #: templates/submission/info-base.html:8 @@ -5529,23 +5535,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 +5715,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 +5793,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..edd7c9b28f 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -17,121 +17,121 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Német" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Görög" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Angol" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Spanyol" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Francia" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Horvát" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Koreai" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Román" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Orosz" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Szerb (Latin)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Vietnami" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Egyszerűsített Kínai" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "Tartalom" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "%d hozzászólás sikeresen elrejtve." msgstr[1] "%d hozzászólás elrejtve." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Kommentek elrejtése" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "%d megjegyzés újra megjelenítve." msgstr[1] "%d megjegyzés újra megjelenítve." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Kommentek megjelenítése" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" msgstr "Kapcsolódó 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +355,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "feladat" @@ -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 "" @@ -523,7 +523,8 @@ msgstr "Online Tesztelő" 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/comments.py:47 judge/views/comment.py:41 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:176 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 "" @@ -739,108 +740,118 @@ msgstr "" msgid "N j, Y, g:i a" msgstr "Y. N j., G:i" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "{time}-kor" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "hozzászóló" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "hozzászólás ideje" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "kapcsolódó lap" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "szavazatok" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "hozzászólás törzse" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "előzmény" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "hozzászólás" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "hozzászólások" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "Megoldási útmutató %s-hez" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "hozzászólás értékelése" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "hozzászólás értékelései" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -897,7 +908,7 @@ msgid "contest name" msgstr "verseny neve" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "szerzők" @@ -905,7 +916,7 @@ msgstr "szerzők" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "kurátorok" @@ -913,7 +924,7 @@ msgstr "kurátorok" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "tesztelők" @@ -949,12 +960,12 @@ msgstr "" msgid "description" msgstr "leírás" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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" @@ -962,12 +973,12 @@ msgstr "kezdés" msgid "end time" msgstr "befejezés" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "időkorlát" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "nyilvánosan látható" @@ -1087,11 +1098,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "privát a csoport számára" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "csoportok" @@ -1121,7 +1132,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "OpenGraph kép" @@ -1141,7 +1152,7 @@ msgstr "az éles résztvevők száma" msgid "contest summary" msgstr "verseny összefoglaló" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1154,7 +1165,7 @@ msgstr "hozzáférési kód" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "nemkívánatos személy" @@ -1202,213 +1213,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1460,7 +1471,7 @@ msgstr "bejegyzés címe" msgid "slug" msgstr "csonk" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "láthatóság" @@ -1513,7 +1524,7 @@ msgstr "feladat kategória név" msgid "problem type" msgstr "feladat típus" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "feladat típusok" @@ -1525,7 +1536,7 @@ msgstr "feladat csoport azonosító" msgid "problem group name" msgstr "feladat csoport név" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "feladat csoport" @@ -1562,7 +1573,7 @@ msgstr "URL az ikonhoz." msgid "license text" msgstr "licenc szöveg" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "licenc" @@ -1602,264 +1613,264 @@ msgstr "feladat név" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "feladat törzs" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "szerzők" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "A feladat időlimitje másodpercekben. Tört másodperceket (pl. 1.5) is írhatunk." -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "memória korlát" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "A feladat memória limitje kilobyte-okban (pl. 256mb = 262144 kilobyte)." -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "részleges pontok engedélyezése" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "engedélyezett nyelvek" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "manuáisan kezelt" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "publikálás ideje" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "feladat összefoglaló" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Feladat klónozása" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "nyelv" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "lefordított név" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "lefordított leírás" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "feladat fordítás" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "feladat fordítások" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "pontosított feladat" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "pontosítás törzse" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "pontosítás időbélyege" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "nyelv specifikus erőforrás korlát" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "nyelv specifikus erőforrás korlátok" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "hozzárendelt probléma" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "publikálás dátuma" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "megoldási útmutató tartalom" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "megoldás" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "megoldások" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1885,8 +1896,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 +2068,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:381 msgid "organization" msgstr "csoport" @@ -2098,7 +2109,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:389 msgid "class" msgstr "" @@ -2123,26 +2134,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 +2167,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "felhasználói profil" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "felhasználói profilok" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "kérési idő" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "állapot" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 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:386 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:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Elutasítva" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "ok" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "csoport belépési kérelem" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "csoport belépési kérelmek" @@ -2588,15 +2603,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:282 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:283 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:284 msgid "points granted" msgstr "" @@ -2604,141 +2619,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "állapot" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "eredmény" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "fordítási hibák" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "teszteset pontjai" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "ezen tesztelve" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "forráskód" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "teszteset azonosító" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "tesztelési visszajelzés" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "program kimenet" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2802,16 +2817,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2868,6 +2873,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2956,45 +2966,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "Játszogatunk, he?" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "Már szavaztál." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "Szerkesztve az oldalról" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3013,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 "" @@ -3136,217 +3146,217 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "Nincs ilyen csoport" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "Nem található csoport a \"%s\" kulccsal." -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 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:98 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:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "Belépés a csoportba" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "Már benne vagy a csoportba." -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "Ez a csoport nem nyílt." -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "Csoport elhagyása" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, 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:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, 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:249 msgid "Join request detail" msgstr "Belépési kérés részletei" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, 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:322 #, 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:324 #, 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:339 #, 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:340 #, 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:370 #, python-format msgid "Editing %s" msgstr "%s szerkesztése" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "Nem lehet szerkeszteni a csoportot" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 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:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "Nem lehet kirúgni a felhasználót" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 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:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "Nincs ilyen feladat" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "Megoldás útmutató {0}-hez" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "Feltöltéstől eltiltott" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "Nemkívánatos személy vagy ennél a feladatnál, így örökre el vagy tiltva a feltöltéstől." -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "Túl sok feltöltés" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "Feladat Klónozása" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3405,17 +3415,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 +3455,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,77 +3471,77 @@ 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" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "Verzió mátrix" +msgid "Version" +msgstr "Verzió" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "Összes beküldés" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "Összes beküldésem" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3586,99 +3596,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 +3721,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 +3747,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 +3989,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 +4078,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 +4293,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 +4301,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 +4466,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 +4665,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 +4701,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 +4771,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 +4941,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 +4982,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 +5019,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 +5029,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 +5041,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 +5273,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 +5286,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 +5357,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 +5376,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 +5394,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 "" @@ -5462,8 +5468,8 @@ msgid "Judges" msgstr "Tesztelők" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "Verzió Mátrix" +msgid "Versions" +msgstr "Verziók" #: templates/submission/info-base.html:8 #, python-format @@ -5491,23 +5497,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 +5677,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 +5754,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..e0865694b8 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -17,121 +17,121 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Catalano" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Tedesco" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Greco" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Inglese" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Spagnolo" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Francese" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Croato" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Ungherese" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Giapponese" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Coreano" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Rumeno" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Russo" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Turco" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Vietnamita" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Cinese Semplificato" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "" msgstr[1] "" -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "" msgstr[1] "" -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +355,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "" @@ -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 "" @@ -523,7 +523,8 @@ msgstr "" msgid "Comment body" msgstr "" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "" @@ -739,108 +740,118 @@ msgstr "" msgid "N j, Y, g:i a" msgstr "" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -897,7 +908,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "" @@ -905,7 +916,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "" @@ -913,7 +924,7 @@ msgstr "" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "" @@ -949,12 +960,12 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "" @@ -962,12 +973,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "" @@ -1087,11 +1098,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "" @@ -1121,7 +1132,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "" @@ -1141,7 +1152,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1154,7 +1165,7 @@ msgstr "" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "" @@ -1202,213 +1213,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1460,7 +1471,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1513,7 +1524,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "" @@ -1525,7 +1536,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "" @@ -1562,7 +1573,7 @@ msgstr "" msgid "license text" msgstr "" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "" @@ -1602,264 +1613,264 @@ msgstr "" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1885,7 +1896,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 +2068,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:381 msgid "organization" msgstr "" @@ -2098,7 +2109,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:389 msgid "class" msgstr "" @@ -2123,26 +2134,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 +2167,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2588,15 +2603,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:282 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "" @@ -2604,141 +2619,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2802,16 +2817,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2868,6 +2873,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2956,45 +2966,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3013,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 "" @@ -3136,217 +3146,217 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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:324 #, 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:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3405,17 +3415,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 +3455,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,77 +3471,77 @@ 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 "" #: judge/views/status.py:108 -msgid "Version matrix" +msgid "Version" msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3586,99 +3596,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 +3721,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 +3747,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 +3989,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 +4078,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 +4293,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 +4301,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 +4466,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 +4665,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 +4701,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 +4771,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 +4941,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 +4982,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 +5019,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 +5029,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 +5041,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 +5273,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 +5286,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 +5357,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 +5376,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 +5394,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 "" @@ -5462,7 +5468,7 @@ msgid "Judges" msgstr "" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" +msgid "Versions" msgstr "" #: templates/submission/info-base.html:8 @@ -5491,23 +5497,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 +5677,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 +5754,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..0399b86ee8 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -17,119 +17,119 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "カタロニア語" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "ドイツ語" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "ギリシャ語" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "英語" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "スペイン語" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "フランス語" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "クロアチア語" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "ハンガリー語" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "日本語" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "韓国語" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "ポルトガル語(ブラジル)" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "ルーマニア語" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "ロシア語" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "セルビア語(ラテン)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "トルコ語" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "ベトナム語" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "簡体字中国語" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "ホーム" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "内容" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "%dコメントを正常に非表示にしました。" -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "コメントを非表示にする" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "%dコメントの非表示を正常に解除しました。" -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "コメントの非表示を解除する" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +344,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "課題" @@ -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 "" @@ -510,7 +510,8 @@ msgstr "オンライン判定" msgid "Comment body" msgstr "コメント本文" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "同じキーを持つコンテストはすでに存在しています。" @@ -722,108 +723,118 @@ msgstr "同じキーを持つコンテストはすでに存在しています。 msgid "N j, Y, g:i a" msgstr "Y年n月j日 G:i" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "{time}時点" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "ページコードは ^[pcs]:[a-z0-9]+$|^b:\\d+$ でなければなりません" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "コメンター" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "投稿時刻" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "関連するページ" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "投票" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "コメント本文" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "非表示" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "親" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "コメント" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "コメント" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "%s の論説" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "コメント投票" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "コメント投票" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -880,7 +891,7 @@ msgid "contest name" msgstr "コンテスト名" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "著者" @@ -888,7 +899,7 @@ msgstr "著者" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "キュレーター" @@ -896,7 +907,7 @@ msgstr "キュレーター" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "テスター" @@ -932,12 +943,12 @@ msgstr "" msgid "description" msgstr "説明" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "開始時刻" @@ -945,12 +956,12 @@ msgstr "開始時刻" msgid "end time" msgstr "終了時刻" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "時間制限" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "公開されています" @@ -1070,11 +1081,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "組織へプライベートにする" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "組織" @@ -1104,7 +1115,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "OpenGraph 画像" @@ -1124,7 +1135,7 @@ msgstr "ライブ参加者の人数" msgid "contest summary" msgstr "コンテスト概要" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "ソーシャルメディアなどのメタ説明タグに表示されるプレーンテキスト。" @@ -1137,7 +1148,7 @@ msgstr "アクセスコード" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "コンテストへの参加が許可される前に競技者に提示するオプションのコード。無効にするには空白のままにします。" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "感謝しない人" @@ -1185,213 +1196,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1443,7 +1454,7 @@ msgstr "投稿の題目" msgid "slug" msgstr "スラグ" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "一般公開" @@ -1496,7 +1507,7 @@ msgstr "課題分類名" msgid "problem type" msgstr "課題のタイプ" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "課題のタイプ" @@ -1508,7 +1519,7 @@ msgstr "課題のグループ ID" msgid "problem group name" msgstr "課題のグループ名" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "課題グループ" @@ -1545,7 +1556,7 @@ msgstr "アイコンへの URL。" msgid "license text" msgstr "ライセンス本文" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "ライセンス" @@ -1585,264 +1596,264 @@ msgstr "課題名" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "課題本文" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "作成者" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "この課題の秒単位での制限時間。小数秒(例えば1.5)はサポートされています。" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "メモリ制限" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "この課題のメモリ制限、キロバイト単位(例えば 256 mb = 262144 キロバイト)。" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "短絡" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "部分点を許す" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "許可されている言語" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "手動で管理されている" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "発行年月日" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "下位互換性を保つのために自動発行する魔法のような能力は持ちません。" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "課題の概要" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "課題を複製する" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "言語" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "翻訳された名前" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "翻訳された説明" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "翻訳された課題" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "翻訳された課題" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "解説された課題" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "解説本文" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "解説のタイムスタンプ" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "言語固有のリソース制限" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "言語固有のリソース制限" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "関連する課題" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "発行日" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "編集内容" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "解答" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "解答" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "投票者" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "メモ" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "課題投票" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "課題投票" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1868,8 +1879,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 +2051,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:381 msgid "organization" msgstr "組織" @@ -2081,7 +2092,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:389 msgid "class" msgstr "" @@ -2106,26 +2117,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 +2150,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "ユーザープロフィール" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "ユーザープロフィール" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "要求時刻" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "状態" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "保留中" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "承認済" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "却下された" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "理由" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "組織への参加要求" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "組織への参加要求" @@ -2571,15 +2586,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:282 msgid "execution time" msgstr "実行時間" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "メモリ使用量" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "付与された点数" @@ -2587,141 +2602,141 @@ msgstr "付与された点数" msgid "submission language" msgstr "提出言語" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "状態" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "結果" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "コンパイルエラー" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "バッチのケース" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "テストケースの点数" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "テストケースの合計点" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "判定された" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "予備テストのみ実行された" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "提出" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "関連する提出物" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "ソースコード" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "提出ソース" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "提出ソース" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "テストケースの ID" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "状態フラグ" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "可能な点数" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "バッチ番号" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "判定のフィードバック" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "プログラムの出力" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "提出テストケース" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "提出テストケース" @@ -2785,16 +2800,6 @@ msgstr "チケットのメッセージ" msgid "ticket messages" msgstr "チケットのメッセージ" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "ページ [page] / [topage]" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "ページ %s / %s" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2851,6 +2856,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "空のバッチは、許可されていません。" @@ -2936,45 +2946,45 @@ 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" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "私たちはめちゃくちゃですか?" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "あなたは既に投票しました。" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "サイトから編集された" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +2993,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" @@ -3116,213 +3126,213 @@ msgstr "破損ページ %s" msgid "Runtimes" msgstr "ランタイム" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "このような組織はありません" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "鍵 \"%s\" を持つ組織は見つかりませんでした。" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "このような組織を見つけることができませんでした。" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "組織" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "所属している組織" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "あなたは、既にこの組織にしょぞくしています。" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "この組織は公開ではありません。" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "組織から脱退する" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "あなたは \"%s\" に所属していません。" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "%s への参加を申し込む" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "参加申込みの詳細" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "%s への参加申込みを管理する" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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:324 #, 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:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "%d人の利用者を承認しました。" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "%d人の利用者を拒否しました。" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "%s を編集" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "組織を編集できません" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "あなたは、この組織を編集することは許可されていません。" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "利用者を追い出せません" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "あなたが追い出そうとしている利用者は存在しません!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "そのような課題はありません" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "{0} の論説" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "そのような論説はありません" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "コード \"%s\" を有する論説は見つかりませんでした。" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "提出が禁止された" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "あなたはこの課題に感謝しない人として宣言されている。あなたはこの課題に提出することを永続的に禁止されている。" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "提出物が多過ぎます" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "あなたは、この課題の提出制限を超えました。" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "課題を複製する" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3380,17 +3390,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 +3430,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,77 +3446,77 @@ 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 "状態" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "バージョンマトリックス" +msgid "Version" +msgstr "バージョン" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "%(user)s による %(problem)s への提出物" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "全ての提出物" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "私の全ての提出物" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "%s による全ての提出物" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "%s への全ての提出物" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, 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:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "{contest} 中の課題 {number} への {user} による提出物" @@ -3561,99 +3571,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 +3696,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 +3722,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 +3964,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 +4053,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 +4265,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 +4273,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 +4437,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 +4636,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 +4672,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 +4741,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 +4908,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 +4947,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 +4984,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 +4994,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 +5006,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 +5235,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 +5248,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 +5319,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 +5338,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 +5356,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 "" @@ -5424,8 +5430,8 @@ msgid "Judges" msgstr "判定器" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "バージョンマトリックス" +msgid "Versions" +msgstr "バージョン" #: templates/submission/info-base.html:8 #, python-format @@ -5453,23 +5459,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 +5639,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 +5715,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:360 +#: 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: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..867c6ce595 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -17,119 +17,119 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "카탈루냐어" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "독일어" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "그리스어" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "영어" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "스페인어" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "프랑스어" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "크로아티아어" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "헝가리어" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "일본어" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "한국어" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "포르투갈어 (브라질)" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "루마니아어" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "러시아어" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "세르비아어(라틴문자)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "터키어" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "베트남어" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "중국어(간체)" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "메인" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "내용" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "%d개의 코멘트가 숨겨졌습니다." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "코멘트 숨기기" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "%d개의 코멘트가 숨겨졌습니다." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "코멘트 보이기" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +344,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "문제" @@ -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 "" @@ -510,7 +510,8 @@ msgstr "Online Judge" msgid "Comment body" msgstr "코멘트 본문" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "키가 있는 콘테스트가 이미 존재합니다." @@ -722,108 +723,118 @@ msgstr "키가 있는 콘테스트가 이미 존재합니다." msgid "N j, Y, g:i a" msgstr "Y년 n월 j일 a g시 i분" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "{time}에" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "페이지 코드는 ^[pcs]:[a-z0-9]+$|^b:\\d+$ 이어야 합니다" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "코멘터" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "게시 시각" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "페이지와 연관된" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "표" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "코멘트 본문" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "숨김" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "부모" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "코멘트" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "코멘트" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "%s에 대한 편집" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "코멘트 투표" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "코멘트 투표" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "주석 잠금 무시" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -880,7 +891,7 @@ msgid "contest name" msgstr "대회 이름" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "저자" @@ -888,7 +899,7 @@ msgstr "저자" msgid "These users will be able to edit the contest." msgstr "이 사용자들은 대회를 편집할 권한이 있습니다." -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "curators" @@ -896,7 +907,7 @@ msgstr "curators" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "이러한 사용자는 컨테스트를 편집할 수 있지만 작성자로 나열되지는 않습니다." -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "testers" @@ -932,12 +943,12 @@ msgstr "" msgid "description" msgstr "설명" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "시작 시각" @@ -945,12 +956,12 @@ msgstr "시작 시각" msgid "end time" msgstr "종료 시각" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "시간 제한" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "공개" @@ -1070,11 +1081,11 @@ msgstr "짧은 형식 설정 표시" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "컨테스트 페이지에 컨테스트 설정이 포함된 섹션을 표시할지 여부입니다." -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "조직에 비공개" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "조직" @@ -1104,7 +1115,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "OpenGraph 이미지" @@ -1124,7 +1135,7 @@ msgstr "현재 접속되어 있는 참가자 수" msgid "contest summary" msgstr "대회 요약" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "메타 설명 태그에 표시되는 일반 텍스트(예: 소셜 미디어용)." @@ -1137,7 +1148,7 @@ msgstr "액세스 코드" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "참가자가 콘테스트에 참가하도록 허용되기 전에 참가자에게 메시지를 표시하는 선택적 코드입니다. 비활성화하려면 비워 둡니다." -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "해당 인물 없음" @@ -1185,213 +1196,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "대회 코드 카피 체크 결과" @@ -1443,7 +1454,7 @@ msgstr "게시물 제목" msgid "slug" msgstr "slug" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "공개 여부" @@ -1496,7 +1507,7 @@ msgstr "문제 범주 이름" msgid "problem type" msgstr "문제 유형" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "문제 유형" @@ -1508,7 +1519,7 @@ msgstr "문제 그룹 ID" msgid "problem group name" msgstr "문제 그룹" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "문제 그룹" @@ -1545,7 +1556,7 @@ msgstr "아이콘 URL." msgid "license text" msgstr "라이센스 내용" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "라이센스" @@ -1585,264 +1596,264 @@ msgstr "문제 이름" msgid "The full name of the problem, as shown in the problem list." msgstr "문제 목록에 표시된 문제의 전체 이름입니다." -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "문제 본문" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "제작자" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "이러한 사용자는 문제를 편집할 수 있고 작성자로 나열됩니다." -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "이러한 사용자는 문제를 편집할 수 있고, 작성자로 나열됩니다." -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "이러한 사용자는 비공개 문제를 볼 수 있지만 편집할 수는 없습니다." -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "문제 페이지에 표시된 문제 유형입니다." -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "문제 목록의 범주 아래에 표시된 문제 그룹입니다." -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "이 문제의 시간 제한(초)입니다. 소수 자릿수 초(예: 1.5)가 지원됩니다." -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "메모리 제한" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "이 문제에 대한 메모리 제한(KB)입니다(예: 256mb = 262144KB)." -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "문제 완료에 대해 부여된 점수입니다. 부분적인 경우 점은 'p' 접미사로 표시됩니다." -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "부분 점수 허용" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "허용된 언어" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "허용된 제출 언어 목록입니다." -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "수동으로 관리됨" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "심사위원의 데이터 관리 허용 여부." -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "게시 날짜" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "이전 버전과의 호환성으로 인해 자동 게시하는 마법의 기능이 없습니다." -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "선택한 사용자가 이 문제를 제출하는 것을 금지합니다." -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "이 문제가 게시되는 라이선스입니다." -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "문제 요약" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "유저 수" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "문제를 해결한 사용자 수입니다." -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "정답률" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "전체 마크다운 액세스 허용" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "제출 소스 가시성" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "비공개로 설정 시, 이 조직들만 문제를 볼 수 있습니다." -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "숨겨진 문제들 보이기" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "문제 수정" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "모든 문제 수정" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "모든 공개 문제 수정" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "전체 마크업 문제 수정" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "문제 복사" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "is_public 필드 변경" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "is_manually_managed 필드 변경" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "조직에게만 공개된 문제들 보기" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "언어" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "번역된 이름" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "번역된 설명" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "문제 번역" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "문제 번역" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "수정된 문제" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "수정사항" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "수정 타임스탬프" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "특정 언어 리소스 제한" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "특정 언어 리소스 제한" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "관련된 문제" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "게시일" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "편집 내용" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "숨겨진 솔루션 보기" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "솔루션" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "솔루션" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "투표자" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "노트" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "문제 투표" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "문제 투표" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1868,8 +1879,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 +2051,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:381 msgid "organization" msgstr "조직" @@ -2081,7 +2092,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:389 msgid "class" msgstr "" @@ -2106,26 +2117,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 +2150,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "사용자 프로파일" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "사용자 프로파일" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "공개 키" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "서명 카운터" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "요청 시간" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "상태" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "보류 중" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "승인됨" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "거절됨" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "이유" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "조직 가입 요청" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "조직 가입 요청" @@ -2571,15 +2586,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:282 msgid "execution time" msgstr "실행 시간" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "메모리 사용량" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "획득 포인트" @@ -2587,141 +2602,141 @@ msgstr "획득 포인트" msgid "submission language" msgstr "제출 언어" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "상태" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "결과" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "컴파일 에러" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "batched 테스트 케이스" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "테스크 케이스 점수" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "테스트 케이스 총 점수" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "pretest에서만 채점됨" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "모든 제출 답안 보기" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "다른 사람의 제출물 다시 제출" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "제출" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "관련된 제출" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "소스 코드" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "test case ID" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "상태 flag" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "획득 가능한 포인트" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "batch number" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "채점 피드백" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "확장된 심사 피드백" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "프로그램 출력" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "제출 테스트 케이스" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "제출 테스트 케이스" @@ -2785,16 +2800,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "[topage]의 페이지 [page]" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "뉴비" @@ -2851,6 +2856,11 @@ msgstr "제출 데이터 준비" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "{total_pages}의 페이지 {page_number}" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "빈 batches는 허용되지 않습니다." @@ -2936,45 +2946,45 @@ 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 페이지" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "장난치고 있어?" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "투표하기 전에 최소한 하나의 문제를 해결해야 합니다." -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "이미 투표하셨습니다." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "사이트에서 편집" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +2993,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" @@ -3116,213 +3126,213 @@ msgstr "손상된 페이지 %s" msgid "Runtimes" msgstr "런타임" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "존재하지 않는 조직" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "%s 조직을 찾을 수 없습니다." -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "그러한 조직을 찾을 수 없습니다." -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "조직" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "조직 가입" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "이미 조직에 가입되어 있습니다." -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "이 조직은 공개되어 있지 않습니다." -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "조직 탈퇴" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "%s에 있지 않습니다." -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, 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:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "이미 %s에 가입 신청을 했습니다." -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "%s 가입 신청" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "가입 신청 세부 사항" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "%s 가입 신청 가입" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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:324 #, 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:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "%d명 사용자 승인." -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "%d명 거부." -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "%s 편집중" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "조직 편집이 불가합니다" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "조직을 편집할 권한이 없습니다." -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "이 사용자를 탈퇴시킬 수 없습니다" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "탈퇴시키려는 사용자가 존재하지 않습니다." -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "존재하지 않는 문제" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "그런 사설이 없습니다" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "제출이 너무 많습니다" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "이 문제에 허용된 제출 횟수를 초과했습니다." -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "문제 복사" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3380,17 +3390,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 +3430,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,77 +3446,77 @@ 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 "현재 상태" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "버전 표" +msgid "Version" +msgstr "버전" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "%(user)s의 %(problem)s 제출" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "모든 제출들" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "내 모든 제출들" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "%s의 모든 제출물" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, 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:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, 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:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3561,99 +3571,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 +3696,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 +3722,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 +3964,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 +4053,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 +4265,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 +4273,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 +4437,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 +4636,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 +4672,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 +4741,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 +4908,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 +4947,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 +4984,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 +4994,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 +5006,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 +5235,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 +5248,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 +5319,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 +5338,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 +5356,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 "" @@ -5424,8 +5430,8 @@ msgid "Judges" msgstr "채첨" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "버전 표" +msgid "Versions" +msgstr "버전" #: templates/submission/info-base.html:8 #, python-format @@ -5453,23 +5459,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 +5639,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 +5715,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..5e6e67e9cc 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Lithuanian\n" "Language: lt_LT\n" @@ -17,99 +17,99 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." @@ -118,11 +118,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." @@ -131,11 +131,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +377,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "" @@ -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 "" @@ -549,7 +549,8 @@ msgstr "" msgid "Comment body" msgstr "" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "" @@ -773,108 +774,118 @@ msgstr "" msgid "N j, Y, g:i a" msgstr "" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -931,7 +942,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "" @@ -939,7 +950,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "" @@ -947,7 +958,7 @@ msgstr "" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "" @@ -983,12 +994,12 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "" @@ -996,12 +1007,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "" @@ -1121,11 +1132,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "" @@ -1155,7 +1166,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "" @@ -1175,7 +1186,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1188,7 +1199,7 @@ msgstr "" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "" @@ -1236,213 +1247,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1494,7 +1505,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1547,7 +1558,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "" @@ -1559,7 +1570,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "" @@ -1596,7 +1607,7 @@ msgstr "" msgid "license text" msgstr "" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "" @@ -1636,264 +1647,264 @@ msgstr "" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1919,7 +1930,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 +2102,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:381 msgid "organization" msgstr "" @@ -2132,7 +2143,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:389 msgid "class" msgstr "" @@ -2157,26 +2168,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 +2201,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2622,15 +2637,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:282 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "" @@ -2638,141 +2653,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2836,16 +2851,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2902,6 +2907,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2996,45 +3006,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3053,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 "" @@ -3176,76 +3186,76 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3254,7 +3264,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:324 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3263,7 +3273,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3272,7 +3282,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3281,120 +3291,120 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3455,17 +3465,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 +3505,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,77 +3521,77 @@ 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 "" #: judge/views/status.py:108 -msgid "Version matrix" +msgid "Version" msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3636,99 +3646,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 +3771,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 +3797,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 +4039,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 +4128,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 +4349,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 +4357,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 +4524,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 +4723,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 +4759,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 +4831,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 +4919,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 +4928,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 +5007,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 +5052,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 +5089,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 +5099,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 +5111,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 +5133,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 +5349,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 +5362,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 +5433,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 +5452,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 +5470,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 "" @@ -5538,7 +5544,7 @@ msgid "Judges" msgstr "" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" +msgid "Versions" msgstr "" #: templates/submission/info-base.html:8 @@ -5567,23 +5573,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 +5753,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 +5777,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 +5832,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..07ff1355d8 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:53\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -17,121 +17,121 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "" msgstr[1] "" -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "" msgstr[1] "" -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +355,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "" @@ -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 "" @@ -523,7 +523,8 @@ msgstr "" msgid "Comment body" msgstr "" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "" @@ -739,108 +740,118 @@ msgstr "" msgid "N j, Y, g:i a" msgstr "" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -897,7 +908,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "" @@ -905,7 +916,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "" @@ -913,7 +924,7 @@ msgstr "" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "" @@ -949,12 +960,12 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "" @@ -962,12 +973,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "" @@ -1087,11 +1098,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "" @@ -1121,7 +1132,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "" @@ -1141,7 +1152,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1154,7 +1165,7 @@ msgstr "" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "" @@ -1202,213 +1213,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1460,7 +1471,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1513,7 +1524,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "" @@ -1525,7 +1536,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "" @@ -1562,7 +1573,7 @@ msgstr "" msgid "license text" msgstr "" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "" @@ -1602,264 +1613,264 @@ msgstr "" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1885,7 +1896,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 +2068,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:381 msgid "organization" msgstr "" @@ -2098,7 +2109,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:389 msgid "class" msgstr "" @@ -2123,26 +2134,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 +2167,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2588,15 +2603,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:282 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "" @@ -2604,141 +2619,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2802,16 +2817,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2868,6 +2873,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2956,45 +2966,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3013,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 "" @@ -3136,217 +3146,217 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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:324 #, 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:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3405,17 +3415,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 +3455,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,77 +3471,77 @@ 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 "" #: judge/views/status.py:108 -msgid "Version matrix" +msgid "Version" msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3586,99 +3596,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 +3721,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 +3747,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 +3989,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 +4078,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 +4293,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 +4301,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 +4466,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 +4665,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 +4701,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 +4771,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 +4941,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 +4982,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 +5019,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 +5029,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 +5041,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 +5273,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 +5286,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 +5357,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 +5376,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 +5394,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 "" @@ -5462,7 +5468,7 @@ msgid "Judges" msgstr "" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" +msgid "Versions" msgstr "" #: templates/submission/info-base.html:8 @@ -5491,23 +5497,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 +5677,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 +5754,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..fc1be0da34 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -17,99 +17,99 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Kataloński" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Niemiecki" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Grecki" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Angielski" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Hiszpański" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Francuski" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Chorwacki" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Węgierski" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Japoński" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Koreański" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" -msgstr "" +msgstr "Brazylijski Portugalski" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Rumuński" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Rosyjski" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Serbski (alfabet łaciński)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Turecki" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Wietnamski" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Chiński Uproszczony" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "Zawartość" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." @@ -118,11 +118,11 @@ msgstr[1] "%d komentarze zostały pomyślnie dodane." msgstr[2] "%d komentarzy zostało pomyślnie dodanych." msgstr[3] "%d komentarzy zostało pomyślnie dodanych." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Ukryj komentarze" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." @@ -131,11 +131,11 @@ msgstr[1] "%d komentarz został pomyślnie ukryty." msgstr[2] "%d komentarzy zostało pomyślnie ukrytych." msgstr[3] "%d komentarzy zostało pomyślnie ukrytych." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Pokaż komentarze" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" msgstr "Dołączona strona" @@ -144,24 +144,24 @@ 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:353 #: 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 msgid "Rejudge" -msgstr "" +msgstr "Powtórz Osądzenie" #: judge/admin/contest.py:122 msgid "Settings" @@ -189,61 +189,61 @@ msgstr "Dostęp" #: judge/admin/contest.py:131 judge/admin/problem.py:136 msgid "Justice" -msgstr "" +msgstr "Sprawiedliwość" #: judge/admin/contest.py:229 #, python-format msgid "%d contest successfully marked as visible." msgid_plural "%d contests successfully marked as visible." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%d konkurs został oznaczony jako widoczny." +msgstr[1] "%d konkursy zostały oznaczone jako widoczne." +msgstr[2] "%d konkursów zostało oznaczonych jako widoczne." +msgstr[3] "%d konkursów zostało oznaczonych jako widoczne." #: judge/admin/contest.py:232 msgid "Mark contests as visible" -msgstr "" +msgstr "Oznacz konkursy jako widoczne" #: judge/admin/contest.py:238 #, python-format msgid "%d contest successfully marked as hidden." msgid_plural "%d contests successfully marked as hidden." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%d konkurs został oznaczony jako ukryty." +msgstr[1] "%d konkursy zostały oznaczone jako ukryte." +msgstr[2] "%d konkursów zostało oznaczonych jako ukryte." +msgstr[3] "%d konkursów zostało oznaczonych jako ukryte." #: judge/admin/contest.py:241 msgid "Mark contests as hidden" -msgstr "" +msgstr "Oznacz konkursy jako ukryte" #: judge/admin/contest.py:247 #, python-format msgid "%d contest successfully locked." msgid_plural "%d contests successfully locked." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%d konkurs pomyślnie zablokowany." +msgstr[1] "%d konkursy pomyślnie zablokowane." +msgstr[2] "%d konkursów pomyślnie zablokowanych." +msgstr[3] "%d konkursów pomyślnie zablokowanych." #: judge/admin/contest.py:250 msgid "Lock contest submissions" -msgstr "" +msgstr "Zablokuj zgłoszenia konkursu" #: judge/admin/contest.py:256 #, python-format msgid "%d contest successfully unlocked." msgid_plural "%d contests successfully unlocked." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%d konkurs pomyślnie odblokowany." +msgstr[1] "%d konkursy pomyślnie odblokowane." +msgstr[2] "%d konkursów pomyślnie odblokowanych." +msgstr[3] "%d konkursów pomyślnie odblokowanych." #: judge/admin/contest.py:259 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:349 +#: judge/models/profile.py:380 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,10 +377,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "problem" @@ -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 "" @@ -549,7 +549,8 @@ msgstr "Online Judge" msgid "Comment body" msgstr "Treść komentarza" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "" @@ -773,108 +774,118 @@ msgstr "" msgid "N j, Y, g:i a" msgstr "" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "w {time}" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "komentator" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "czas wysłania" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "powiązana strona" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "głosów" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "treść komentarza" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "rodzic" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "komentarz" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "komentarze" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "głos na komentarz" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "głosy na komentarz" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -931,7 +942,7 @@ msgid "contest name" msgstr "nazwa konkursu" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "autorzy" @@ -939,7 +950,7 @@ msgstr "autorzy" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "" @@ -947,7 +958,7 @@ msgstr "" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "testerzy" @@ -983,12 +994,12 @@ msgstr "" msgid "description" msgstr "opis" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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" @@ -996,12 +1007,12 @@ msgstr "czas rozpoczęcia" msgid "end time" msgstr "godzina zakończenia" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "limit czasowy" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "publicznie widoczny" @@ -1121,11 +1132,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "" @@ -1155,7 +1166,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "" @@ -1175,7 +1186,7 @@ msgstr "" msgid "contest summary" msgstr "podsumowanie konkursu" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1188,7 +1199,7 @@ msgstr "kod dostępu" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "" @@ -1236,213 +1247,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1494,7 +1505,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1547,7 +1558,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "" @@ -1559,7 +1570,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "" @@ -1596,7 +1607,7 @@ msgstr "Adres URL do ikony." msgid "license text" msgstr "tekst licencji" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "licencja" @@ -1636,264 +1647,264 @@ msgstr "nazwa problemu" msgid "The full name of the problem, as shown in the problem list." msgstr "Pełna nazwa problemu, pokazywana na liście problemów." -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "treść problemu" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "twórcy" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "limit pamięci" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "dozwolone języki" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "język" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "rozwiązanie" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "rozwiązania" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1919,7 +1930,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 +2102,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:381 msgid "organization" msgstr "organizacja" @@ -2132,7 +2143,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:389 msgid "class" msgstr "" @@ -2157,26 +2168,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 +2201,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2622,15 +2637,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:282 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "" @@ -2638,141 +2653,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "wynik" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "błędy kompilacji" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "zgłoszenia" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "kod źródłowy" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2836,16 +2851,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2902,6 +2907,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2996,45 +3006,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3053,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 "" @@ -3176,76 +3186,76 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3254,7 +3264,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:324 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3263,7 +3273,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3272,7 +3282,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3281,120 +3291,120 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3455,17 +3465,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 +3505,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,77 +3521,77 @@ 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 "" #: judge/views/status.py:108 -msgid "Version matrix" +msgid "Version" msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3636,99 +3646,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 +3771,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 +3797,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 +4039,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 +4128,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 +4349,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 +4357,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 +4524,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 +4723,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 +4759,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 +4831,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 +4919,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 +4928,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 +5007,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 +5052,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 +5089,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 +5099,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 +5111,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 +5133,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 +5349,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 +5362,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 +5433,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 +5452,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 +5470,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 "" @@ -5538,7 +5544,7 @@ msgid "Judges" msgstr "" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" +msgid "Versions" msgstr "" #: templates/submission/info-base.html:8 @@ -5567,23 +5573,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 +5753,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 +5777,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 +5832,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..4c4c30f233 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -17,121 +17,121 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "" msgstr[1] "" -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "" msgstr[1] "" -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +355,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "" @@ -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 "" @@ -523,7 +523,8 @@ msgstr "" msgid "Comment body" msgstr "" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "" @@ -739,108 +740,118 @@ msgstr "" msgid "N j, Y, g:i a" msgstr "" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -897,7 +908,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "" @@ -905,7 +916,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "" @@ -913,7 +924,7 @@ msgstr "" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "" @@ -949,12 +960,12 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "" @@ -962,12 +973,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "" @@ -1087,11 +1098,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "" @@ -1121,7 +1132,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "" @@ -1141,7 +1152,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1154,7 +1165,7 @@ msgstr "" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "" @@ -1202,213 +1213,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1460,7 +1471,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1513,7 +1524,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "" @@ -1525,7 +1536,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "" @@ -1562,7 +1573,7 @@ msgstr "" msgid "license text" msgstr "" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "" @@ -1602,264 +1613,264 @@ msgstr "" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1885,7 +1896,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 +2068,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:381 msgid "organization" msgstr "" @@ -2098,7 +2109,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:389 msgid "class" msgstr "" @@ -2123,26 +2134,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 +2167,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2588,15 +2603,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:282 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "" @@ -2604,141 +2619,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2802,16 +2817,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2868,6 +2873,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2956,45 +2966,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3013,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 "" @@ -3136,217 +3146,217 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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:324 #, 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:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3405,17 +3415,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 +3455,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,77 +3471,77 @@ 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 "" #: judge/views/status.py:108 -msgid "Version matrix" +msgid "Version" msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3586,99 +3596,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 +3721,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 +3747,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 +3989,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 +4078,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 +4293,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 +4301,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 +4466,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 +4665,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 +4701,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 +4771,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 +4941,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 +4982,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 +5019,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 +5029,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 +5041,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 +5273,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 +5286,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 +5357,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 +5376,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 +5394,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 "" @@ -5462,7 +5468,7 @@ msgid "Judges" msgstr "" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" +msgid "Versions" msgstr "" #: templates/submission/info-base.html:8 @@ -5491,23 +5497,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 +5677,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 +5754,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..1e3ad79835 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -17,99 +17,99 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Catalană" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Germană" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Greacă" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Engleză" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Spaniolă" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Franceză" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Croată" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Maghiară" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Japoneză" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Coreeană" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "Portugheză Braziliană" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Română" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Rusă" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Sârbă (Latină)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Turcă" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Vietnameză" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Chineză Simplificată" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "Conținut" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." @@ -117,11 +117,11 @@ msgstr[0] "%d comentariu ascuns cu succes." msgstr[1] "%d comentarii ascunse cu succes." msgstr[2] "%d comentarii ascunse cu succes." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Ascunde comentarii" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." @@ -129,11 +129,11 @@ msgstr[0] "%d comentariu ascuns cu succes." msgstr[1] "%d comentarii ascunse cu succes." msgstr[2] "%d comentarii ascunse cu succes." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Reafișează comentariile" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" msgstr "Pagină asociată" @@ -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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +366,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "problemă" @@ -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 "" @@ -536,7 +536,8 @@ msgstr "Online Judge" msgid "Comment body" msgstr "Comentariu" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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." @@ -756,108 +757,118 @@ msgstr "Un concurs cu această cheie există deja." msgid "N j, Y, g:i a" msgstr "j N Y, \\o\\r\\a G:i" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "pe {time}" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "Codul paginii trebuie să fie ^[pcs]:[a-z0-9]+$|^b:\\d+$" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "autorul comentariului" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "timpul postării" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "pagină asociată" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "voturi" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "corpul comentariului" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "ascuns" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "părinte" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "comentariu" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "comentarii" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "Editorial pentru %s" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "votul comentariului" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "voturile comentariului" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -914,7 +925,7 @@ msgid "contest name" msgstr "nume concurs" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "autori" @@ -922,7 +933,7 @@ msgstr "autori" msgid "These users will be able to edit the contest." msgstr "Acești utilizatori vor putea edita concursul." -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "curatori" @@ -930,7 +941,7 @@ msgstr "curatori" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "Acești utilizatori vor putea edita concursul, dar nu vor fi listați ca autori." -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "" @@ -966,12 +977,12 @@ msgstr "Acești utilizatori vor putea urmări concursul, dar nu vor vedea proble msgid "description" msgstr "descriere" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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" @@ -979,12 +990,12 @@ msgstr "timp de început" msgid "end time" msgstr "timp de sfârșit" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "limită de timp" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "vizibil public" @@ -1104,11 +1115,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "privat pentru organizații" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "organizații" @@ -1138,7 +1149,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "Imagine OpenGraph" @@ -1158,7 +1169,7 @@ msgstr "" msgid "contest summary" msgstr "rezumat concurs" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1171,7 +1182,7 @@ msgstr "cod de acces" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "Un cod opțional cerut concurențiilor înainte de a se putea alătura concursului. Lasă necompletat pentru a dezactiva." -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "persoane non-grata" @@ -1219,213 +1230,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1477,7 +1488,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1530,7 +1541,7 @@ msgstr "" msgid "problem type" msgstr "tipul problemei" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "tipurile problemei" @@ -1542,7 +1553,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "grupul problemei" @@ -1579,7 +1590,7 @@ msgstr "Hyperlink către icon." msgid "license text" msgstr "" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "licență" @@ -1619,264 +1630,264 @@ msgstr "numele problemei" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "creatori" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "Acești utilizatori vor putea edita problema și vor fi listați ca autori." -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "Acești utilizatori vor putea edita problema, dar nu vor fi listați ca autori." -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "Tipul problemei, așa cum va fi afișat pe pagina problemei." -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "Grupul problemei, va fi afișat sub „Categorie” în lista de probleme." -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "limită de memorie" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "se acordă punctaje parțiale" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "limbaje permise" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "data publicării" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "Licența sub care este publicată această problemă." -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "rezumatul problemei" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Duplică problemă" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "limbaj" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "limita de resurse specifică limbii" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "limite de resurse specifică limbii" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "soluție" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "soluții" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "votant" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "notă" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1902,7 +1913,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 +2085,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:381 msgid "organization" msgstr "organizație" @@ -2115,7 +2126,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:389 msgid "class" msgstr "clasă" @@ -2140,26 +2151,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 +2184,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "profil utilizator" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "profiluri utilizatori" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "nume dispozitiv" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "stare" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 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:386 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:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Respins" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "motiv" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "cerere de a se alătura organizației" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "cereri de a se alătura organizației" @@ -2605,15 +2620,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:282 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:283 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:284 msgid "points granted" msgstr "puncte acordate" @@ -2621,141 +2636,141 @@ msgstr "puncte acordate" msgid "submission language" msgstr "limbaj submisie" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "stare" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "rezultat" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "erori de compilare" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "submisii" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "testul submisiei" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "testele submisiei" @@ -2819,16 +2834,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "Pagina [page] din [topage]" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "Pagina %s din %s" - #: judge/ratings.py:194 msgid "Newbie" msgstr "Începător" @@ -2885,6 +2890,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "Pagina {page_number} din {total_pages}" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2976,45 +2986,45 @@ 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" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "Ne facem de cap, nu-i așa?" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "Comentariul nu a fost găsit." -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "Ai votat deja." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "Editat de pe site" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3033,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 "" @@ -3156,76 +3166,76 @@ msgstr "pagina corupta %s" msgid "Runtimes" msgstr "Limbaje" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "Nicio organizație de acest fel" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "Nicio organizație găsită cu cheia \"%s\"." -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 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:98 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:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "Aderarea la organizație" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "Sunteți deja în organizație." -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "Această organizație nu este deschisă." -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "Părăsire organizație" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, 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:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "Cerere de adăugare la %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "Detalii despre cererea de adăugare" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "Gestionarea cererilor de asociere cu %s" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3233,7 +3243,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:324 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3241,7 +3251,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3249,7 +3259,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:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3257,120 +3267,120 @@ msgstr[0] "Respins %d utilizator." msgstr[1] "Respins %d utilizatori." msgstr[2] "Respins %d utilizatori." -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "Editare %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "Nu puteți edita organizația" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 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:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "Nicio problemă de acest fel" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "Clonează Problema" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3430,17 +3440,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 +3480,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,77 +3496,77 @@ 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" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "Matrice de versiuni" +msgid "Version" +msgstr "Versiune" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "Permisiune refuzată. Rezolvă %(problem)s pentru a o vedea." -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "Nu se poate accesa submisia" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "Permisiune refuzată." -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "Soluția problemei %(problem)s de %(user)s" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "Toate soluțiile" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, 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:434 judge/views/submission.py:437 #, 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:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3611,99 +3621,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 +3746,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 +3772,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 +4014,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 +4103,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 +4321,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 +4329,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 +4495,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 +4694,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 +4730,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 +4801,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 +4888,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 +4896,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 +4974,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 +5017,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 +5054,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 +5064,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 +5076,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 +5097,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 +5311,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 +5324,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 +5395,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 +5414,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 +5432,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 "" @@ -5500,8 +5506,8 @@ msgid "Judges" msgstr "Judges" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "Matrice de Versiuni" +msgid "Versions" +msgstr "Versiuni" #: templates/submission/info-base.html:8 #, python-format @@ -5529,23 +5535,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 +5715,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 +5793,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..9423bb3598 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -17,99 +17,99 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Каталанский" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Немецкий" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Греческий" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Английский" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Испанский" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Французский" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Хорватский" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Венгерский" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Японский" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Корейский" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "Бразильский португальский" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Румынский" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Русский" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Сербский (латиница)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Турецкий" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Вьетнамский" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Упрощенный китайский" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "Главная" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "Содержание" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." @@ -118,11 +118,11 @@ msgstr[1] "%d комментарий успешно скрыт." msgstr[2] "%d комментариев успешно скрыты." msgstr[3] "%d комментариев успешно скрыты." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Скрыть комментарии" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." @@ -131,11 +131,11 @@ msgstr[1] "%d комментарий успешно отображен." msgstr[2] "%d комментарий успешно отображен." msgstr[3] "%d комментарий успешно отображен." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Показать комментарии" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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,10 +195,10 @@ msgstr "Судья" #, python-format msgid "%d contest successfully marked as visible." msgid_plural "%d contests successfully marked as visible." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgstr[0] "%d соревнование успешно помечено как видимое." +msgstr[1] "%d соревнования успешно помечены как скрытые." +msgstr[2] "%d соревнований успешно помечены как скрытые." +msgstr[3] "%d соревнований успешно помечены как скрытые." #: judge/admin/contest.py:232 msgid "Mark contests as visible" @@ -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[2] "" -msgstr[3] "" +msgstr[0] "%d участие в соревновании пересчитано." +msgstr[1] "%d участия в соревнованиях пересчитано." +msgstr[2] "%d участий в соревнованиях пересчитано." +msgstr[3] "%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 "виртуальный" @@ -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:349 +#: judge/models/profile.py:380 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,10 +377,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "задача" @@ -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 "" @@ -549,7 +549,8 @@ msgstr "Онлайн Judge" msgid "Comment body" msgstr "Содержание комментария" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "Соревнование с ключом уже существует." @@ -773,108 +774,118 @@ msgstr "Соревнование с ключом уже существует." msgid "N j, Y, g:i a" msgstr "" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "Код страницы должен быть ^[pcs]:[a-z0-9]+$|^b:\\d+$" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "комментатор" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "время публикации" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "связанная страница" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "голоса" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "тело комментария" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "родитель" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "комментарий" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "комментарии" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "Разбор задач для %s" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -931,7 +942,7 @@ msgid "contest name" msgstr "название соревнования" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "авторы" @@ -939,7 +950,7 @@ msgstr "авторы" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "" @@ -947,7 +958,7 @@ msgstr "" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "" @@ -983,12 +994,12 @@ msgstr "" msgid "description" msgstr "описание" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "время начала" @@ -996,12 +1007,12 @@ msgstr "время начала" msgid "end time" msgstr "время конца" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "ограничение по памяти" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "" @@ -1121,11 +1132,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "организации" @@ -1155,7 +1166,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "" @@ -1175,7 +1186,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1188,7 +1199,7 @@ msgstr "" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "" @@ -1236,213 +1247,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1494,7 +1505,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1547,7 +1558,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "" @@ -1559,7 +1570,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "" @@ -1596,7 +1607,7 @@ msgstr "" msgid "license text" msgstr "" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "" @@ -1636,264 +1647,264 @@ msgstr "" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "язык" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1919,7 +1930,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 +2102,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:381 msgid "organization" msgstr "" @@ -2132,7 +2143,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:389 msgid "class" msgstr "" @@ -2157,26 +2168,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 +2201,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2622,15 +2637,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:282 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "" @@ -2638,141 +2653,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2836,16 +2851,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "Новичок" @@ -2902,6 +2907,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2996,45 +3006,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3053,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 "" @@ -3176,76 +3186,76 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3254,7 +3264,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:324 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3263,7 +3273,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3272,7 +3282,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3281,120 +3291,120 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3455,17 +3465,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 +3505,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,77 +3521,77 @@ 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 "Статус" #: judge/views/status.py:108 -msgid "Version matrix" +msgid "Version" msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3636,99 +3646,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 +3771,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 +3797,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 +4039,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 +4128,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 +4349,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 +4357,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 +4524,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 +4723,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 +4759,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 +4831,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 +4919,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 +4928,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 +5007,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 +5052,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 +5089,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 +5099,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 +5111,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 +5133,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 +5349,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 +5362,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 +5433,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 +5452,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 +5470,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 "" @@ -5538,7 +5544,7 @@ msgid "Judges" msgstr "" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" +msgid "Versions" msgstr "" #: templates/submission/info-base.html:8 @@ -5567,23 +5573,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 +5753,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 +5777,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 +5832,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..9d8ae18add 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -17,99 +17,99 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Katalonski" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Nemački" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Grčki" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Engleski" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Španski" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Francuski" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Hrvatski" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Mađarski" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Japanski" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Korejski" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "Brazilski Portugalski" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Rumunski" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Ruski" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Srpski (Latinica)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Turski" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Vijetnamski" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Pojednostavljeni Kineski" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "Sadržaj" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." @@ -117,11 +117,11 @@ msgstr[0] "%d komentar uspešno sakriven." msgstr[1] "%d komentari uspešno sakriveni." msgstr[2] "%d komentari uspešno sakriveni." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Sakrij komentare" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." @@ -129,11 +129,11 @@ msgstr[0] "%d komentar dostupan." msgstr[1] "%d Komentari dostupni." msgstr[2] "%d Komentari dostupni." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Prikaži komentare" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" msgstr "Povezana stranica" @@ -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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +366,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "zadatak" @@ -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 "" @@ -536,7 +536,8 @@ msgstr "Online Sudija" msgid "Comment body" msgstr "Sastav komentara" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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." @@ -756,108 +757,118 @@ msgstr "Takmičenje sa tim ključem već postoji." msgid "N j, Y, g:i a" msgstr "j. N Y. \\у H:i" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "na {time}" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "Kod stranice mora biti ^[pcs]:[a-z0-9]+$|^b:\\d+$" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "komentator" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "vreme predaje" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "povezana stranica" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "glasovi" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "body komentara" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "sakriveno" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "roditelj" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "revizije" + +#: judge/models/comment.py:39 msgid "comment" msgstr "komentar" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "komentari" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "Uvodnik za %s" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -914,7 +925,7 @@ msgid "contest name" msgstr "ime takmičenja" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "autori" @@ -922,7 +933,7 @@ msgstr "autori" msgid "These users will be able to edit the contest." msgstr "Ovi korisnici će moći da edituju takmičenje." -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "kustos" @@ -930,7 +941,7 @@ msgstr "kustos" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "Ovi korisnici će moći da edituju takmičenje, ali neće biti navedeni kao autori." -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "testeri" @@ -966,12 +977,12 @@ msgstr "" msgid "description" msgstr "opis" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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" @@ -979,12 +990,12 @@ msgstr "vreme početka" msgid "end time" msgstr "vreme kraja" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "vremensko ograničenje" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "vidljivo za javnost" @@ -1104,11 +1115,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "organizacije" @@ -1138,7 +1149,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "OpenGraph slika" @@ -1158,7 +1169,7 @@ msgstr "broj aktivnih učesnika" msgid "contest summary" msgstr "kratak opis takmičenja" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1171,7 +1182,7 @@ msgstr "access code" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "personae non gratae" @@ -1219,213 +1230,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1477,7 +1488,7 @@ msgstr "" msgid "slug" msgstr "puž" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1530,7 +1541,7 @@ msgstr "ime kategorije zadatka" msgid "problem type" msgstr "tip zadatka" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "tipovi zadataka" @@ -1542,7 +1553,7 @@ msgstr "ID grupe zadataka" msgid "problem group name" msgstr "ime grupe zadataka" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "grupa zadataka" @@ -1579,7 +1590,7 @@ msgstr "URL za ikonu." msgid "license text" msgstr "tekst licence" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "licenca" @@ -1619,264 +1630,264 @@ msgstr "ime zadatka" msgid "The full name of the problem, as shown in the problem list." msgstr "Puno ime zadatka, kao što je prikazano u listi zadataka." -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "sadržaj zadatka" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "kreatori" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "Ovi korisnici će moći da edituju zadatak, i biće navedeni kao autori." -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "Ovi korisnici će moći da edituju zadatak, ali neće biti navedeni kao autori." -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "Ovi korisnici će moći da vide privatni zadatak, ali neće moći da ga edituju." -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "Tip zadatka, kao što je prikazano na stranici zadatka." -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "Grupa zadatka, prikazana u okviru Kategorije u listi zadataka." -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "Vremensko ograničenje za ovaj zadatak, u sekundama. Delovi sekunda (npr. 1.5) su podržani." -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "ograničenje memorije" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "Memorijsko ograničenje za ovaj zadatak, u kilobytes (npr. 256mb = 262144 kilobytes)." -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "Poeni dodeljeni za rešen zadatak. Poeni su prikazani sa 'p' sufiksom ako je rešenje delimično priznato." -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "dozvoljava dodeljivanje delimičnih poena" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "dozvoljeni jezici" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "Lista dozvoljenih jezika za rešenja." -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "broj korisnika" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "Vidi sakrivene zadatke" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "jezik" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "prevedeno ime" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "preveden opis" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "prevod zadatka" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "prevodi zadatka" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "datum objave" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "rešenje" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "rešenja" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1902,7 +1913,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 +2085,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:381 msgid "organization" msgstr "organizacija" @@ -2115,7 +2126,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:389 msgid "class" msgstr "" @@ -2140,26 +2151,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 +2184,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "profil korisnika" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "ime uređaja" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "status" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Odbijeno" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "razlog" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2605,15 +2620,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:282 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "" @@ -2621,141 +2636,141 @@ msgstr "" msgid "submission language" msgstr "" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "status" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "rezultat" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "greške u kompajliranju" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "statusna zastava" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2819,16 +2834,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2885,6 +2890,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2976,45 +2986,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "Već ste glasali." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3033,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" @@ -3156,76 +3166,76 @@ msgstr "" msgid "Runtimes" msgstr "" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 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:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, python-format msgid "Your organization can only receive %d more member." msgid_plural "Your organization can only receive %d more members." @@ -3233,7 +3243,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:297 +#: judge/views/organization.py:324 #, python-format msgid "You cannot approve %d user." msgid_plural "You cannot approve %d users." @@ -3241,7 +3251,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:312 +#: judge/views/organization.py:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3249,7 +3259,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3257,120 +3267,120 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3430,17 +3440,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 +3480,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,77 +3496,77 @@ 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 "" #: judge/views/status.py:108 -msgid "Version matrix" +msgid "Version" msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "Sva rešenja" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "Sva moja rešenja" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, 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:434 judge/views/submission.py:437 #, 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:498 judge/views/submission.py:505 #, 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:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, 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:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3611,99 +3621,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 +3746,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 +3772,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 +4014,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 +4103,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 +4321,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 +4329,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 +4495,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 +4694,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 +4730,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 +4801,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 +4888,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 +4896,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 +4974,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 +5017,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 +5054,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 +5064,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 +5076,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 +5097,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 +5311,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 +5324,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 +5395,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 +5414,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 +5432,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 "" @@ -5500,7 +5506,7 @@ msgid "Judges" msgstr "Sudije" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" +msgid "Versions" msgstr "" #: templates/submission/info-base.html:8 @@ -5529,23 +5535,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 +5715,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 +5793,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..9059a26656 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:54\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -17,121 +17,121 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Katalanca" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Almanca" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Yunanca" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "İngilizce" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "İspanyolca" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Fransızca" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Hırvatça" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Macarca" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Japonca" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Korece" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "Brezilya Portekizcesi" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Rumence" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Rusça" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Sırpça (Latin)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Türkçe" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Vietnamca" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Basitleştirilmiş Çince" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "İçerik" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "%d yorum gizlendi." msgstr[1] "%d yorum gizlendi." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Yorumları gizle" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "%d yorum gösterildi." msgstr[1] "%d yorum gösterildi." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Yorumları göster" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" msgstr "İlişkili 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +355,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "" @@ -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 "" @@ -523,7 +523,8 @@ msgstr "Online Değerlendirme Sistemi" msgid "Comment body" msgstr "Yorum" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "" @@ -739,108 +740,118 @@ msgstr "" msgid "N j, Y, g:i a" msgstr "j M Y, H:i" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "{time} tarihinde" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "yorum yazan" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "gönderi zamanı" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "ilişkili sayfa" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "oy" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "yorum metni" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "üst yorum" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "yorum" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "yorumlar" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "%s problemi için editorial" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "yorum oyu" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "yorum oyları" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -897,7 +908,7 @@ msgid "contest name" msgstr "yarışma adı" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "yazarlar" @@ -905,7 +916,7 @@ msgstr "yazarlar" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "küratörler" @@ -913,7 +924,7 @@ msgstr "küratörler" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "testçiler" @@ -949,12 +960,12 @@ msgstr "" msgid "description" msgstr "tanım" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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ıç" @@ -962,12 +973,12 @@ msgstr "başlangıç" msgid "end time" msgstr "bitiş" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "zaman sınırı" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "herkese açık" @@ -1087,11 +1098,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "organizasyonlara özel" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "organizasyonlar" @@ -1121,7 +1132,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "OpenGraph resmi" @@ -1141,7 +1152,7 @@ msgstr "anlık katılımcı sayısı" msgid "contest summary" msgstr "yarışma özeti" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "Düz yazı, sosyal medya vb. için \"meta description\" tag'inde görünecektir." @@ -1154,7 +1165,7 @@ msgstr "erişim kodu" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "Yarışmaya katılabilmek için girilmesi gereken, isteğe bağlı bir kod. Boş bırakılırsa devre dışı kalır." -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "istenmeyen kişiler" @@ -1202,213 +1213,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1460,7 +1471,7 @@ msgstr "gönderi başlığı" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "halka açık mı?" @@ -1513,7 +1524,7 @@ msgstr "problem kategorisi adı" msgid "problem type" msgstr "problem tipi" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "problem tipleri" @@ -1525,7 +1536,7 @@ msgstr "problem grup ID'si" msgid "problem group name" msgstr "problem grubu adı" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "problem grubu" @@ -1562,7 +1573,7 @@ msgstr "Ikon URL'si." msgid "license text" msgstr "lisans metni" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "lisans" @@ -1602,264 +1613,264 @@ msgstr "problem adı" msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "problem içeriği" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "yaratıcılar" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "Bu problem için saniye cinsinden zaman sınırı. Küsuratlı saniyeler(örn. 1.5) desteklenmektedir." -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "bellek sınırı" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "Bu problem için kilobayt cinsinden hafıza sınırı. (örn. 256 MB = 262144 KB)" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "kısa devre" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "kısmi puanlama yapılabilir" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "izin verilen diller" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "elle yönetilir" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "yayınlama tarihi" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "Geri uyumluluk sorunundan dolayı oto-yayınlama büyüsü yapılamamaktadır." -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "problem özeti" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Soruyu çoğalt" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "dil" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "çevrilmiş ad" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "çevrilmiş tanım" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "problem çevirisi" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "problem çevirileri" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "açıklık getirilmiş problem" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "açıklama içeriği" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "açıklama zaman damgası (timestamp)" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "dile özel kaynak sınırı" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "dile özel kaynak sınırları" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "ilgili problem" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "yayın tarihi" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "problem analizi içeriği" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "çözüm" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "çözümler" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "not" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "problem oyu" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "problem oyları" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1885,7 +1896,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 +2068,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:381 msgid "organization" msgstr "organizasyon" @@ -2098,7 +2109,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:389 msgid "class" msgstr "" @@ -2123,26 +2134,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 +2167,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "kullanıcı profili" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "kullanıcı profilleri" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "istek zamanı" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "durum" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 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:386 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:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Geri çevrildi" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "sebep" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "organizasyona katılma isteği" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "organizasyona katılma istekleri" @@ -2588,15 +2603,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:282 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:283 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:284 msgid "points granted" msgstr "verilen puan" @@ -2604,141 +2619,141 @@ msgstr "verilen puan" msgid "submission language" msgstr "çözüm dili" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "statü" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "sonuç" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "derleme hataları" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "kümelenmiş testler" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "test puanı" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "toplam test puanı" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "değerlendirildiği sunucu" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "sadece ön testlerde çalıştı" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "çözümler" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "ilişkili çözüm gönderisi" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "kaynak kodu" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "test ID" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "durum kodu" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "alınabilecek puan" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "küme #" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "program çıktısı" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "çözüm testi" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "çözüm testleri" @@ -2802,16 +2817,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "[page]/[topage]" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2868,6 +2873,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "Kümeler boş olamaz." @@ -2956,45 +2966,45 @@ 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" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "Ooo, bakıyorum da etrafı karıştırıyoruz." -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "Zaten oy verdin." -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "Site aracılığıyla düzenlendi" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +3013,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" @@ -3136,217 +3146,217 @@ msgstr "bozuk sayfa \"%s\"" msgid "Runtimes" msgstr "Dil sürümleri" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "Böyle bir organizasyon yok :(" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "\"%s\" anahtarına sahip bir organizasyon bulunamadı." -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 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:98 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:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "Organizasyona katılım" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "Bu organizasyonda zaten varsın." -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "Bu organizasyon açık değil." -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "Organizasyondan çık" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, 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:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "%s'ye katılma isteği" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "Katılma isteği detayı" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, 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:322 #, 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:324 #, 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:339 #, 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:340 #, 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:370 #, python-format msgid "Editing %s" msgstr "%s düzenleniyor" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "Bu organizasyon düzenlenemiyor" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 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:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "Bu üyeyi atamazsın" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 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:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "Böyle bir problem yok :(" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "{0} - Problem analizi" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "Böyle bir problem analizi yok :(" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "Çözüm gönderme engellendi" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "Bu problem için istenmeyen adam olarak işaretlendin. Çözüm gönderemezsin." -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "Çok fazla çözüm gönderisi" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "Bu soru için çözüm gönderi sınırını geçtin." -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "Soruyu Çoğalt" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "" @@ -3405,17 +3415,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 +3455,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,77 +3471,77 @@ 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" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "Sürüm matrisi" +msgid "Version" +msgstr "" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "%(user)s tarafından %(problem)s için gönderilen çözüm" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "Tüm çözümler" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "Tüm çözümlerim" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, 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:434 judge/views/submission.py:437 #, 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:498 judge/views/submission.py:505 #, 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:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, 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 +3596,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 +3721,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 +3747,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 +3989,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 +4078,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 +4293,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 +4301,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 +4466,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 +4665,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 +4701,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 +4771,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 +4941,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 +4982,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 +5019,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 +5029,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 +5041,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 +5273,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 +5286,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 +5357,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 +5376,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 +5394,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 "" @@ -5462,8 +5468,8 @@ msgid "Judges" msgstr "Judge'lar" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "Sürüm Matrisi" +msgid "Versions" +msgstr "" #: templates/submission/info-base.html:8 #, python-format @@ -5491,23 +5497,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 +5677,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 +5754,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..fcd7e6dd74 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:55\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -17,119 +17,119 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "Tiếng Catalan" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "Tiếng Đức" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "Tiếng Hy Lạp" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "Tiếng Anh" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "Tiếng Tây Ban Nha" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "Tiếng Pháp" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "Tiếng Croatia" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "Tiếng Hung-ga-ri" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "Tiếng Nhật Bản" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "Tiếng Hàn Quốc" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "Tiếng Braxin-Bồ Đào Nha" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "Tiếng Romania" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "Tiếng Nga" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "Tiếng Séc-bi (Latin)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "Tiếng Thổ Nhĩ Kỳ" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "Tiếng Việt" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "Tiếng Trung (Giản thể)" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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ủ" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "Nội dung" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "%d bình luận đã được ẩn." -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "Ẩn bình luận" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "%d bình luận đã được hiện lại." -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "Bỏ ẩn bình luận" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" msgstr "Trang liên kết" @@ -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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +344,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "vấn đề" @@ -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" @@ -510,7 +510,8 @@ msgstr "Chấm bài trực tuyến" msgid "Comment body" msgstr "Bình luận" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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." @@ -722,108 +723,118 @@ msgstr "Mã kỳ thi đã tồn tại." msgid "N j, Y, g:i a" msgstr "j \\t\\há\\n\\g n \\nă\\m Y, g:i a" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "vào lúc {time}" - #: judge/jinja2/rating.py:24 msgid "Unrated" msgstr "Chưa xếp hạng" -#: judge/models/choices.py:59 +#: judge/models/choices.py:24 +msgid "Follow site theme" +msgstr "Theo chủ đề hệ thống" + +#: 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/comment.py:25 +#: 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:23 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+$" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "bình luận" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "thời gian đăng" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "trang liên kết" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "đánh giá" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "nhận xét" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "ẩn" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "cấp trên" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "sửa đổi" + +#: judge/models/comment.py:39 msgid "comment" msgstr "bình luận" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "nhận xét" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "Hướng giải cho %s" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "%(page)s của %(user)s" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "đánh giá bình luận" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "đánh giá bình luận" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "Ghi đè khóa nhận xét" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "khoá bình luận" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "khoá các bình luận" @@ -880,7 +891,7 @@ msgid "contest name" msgstr "tên cuộc thi" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "tác giả" @@ -888,7 +899,7 @@ msgstr "tác giả" msgid "These users will be able to edit the contest." msgstr "Những người dùng này có thể chỉnh sửa cuộc thi." -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "giám khảo" @@ -896,7 +907,7 @@ msgstr "giám khảo" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "Những người dùng này có thể chỉnh sửa cuộc thi, nhưng sẽ không được liệt kê trong danh sách tác giả." -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "người kiểm tra" @@ -932,12 +943,12 @@ msgstr "Những người dùng này sẽ có thể theo dõi cuộc thi, nhưng msgid "description" msgstr "mô tả" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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" @@ -945,12 +956,12 @@ msgstr "t. gian b. đầu" msgid "end time" msgstr "thời gian kết thúc" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "giới hạn thời gian" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "công khai" @@ -1070,11 +1081,11 @@ msgstr "hiển thị cài đặt rút gọn" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "Có hiển thị phần cài đặt của cuộc thi tại trang của cuộc thi hay không?" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "dành riêng cho tổ chức" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "tổ chức" @@ -1104,7 +1115,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "Nếu tổ chức là riêng tư, chỉ những lớp này mới có thể xem cuộc thi." #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "Ảnh OpenGraph" @@ -1124,7 +1135,7 @@ msgstr "số lượng người tham gia trực tiếp" msgid "contest summary" msgstr "tổng kết cuộc thi" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "Văn bản thuần tuý, hiển thị trong thẻ meta, ví dụ như cho các phương tiện truyền thông xã hội." @@ -1137,7 +1148,7 @@ msgstr "mã truy cập" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "Một mã tùy chọn để nhắc nhở các thí sinh trước khi họ được phép tham gia kỳ thi. Để trống để vô hiệu hóa." -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "cá nhân - không tính điểm" @@ -1185,213 +1196,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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" @@ -1443,7 +1454,7 @@ msgstr "tiêu đề bài viết" msgid "slug" msgstr "slug" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "hiển thị công khai" @@ -1496,7 +1507,7 @@ msgstr "phân nhóm bài" msgid "problem type" msgstr "kiểu bài tập" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "kiểu bài tập" @@ -1508,7 +1519,7 @@ msgstr "ID của nhóm đề bài" msgid "problem group name" msgstr "tên nhóm đề bài" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "nhóm đề bài" @@ -1545,7 +1556,7 @@ msgstr "URL cho biểu tượng." msgid "license text" msgstr "văn bản cấp phép" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "giấy phép" @@ -1585,267 +1596,267 @@ msgstr "tên bài tập" msgid "The full name of the problem, as shown in the problem list." msgstr "Tên đầy đủ của đề bài, được hiển thị trong dánh sách đề bài." -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "nội dung bài tập" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "người tạo" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "Những người này có thể chỉnh sửa bài tập và được liệt kê trong danh sách tác giả." -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "Những người này có thể chỉnh sửa bài tập nhưng không được liệt kê trong danh sách tác giả." -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "Những người này có thể xem bài tập riêng tư nhưng không thể chỉnh sửa chúng." -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "Kiểu của bài tập, được hiển thị trong trang đề bài." -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "Nhóm của bài tập, hiển thị trong danh sách bài tập." -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "Giới hạn thời gian (tính bằng giây) cho bài tập này. Phần lẻ giây (chẳng hạn 1.5) cũng được hỗ trợ." -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "giới hạn bộ nhớ" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "Giới hạn bộ nhớ (kilobytes) cho bài tập này (chẳng hạn 256mb = 262144 kilobytes)." -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "ngắn mạch" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "Điểm thưởng khi hoàn thành bài tập. Điểm được hiển thị với hậu tố 'p' nếu là bài từng phần." -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "cho phép cho điểm từng phần" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "ngôn ngữ cho phép" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "Danh sách các ngôn ngữ cho phép nộp bài." -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "quản lý thủ công" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "Liệu trình chấm có được phép quản lý dữ liệu hay không." -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "ngày xuất bản" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "Không có khả năng tự động công khai vì vấn đề tương thích ngược." -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "Cấm những người dùng được chọn nộp bài cho bài tập này." -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "Giấy phép mà theo đó bài tập này được công bố." -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "tổng quan bài tập" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "số thành viên" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "Số thành viên đã giải được bài tập." -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "tỉ lệ giải được" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "cho phép truy cập hoàn toàn markdown" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "hiển thị nguồn" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "Nếu riêng tư, chỉ những tổ chức này có thể xem bài tập." -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "Xem các bài bị ẩn" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "Sửa đề bài của mình" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "Sửa mọi đề bài" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "Sửa mọi đề bài công khai" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "Sửa bài tập với chỉ toàn markup" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Nhân bản bài tập" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "Thay đổi trường is_public" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "Thay đổi trường is_manually_managed" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "Xem đề bài riêng của tổ chức" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "ngôn ngữ" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "tên bộ dịch" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "mô tả bộ dịch" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "dịch đầu bài" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "dịch đầu bài" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "bài tập được làm rõ" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "nội dung làm rõ" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "thời gian làm rõ" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "làm rõ vấn đề" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "làm rõ vấn đề" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "giới hạn tài nguyên theo ngôn ngữ" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "giới hạn tài nguyên theo ngôn ngữ" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "đầu bài liên quan" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "ngày công bố" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "nội dung hướng dẫn giải" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "Xem các lời giải ẩn" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "lời giải" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "lời giải" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" -msgstr "" +msgstr "điểm được đề xuất" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 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 +#: judge/models/problem.py:592 msgid "voter" msgstr "người bình chọn" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "thời gian vote" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." -msgstr "" +msgstr "Thời điểm vote." -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "ghi chú" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." -msgstr "" +msgstr "phanvchung" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" -msgstr "Bình chọn cho bài" +msgstr "bình chọn cho bài" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" -msgstr "" +msgstr "phanvchung" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, 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 +1879,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 +1916,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 +2051,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:381 msgid "organization" msgstr "tổ chức" @@ -2081,7 +2092,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:389 msgid "class" msgstr "lớp" @@ -2106,26 +2117,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 +2150,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 "" +msgstr "bị cấm vote điểm cho bài tập" -#: 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:335 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:336 msgid "Edit TOTP settings" msgstr "Chỉnh sửa cài đặt TOTP" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "hồ sơ người dùng" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "hồ sơ người dùng" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "tên thiết bị" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "thông tin đăng nhập" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "public key" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "sign counter" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "Chứng chỉ WebAuthn: %(name)s" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "Chứng chỉ WebAuthn" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "Nhiều chứng chỉ WebAuthn" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "thời gian yêu cầu" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "trạng thái" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 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:386 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:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "Bị từ chối" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "lý do" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "yêu cầu tham gia tổ chức" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "yêu cầu tham gia tổ chức" @@ -2571,15 +2586,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:282 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:283 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:284 msgid "points granted" msgstr "điểm được cho" @@ -2587,141 +2602,141 @@ msgstr "điểm được cho" msgid "submission language" msgstr "ngôn ngữ lập trình" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "trạng thái" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "kết quả" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "lỗi dịch" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "nhóm test" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "điểm cho testcase" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "tổng điểm test case" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "đánh giá trên" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "thời gian chấm của bài nộp" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "ngày cuối cùng được chấm lại bởi admin" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "chỉ được chạy bởi test sơ bộ" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "khóa nạp bài" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "Bài nộp %(id)d về %(problem)s bởi %(user)s" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "Ngừng bất kì bài nộp" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "Chấm lại bài nộp" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "Chấm lại nhiều bài nộp" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "Nộp không giới hạn" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "Xem tất cả bài nộp" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "Gửi lại bài nộp của người khác" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "Chỉnh sửa trạng thái khóa của nạp bài" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "nộp bài" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "bài nộp liên quan" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "mã nguồn" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "Nguồn %(submission)s" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "nguồn nộp" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "các nguồn nộp" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "mã testcase" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "cờ trạng thái" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "khả năng điểm" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "lô số" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "phản hồi chấm thi" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 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:289 msgid "program output" msgstr "lập trình đầu ra" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "test case của bài" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "các test case của bài" @@ -2785,16 +2800,6 @@ msgstr "tin nhắn vé" msgid "ticket messages" msgstr "các tin nhắn vé" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "Trang [page] / [topage]" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "Trang số %s trên %s" - #: judge/ratings.py:194 msgid "Newbie" msgstr "Newbie" @@ -2851,6 +2856,11 @@ msgstr "Đang chuẩn bị dữ liệu bài nộp của bạn" msgid "Preparing your comment data" msgstr "Đang chuẩn bị dữ liệu bình luận của bạn" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "Lệnh theo lô trống là không được phép." @@ -2936,45 +2946,45 @@ 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" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "Bị rối?" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "Bạn cần phải giải ít nhất một bài trước khi được quyền bầu chọn." -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "Bình luận không tìm thấy." -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "Bạn không thể bình chọn cho bình luận của mình." -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 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:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "Biên tập từ trang web" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +2993,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" @@ -3116,213 +3126,213 @@ msgstr "trang lỗi %s" msgid "Runtimes" msgstr "Đang chạy" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "Không có tổ chức như vậy" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "Không thể tìm thấy một tổ chức với khóa \"%s\"." -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 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:98 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:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "Đang tham gia tổ chức" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "Bạn đã trong tổ chức." -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 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:189 msgid "Leaving organization" msgstr "Rời khỏi tổ chức" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, 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:216 judge/views/organization.py:478 #, 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:217 judge/views/organization.py:479 #, 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:230 #, python-format msgid "Request to join %s" msgstr "Yêu cầu tham gia %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "Chi tiết yêu cầu tham gia" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, 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:322 #, 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:324 #, 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:339 #, 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:340 #, 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:370 #, 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:394 judge/views/organization.py:402 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:395 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:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "Không thể loại thành viên" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 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:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Lớp {name} trong {organization}" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Lớp {name} - {organization}" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, 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:71 msgid "No such problem" msgstr "Không có vấn đề như vậy" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "Hướng giải của {0}" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "Không có hướng dẫn" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, 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:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "thành công" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "Nộp cho %s" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "Bạn đã gửi quá nhiều lần." -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "Cấm nộp bài" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "Bạn đã được coi là cá nhận không tính điểm cho đề này. Bạn không thể nộp bài." -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "Quá nhiều bài nộp" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "Bạn đã vượt quá giới hạn lần nộp của bài này." -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "Bạn có muốn bị tôi ngăn chặn?" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "Nhân bản bài tập" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "Nhân bản bài tập từ %s" @@ -3380,17 +3390,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 +3430,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,77 +3446,77 @@ 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" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "Ma trận phiên bản" +msgid "Version" +msgstr "Phiên bản" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "Từ chối quyền. Hãy giải %(problem)s để xem." -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "Không thể xem bài nộp" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "Từ chối quyền." -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "Nộp %(problem)s bởi %(user)s" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 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:400 judge/views/submission.py:405 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:401 judge/views/submission.py:406 #, 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:434 judge/views/submission.py:437 #, 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:498 judge/views/submission.py:505 #, 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:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, 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:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, 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 +3571,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 +3696,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" @@ -3701,55 +3715,55 @@ msgstr "Xem các bài nộp" #: templates/admin/judge/problem/change_form.html:20 #: templates/admin/judge/problem/change_form.html:23 msgid "View problem votes" -msgstr "" +msgstr "View problem votes" #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 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 +3964,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 +4053,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 +4265,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 +4273,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 +4437,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 +4636,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 +4672,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 +4741,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 +4908,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 +4947,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 +4984,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 +4994,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 +5006,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." @@ -5098,7 +5104,7 @@ msgstr[0] "Đây là bước cuối để kích hoạt tài khoản của bạn. #: templates/registration/activation_email.html:14 #: templates/registration/activation_email.txt:8 msgid "Please click on the following link to activate your account:" -msgstr "Vui lòng nhấn vào link bên dưới để kích hoạt tài khoản của bạn" +msgstr "Vui lòng nhấn vào link bên dưới để kích hoạt tài khoản của bạn:" #: templates/registration/activation_email.html:18 #: templates/registration/activation_email.txt:11 @@ -5108,7 +5114,7 @@ msgstr "" #: templates/registration/activation_email.html:22 #, python-format msgid "See you soon! If you have problems activating your account, feel free to send us an email at %(email)s." -msgstr "Hẹn gặp lại! Nếu bạn có vấn đề về kích hoạt tài khoản của bạn, hãy email cho chúng tôi tại %(email)s" +msgstr "Hẹn gặp lại! Nếu bạn có vấn đề về kích hoạt tài khoản của bạn, hãy email cho chúng tôi tại %(email)s." #: templates/registration/activation_email.html:25 #: templates/registration/password_reset_email.html:17 @@ -5119,7 +5125,7 @@ msgstr "Hẹn gặp lại!" #, python-format msgid "Please activate your %(site_name)s account in the next %(count)s day." msgid_plural "Please activate your %(site_name)s account in the next %(count)s days." -msgstr[0] "Hãy kích hoạt tài khoản %(site_name)s của bạn trong %(count)s ngày " +msgstr[0] "Hãy kích hoạt tài khoản %(site_name)s của bạn trong %(count)s ngày." #: templates/registration/activation_email_subject.txt:1 #, python-format @@ -5195,7 +5201,7 @@ msgstr "Quên mật khẩu trên trang %(site_name)s? Đừng lo lắng!" #: templates/registration/password_reset_email.html:8 #, python-format msgid "To reset the password for your account \"%(username)s\", click the link below." -msgstr "Để reset lại mật khẩu tài khoản \"%(username)s\" của bạn, nhấn vào link dưới đây" +msgstr "Để reset lại mật khẩu tài khoản \"%(username)s\" của bạn, nhấn vào link dưới đây." #: templates/registration/password_reset_email.html:14 #, python-format @@ -5229,7 +5235,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 +5248,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 +5319,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 +5338,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 +5356,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ủ." @@ -5424,8 +5430,8 @@ msgid "Judges" msgstr "Các máy chấm" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "Ma trận phiên bản" +msgid "Versions" +msgstr "Phiên bản" #: templates/submission/info-base.html:8 #, python-format @@ -5453,23 +5459,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." @@ -5623,7 +5629,7 @@ msgstr "Đã hoàn thành!" #: templates/task_status.html:95 msgid "Failed!" -msgstr "Không thành công" +msgstr "Không thành công!" #: templates/ticket/list.html:70 templates/ticket/ticket.html:95 msgid "Reopened: " @@ -5633,32 +5639,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 +5715,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..fe7afa11e1 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-04-23 00:51\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ể sửa điểm: %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" @@ -68,7 +68,7 @@ msgstr[0] "%(cnt)d bài gửi trong một năm trước" #: resources/user_profile.js:74 msgid "%(cnt)d submission in %(year)d" msgid_plural "%(cnt)d submissions in %(year)d" -msgstr[0] "bài gửi trong %(year)d năm" +msgstr[0] "%(cnt)d bài gửi trong năm %(year)d" #: resources/user_profile.js:88 msgid "%(cnt)d submission on %(date)s" diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po index 6ed83bf773..955ea8ca71 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:53\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -17,119 +17,119 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "加泰隆语" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "德语" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "希腊语" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "英语" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "西班牙语" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "法语" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "克罗地亚语" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "匈牙利语" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "日语" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "韩语" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "巴西葡萄牙语" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "罗马尼亚语" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "俄语" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "塞尔维亚文(拉丁字母)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "土耳其语" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "越南语" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "简体中文" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "首页" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "内容" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "%d个评论成功隐藏。" -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "隐藏选定评论" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "%d个评论成功取消隐藏。" -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "取消隐藏选定评论" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +344,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "题目" @@ -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 "已锁定" @@ -510,7 +510,8 @@ msgstr "在线评测系统" msgid "Comment body" msgstr "评论正文" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "有这个代码的竞赛已经存在。" @@ -722,108 +723,118 @@ msgstr "有这个代码的竞赛已经存在。" msgid "N j, Y, g:i a" msgstr "Y年n月j日 G:i" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "在{time}" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "页代码必须匹配 ^[pcs]:[a-z0-9]+$|^b:\\d+$" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "评论者" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "发布时间" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "关联页" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "投票" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "评论正文" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "隐藏" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "母评论" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "评论" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "评论" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" msgstr "%s 的题解" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "%(page)s 由 %(user)s" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "评论投票" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "评论投票" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "覆盖评论锁定" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "评论锁定" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "评论锁定" @@ -880,7 +891,7 @@ msgid "contest name" msgstr "竞赛名称" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "作者" @@ -888,7 +899,7 @@ msgstr "作者" msgid "These users will be able to edit the contest." msgstr "这些用户可以编辑竞赛。" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "策展人" @@ -896,7 +907,7 @@ msgstr "策展人" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "这些用户将可以编辑竞赛,但会隐藏姓名。" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "测试人员" @@ -932,12 +943,12 @@ msgstr "这些用户将能够旁观竞赛,但是不能提前看到题目。" msgid "description" msgstr "描述" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "开始时间" @@ -945,12 +956,12 @@ msgstr "开始时间" msgid "end time" msgstr "结束时间" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "时间限制" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "公开" @@ -1070,11 +1081,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "只对组织可见" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "组织" @@ -1104,7 +1115,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "OpenGraph 图像" @@ -1124,7 +1135,7 @@ msgstr "实时参与者数" msgid "contest summary" msgstr "竞赛简介" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "在meta description标签内显示的纯文本介绍。" @@ -1137,7 +1148,7 @@ msgstr "访问码" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "在参赛者被允许参加竞赛之前的一个可选代码。如无需要请留空白禁用。" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "不受欢迎人物" @@ -1185,213 +1196,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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结果" @@ -1443,7 +1454,7 @@ msgstr "文章标题" msgid "slug" msgstr "网址标志" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "公共可见性" @@ -1496,7 +1507,7 @@ msgstr "题目类型名称" msgid "problem type" msgstr "题目类型" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "题目类型" @@ -1508,7 +1519,7 @@ msgstr "题目组标识符" msgid "problem group name" msgstr "题目组名称" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "题目组" @@ -1545,7 +1556,7 @@ msgstr "图标的URL。" msgid "license text" msgstr "许可证文本" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "许可证" @@ -1585,264 +1596,264 @@ msgstr "题目名称" msgid "The full name of the problem, as shown in the problem list." msgstr "题目列表中显示的题目全名。" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "题目正文" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "作者" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "这些用户将能够编辑题目并被列为作者。" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "这些用户将可以编辑这个题目,但不会公开显示为作者。" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "这些用户将能查看这个隐藏的题目,但无法编辑。" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "在题目页面显示的题目类型。" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "在题目列表显示的题目组。" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "这个题目的时间限制(以秒为单位)。支持小数秒计时方式(例如1.5)。" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "内存限制" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "此题目的存储限制,以kb为单位(例如 256mb = 262144 kb)。" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "跳过" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "完成题目得分的分数,如果有部分分数而显示'p'结尾。" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "允许部分分数" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "允许的语言" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "允许提交语言。" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" msgstr "手动管理" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "是否允许裁判管理数据。" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "公开日期" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "无法自动在时间后公开题目。" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "禁止这些用户对该题目提交答案。" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "此题目的許可證。" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "题目摘要" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "用户数" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "解决这个题目的用户数量。" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "通过率" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "允许使用所有markup" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "提交源码可见性" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "隐藏时,只对选择的组织才可见。" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "查看隐藏题目" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "编辑自己的题目" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "编辑所有题目" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "编辑所有公共题目" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "使用所有markup来编辑题目" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" msgstr "复制题目" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "改变is_public领域" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "改变is_manually_managed领域" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "查看对组织私有的题目" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "语言" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "翻译题目名" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "翻译题目正文" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "题目翻译" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "题目翻译" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "已澄清的题目" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "澄清的身体" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "澄清时间戳" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "题目澄清" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "题目澄清" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "语言特定资源限制" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "语言特定资源限制" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "关联的题目" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "发布日期" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "题解内容" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "查看隐藏的解答" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "题目讲解" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "题目讲解" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "投票者" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "备注" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "题目投票" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "题目投票" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1868,8 +1879,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 +2051,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:381 msgid "organization" msgstr "组织" @@ -2081,7 +2092,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:389 msgid "class" msgstr "类" @@ -2106,26 +2117,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 +2150,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:335 msgid "Shows in-progress development stuff" msgstr "显示正在开发的内容" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "编辑 TOTP 设置" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "用户信息" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "用户信息" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" msgstr "设备名称" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "凭据ID" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "公钥" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "签名数量" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "WebAuthn凭据:%(name)s" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "WebAuthn凭据" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "WebAuthn凭据" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "请求时间" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "状态" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "待确认" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "已批准" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "已拒绝" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "理由" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "组织加入请求" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "组织加入请求" @@ -2571,15 +2586,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:282 msgid "execution time" msgstr "执行时间" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "内存使用" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "获得分数" @@ -2587,141 +2602,141 @@ msgstr "获得分数" msgid "submission language" msgstr "提交语言" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "状态" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "结果" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "编译错误" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "测试组" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "测试点分值" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "测试用例总分" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "裁判服务器" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" msgstr "提交评论时间" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "管理员最后一次的重新判断日期" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "只进行过预测试" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "提交锁定" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "中止任何提交" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "重新评分提交" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "重新评分很多提交" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "不受限制提交" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "查看所有提交" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "重新提交他人的提交" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "更改提交锁定状态" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" msgstr "提交历史" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "相关提交" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "源码" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "%(submission)s 的源代码" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "测试编号" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "状态标志" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "满分" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "批号" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "评测反馈" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "延长的裁判反馈" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "程序输出" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "程序测试" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "程序测试" @@ -2785,16 +2800,6 @@ msgstr "工单消息" msgid "ticket messages" msgstr "工单消息" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "第[page]页,共[topage]页" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "第%s页/共%s页" - #: judge/ratings.py:194 msgid "Newbie" msgstr "新手" @@ -2851,6 +2856,11 @@ msgstr "正在准备您的提交资料" msgid "Preparing your comment data" msgstr "正在准备您的评论资料" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "第{page_number}页,共{total_pages}页" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "不允许测试组为空。" @@ -2936,45 +2946,45 @@ 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页" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "请别捣乱。" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "您投票前必须解决至少一个题目。" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "找不到评论。" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "您不能为自己的评论投票。" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "你已经投了票。" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "从网站中上编辑" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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 +2993,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" @@ -3116,213 +3126,213 @@ msgstr "页面错误 %s" msgid "Runtimes" msgstr "语言" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "无该组织" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "找不到标识符为”%s“的组织。" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "找不到该组织。" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "组织" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "加入组织" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "你已经是该组织的成员。" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "该组织不开放。" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "离开组织" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "你不是是“%s”的成员。" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, 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:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "你已经有一个待确认的加入 %s 的请求。" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "请求加入 %s" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "组织加入请求详细信息" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "管理 %s 的加入请求" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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:324 #, 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:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "批准了%d个用户。" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "拒绝了%d个用户。" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "编辑 %s" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "无法编辑组织" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "您没有编辑该组织的权利。" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "无法踢用户" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "你想踢的用户不存在!" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "无该题目" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "{0} 的题解" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "没有这种题解" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "找不到标识符为“%s”的题解。" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "成功" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "提交给 %s" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "您提交了太多次。" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "禁止提交" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "您在该题目不受欢迎。您被永久禁止为该题目提交解决程序。" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "提交太多了" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "您已超出此题目的提交限制。" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" msgstr "复制题目" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" msgstr "从 %s 克隆的题目" @@ -3380,17 +3390,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 +3430,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,77 +3446,77 @@ 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 "状态" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "版本矩阵" +msgid "Version" +msgstr "版本" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "拒绝访问。解决 %(problem)s 来查看它。" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" msgstr "无法访问提交" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "权限被拒绝。" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "%(user)s 在 %(problem)s 的提交结果" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "所有提交历史" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "我提交的程序" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "%s 的提交历史" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" msgstr "%s 的提交历史" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, 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:499 judge/views/submission.py:509 #, 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:609 judge/views/submission.py:624 #, 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:610 judge/views/submission.py:628 #, 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:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "{user} 对 {contest} 第 {number} 题提交的程序" @@ -3561,99 +3571,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 +3696,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 +3722,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 +3964,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 +4053,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 +4265,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 +4273,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 +4437,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 +4636,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 +4672,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 +4741,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 +4908,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 +4947,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 +4984,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 +4994,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 +5006,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 +5235,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 +5248,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 +5319,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 +5338,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 +5356,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 "联系服务器失败。" @@ -5424,8 +5430,8 @@ msgid "Judges" msgstr "裁判服务器" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "版本矩阵" +msgid "Versions" +msgstr "版本" #: templates/submission/info-base.html:8 #, python-format @@ -5453,23 +5459,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 +5639,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 +5715,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..8851a657dc 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-06-12 00:59+0000\n" +"PO-Revision-Date: 2023-06-13 00:53\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -17,119 +17,119 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:380 +#: dmoj/settings.py:385 msgid "Catalan" msgstr "加泰隆語" -#: dmoj/settings.py:381 +#: dmoj/settings.py:386 msgid "German" msgstr "德文" -#: dmoj/settings.py:382 +#: dmoj/settings.py:387 msgid "Greek" msgstr "希臘文" -#: dmoj/settings.py:383 +#: dmoj/settings.py:388 msgid "English" msgstr "英文" -#: dmoj/settings.py:384 +#: dmoj/settings.py:389 msgid "Spanish" msgstr "西班牙文" -#: dmoj/settings.py:385 +#: dmoj/settings.py:390 msgid "French" msgstr "法文" -#: dmoj/settings.py:386 +#: dmoj/settings.py:391 msgid "Croatian" msgstr "克羅地亞文" -#: dmoj/settings.py:387 +#: dmoj/settings.py:392 msgid "Hungarian" msgstr "匈牙利文" -#: dmoj/settings.py:388 +#: dmoj/settings.py:393 msgid "Japanese" msgstr "日語" -#: dmoj/settings.py:389 +#: dmoj/settings.py:394 msgid "Korean" msgstr "韓文" -#: dmoj/settings.py:390 +#: dmoj/settings.py:395 msgid "Brazilian Portuguese" msgstr "巴西葡萄牙語" -#: dmoj/settings.py:391 +#: dmoj/settings.py:396 msgid "Romanian" msgstr "羅馬尼亞文" -#: dmoj/settings.py:392 +#: dmoj/settings.py:397 msgid "Russian" msgstr "俄文" -#: dmoj/settings.py:393 +#: dmoj/settings.py:398 msgid "Serbian (Latin)" msgstr "塞爾維亞文(拉丁語系)" -#: dmoj/settings.py:394 +#: dmoj/settings.py:399 msgid "Turkish" msgstr "土耳其文" -#: dmoj/settings.py:395 +#: dmoj/settings.py:400 msgid "Vietnamese" msgstr "越南文" -#: dmoj/settings.py:396 +#: dmoj/settings.py:401 msgid "Simplified Chinese" msgstr "簡體中文" -#: dmoj/settings.py:397 +#: dmoj/settings.py:402 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 "首頁" -#: judge/admin/comments.py:23 judge/admin/interface.py:72 +#: judge/admin/comments.py:24 judge/admin/interface.py:72 msgid "Content" msgstr "内容" -#: judge/admin/comments.py:40 +#: judge/admin/comments.py:41 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." msgstr[0] "已成功隱藏%d則評論。" -#: judge/admin/comments.py:43 +#: judge/admin/comments.py:44 msgid "Hide comments" msgstr "隱藏評論" -#: judge/admin/comments.py:47 +#: judge/admin/comments.py:48 #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." msgstr[0] "已成功取消隱藏%d則評論。" -#: judge/admin/comments.py:50 +#: judge/admin/comments.py:51 msgid "Unhide comments" msgstr "取消隱藏回應" -#: judge/admin/comments.py:58 +#: judge/admin/comments.py:59 msgid "Associated page" 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:353 #: 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:349 +#: judge/models/profile.py:380 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,10 +344,10 @@ 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/models/problem.py:488 judge/models/problem.py:493 -#: judge/models/problem.py:516 judge/models/problem.py:576 +#: judge/admin/problem.py:276 judge/models/contest.py:592 +#: judge/models/contest.py:617 judge/models/contest.py:657 +#: judge/models/problem.py:505 judge/models/problem.py:510 +#: judge/models/problem.py:533 judge/models/problem.py:593 #: judge/models/problem_data.py:35 judge/models/submission.py:68 msgid "problem" msgstr "題目" @@ -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 "已锁定" @@ -510,7 +510,8 @@ msgstr "線上裁判" msgid "Comment body" msgstr "評論主體" -#: judge/comments.py:47 judge/views/comment.py:40 judge/views/ticket.py:46 +#: judge/comments.py:47 judge/views/comment.py:41 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:176 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 "" @@ -722,108 +723,118 @@ msgstr "" msgid "N j, Y, g:i a" msgstr "" -#: judge/jinja2/datetime.py:30 -#, python-brace-format -msgid "{time}" -msgstr "{time}" - -#: judge/jinja2/datetime.py:31 -#, python-brace-format -msgid "on {time}" -msgstr "在{time}" - #: judge/jinja2/rating.py:24 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/comment.py:25 +#: 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:23 msgid "Page code must be ^[pcs]:[a-z0-9]+$|^b:\\d+$" msgstr "" -#: judge/models/comment.py:41 +#: judge/models/comment.py:27 msgid "commenter" msgstr "" -#: judge/models/comment.py:42 +#: judge/models/comment.py:28 msgid "posted time" msgstr "發佈時間" -#: judge/models/comment.py:43 judge/models/comment.py:196 +#: judge/models/comment.py:29 judge/models/comment.py:182 msgid "associated page" msgstr "關聯頁" -#: judge/models/comment.py:45 +#: judge/models/comment.py:31 msgid "votes" msgstr "投票" -#: judge/models/comment.py:46 +#: judge/models/comment.py:32 msgid "body of comment" msgstr "評論主體" -#: judge/models/comment.py:47 templates/contest/list.html:50 +#: judge/models/comment.py:33 templates/contest/list.html:50 msgid "hidden" msgstr "隱藏" -#: judge/models/comment.py:48 +#: judge/models/comment.py:34 msgid "parent" msgstr "母評論" -#: judge/models/comment.py:53 +#: judge/models/comment.py:36 +msgid "revisions" +msgstr "" + +#: judge/models/comment.py:39 msgid "comment" msgstr "" -#: judge/models/comment.py:54 +#: judge/models/comment.py:40 msgid "comments" msgstr "評論" -#: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:547 +#: judge/models/comment.py:75 judge/models/comment.py:127 +#: judge/models/problem.py:564 #, python-format msgid "Editorial for %s" -msgstr "" +msgstr "%s的題解" -#: judge/models/comment.py:169 +#: judge/models/comment.py:155 #, python-format msgid "%(page)s by %(user)s" msgstr "" -#: judge/models/comment.py:191 +#: judge/models/comment.py:177 msgid "comment vote" msgstr "" -#: judge/models/comment.py:192 +#: judge/models/comment.py:178 msgid "comment votes" msgstr "" -#: judge/models/comment.py:201 +#: judge/models/comment.py:187 msgid "Override comment lock" msgstr "" -#: judge/models/comment.py:203 +#: judge/models/comment.py:189 msgid "comment lock" msgstr "" -#: judge/models/comment.py:204 +#: judge/models/comment.py:190 msgid "comment locks" msgstr "" @@ -880,7 +891,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:536 +#: judge/models/problem.py:553 msgid "authors" msgstr "作者" @@ -888,7 +899,7 @@ msgstr "作者" msgid "These users will be able to edit the contest." msgstr "這些使用者將能編輯這場競賽。" -#: judge/models/contest.py:73 judge/models/problem.py:126 +#: judge/models/contest.py:73 judge/models/problem.py:127 msgid "curators" msgstr "" @@ -896,7 +907,7 @@ msgstr "" msgid "These users will be able to edit the contest, but will not be listed as authors." msgstr "這些使用者將能編輯這場競賽,但不會被列為作者。" -#: judge/models/contest.py:77 judge/models/problem.py:129 +#: judge/models/contest.py:77 judge/models/problem.py:130 msgid "testers" msgstr "測試人員" @@ -932,12 +943,12 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:489 +#: judge/models/contest.py:89 judge/models/problem.py:506 #: judge/models/runtime.py:141 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 "開始時間" @@ -945,12 +956,12 @@ msgstr "開始時間" msgid "end time" msgstr "結束時間" -#: judge/models/contest.py:92 judge/models/problem.py:136 -#: judge/models/problem.py:518 +#: judge/models/contest.py:92 judge/models/problem.py:137 +#: judge/models/problem.py:535 msgid "time limit" msgstr "時間限制" -#: judge/models/contest.py:93 judge/models/problem.py:154 +#: judge/models/contest.py:93 judge/models/problem.py:155 msgid "publicly visible" msgstr "" @@ -1040,7 +1051,7 @@ msgstr "" #: judge/models/contest.py:124 msgid "hide problem tags" -msgstr "" +msgstr "隱藏題目標籤" #: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." @@ -1070,11 +1081,11 @@ msgstr "" msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:180 +#: judge/models/contest.py:139 judge/models/problem.py:181 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:140 judge/models/problem.py:178 +#: judge/models/contest.py:140 judge/models/problem.py:179 #: judge/models/profile.py:99 msgid "organizations" msgstr "組織" @@ -1089,7 +1100,7 @@ msgstr "" #: judge/models/contest.py:143 msgid "join organizations" -msgstr "" +msgstr "加入組織" #: judge/models/contest.py:144 msgid "If non-empty, only these organizations may join the contest." @@ -1104,7 +1115,7 @@ msgid "If organization private, only these classes may see the contest." msgstr "" #: judge/models/contest.py:148 judge/models/interface.py:74 -#: judge/models/problem.py:164 +#: judge/models/problem.py:165 msgid "OpenGraph image" msgstr "" @@ -1124,7 +1135,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:166 +#: judge/models/contest.py:156 judge/models/problem.py:167 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1137,7 +1148,7 @@ msgstr "" msgid "An optional code to prompt contestants before they are allowed to join the contest. Leave it blank to disable." msgstr "在參賽者被允許參加競賽之前的一個可選代碼。如無需要請留空白禁用。" -#: judge/models/contest.py:160 judge/models/problem.py:160 +#: judge/models/contest.py:160 judge/models/problem.py:161 msgid "personae non gratae" msgstr "" @@ -1185,213 +1196,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/submission.py:87 +#: judge/models/contest.py:491 judge/models/contest.py:593 +#: judge/models/contest.py:633 judge/models/contest.py:656 +#: judge/models/submission.py:88 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/problem.py:147 +#: judge/models/contest.py:594 judge/models/contest.py:621 +#: judge/models/problem.py:148 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:231 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 "" @@ -1443,7 +1454,7 @@ msgstr "" msgid "slug" msgstr "網址標誌" -#: judge/models/interface.py:69 judge/models/problem.py:534 +#: judge/models/interface.py:69 judge/models/problem.py:551 msgid "public visibility" msgstr "" @@ -1496,7 +1507,7 @@ msgstr "" msgid "problem type" msgstr "題目類型" -#: judge/models/problem.py:43 judge/models/problem.py:132 +#: judge/models/problem.py:43 judge/models/problem.py:133 msgid "problem types" msgstr "題目類型" @@ -1508,7 +1519,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:55 judge/models/problem.py:134 +#: judge/models/problem.py:55 judge/models/problem.py:135 msgid "problem group" msgstr "" @@ -1545,7 +1556,7 @@ msgstr "" msgid "license text" msgstr "" -#: judge/models/problem.py:76 judge/models/problem.py:162 +#: judge/models/problem.py:76 judge/models/problem.py:163 msgid "license" msgstr "許可證" @@ -1585,264 +1596,264 @@ msgstr "題目名稱" msgid "The full name of the problem, as shown in the problem list." msgstr "題目的完整名稱,這將會顯示在題目清單中。" -#: judge/models/problem.py:122 +#: judge/models/problem.py:123 msgid "problem body" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:124 msgid "creators" msgstr "建立者" -#: judge/models/problem.py:124 +#: judge/models/problem.py:125 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "這些使用者將能編輯此題目,並且他們將被列為作者。" -#: judge/models/problem.py:127 +#: judge/models/problem.py:128 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "這些使用者將能編輯此題目,但他們不會被列為作者。" -#: judge/models/problem.py:131 +#: judge/models/problem.py:132 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:133 +#: judge/models/problem.py:134 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:136 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:138 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." -msgstr "這個題目的時間限制(以秒為單位)。支持小數秒計時方式(例如1.5)。" +msgstr "這個題目的時間限制(以秒為單位)。支援小數秒計時方式(例如1.5)。" -#: judge/models/problem.py:141 judge/models/problem.py:521 +#: judge/models/problem.py:142 judge/models/problem.py:538 msgid "memory limit" msgstr "記憶體限制" -#: judge/models/problem.py:142 +#: judge/models/problem.py:143 msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "此題目的記憶體限制,以kb為單位(例如 256mb = 262144 kb)。" -#: judge/models/problem.py:146 +#: judge/models/problem.py:147 msgid "short circuit" msgstr "" -#: judge/models/problem.py:148 +#: judge/models/problem.py:149 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "完成題目得分的分數,如果有部分分數而顯示'p'結尾。" -#: judge/models/problem.py:151 +#: judge/models/problem.py:152 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:152 +#: judge/models/problem.py:153 msgid "allowed languages" msgstr "允許的語言" -#: judge/models/problem.py:153 +#: judge/models/problem.py:154 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:155 +#: judge/models/problem.py:156 msgid "manually managed" -msgstr "" +msgstr "手動管理" -#: judge/models/problem.py:156 +#: judge/models/problem.py:157 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:158 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:159 +#: judge/models/problem.py:160 msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:162 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:164 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:166 msgid "problem summary" msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:168 msgid "number of users" msgstr "" -#: judge/models/problem.py:168 +#: judge/models/problem.py:169 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:170 msgid "solve rate" msgstr "" -#: judge/models/problem.py:170 +#: judge/models/problem.py:171 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:172 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:179 +#: judge/models/problem.py:180 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:478 +#: judge/models/problem.py:495 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:496 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:497 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:481 +#: judge/models/problem.py:498 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:482 +#: judge/models/problem.py:499 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:483 templates/problem/problem.html:181 +#: judge/models/problem.py:500 templates/problem/problem.html:181 msgid "Clone problem" -msgstr "" +msgstr "複製題目" -#: judge/models/problem.py:484 +#: judge/models/problem.py:501 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:502 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:503 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:494 judge/models/problem.py:517 +#: judge/models/problem.py:511 judge/models/problem.py:534 #: judge/models/runtime.py:111 msgid "language" msgstr "語言" -#: judge/models/problem.py:495 +#: judge/models/problem.py:512 msgid "translated name" msgstr "" -#: judge/models/problem.py:496 +#: judge/models/problem.py:513 msgid "translated description" msgstr "" -#: judge/models/problem.py:501 +#: judge/models/problem.py:518 msgid "problem translation" msgstr "" -#: judge/models/problem.py:502 +#: judge/models/problem.py:519 msgid "problem translations" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:523 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:507 +#: judge/models/problem.py:524 msgid "clarification body" msgstr "" -#: judge/models/problem.py:508 +#: judge/models/problem.py:525 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:511 +#: judge/models/problem.py:528 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:512 +#: judge/models/problem.py:529 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:527 +#: judge/models/problem.py:544 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:528 +#: judge/models/problem.py:545 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:532 +#: judge/models/problem.py:549 msgid "associated problem" msgstr "" -#: judge/models/problem.py:535 +#: judge/models/problem.py:552 msgid "publish date" msgstr "" -#: judge/models/problem.py:537 +#: judge/models/problem.py:554 msgid "editorial content" msgstr "" -#: judge/models/problem.py:560 +#: judge/models/problem.py:577 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:562 +#: judge/models/problem.py:579 msgid "solution" msgstr "題解" -#: judge/models/problem.py:563 +#: judge/models/problem.py:580 msgid "solutions" msgstr "題解" -#: judge/models/problem.py:568 +#: judge/models/problem.py:585 msgid "proposed points" msgstr "" -#: judge/models/problem.py:569 +#: judge/models/problem.py:586 msgid "The amount of points the voter thinks this problem deserves." msgstr "" -#: judge/models/problem.py:575 +#: judge/models/problem.py:592 msgid "voter" msgstr "投票者" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "vote time" msgstr "" -#: judge/models/problem.py:578 +#: judge/models/problem.py:595 msgid "The time this vote was cast." msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "note" msgstr "" -#: judge/models/problem.py:580 +#: judge/models/problem.py:597 msgid "Justification for problem point value." msgstr "" -#: judge/models/problem.py:584 +#: judge/models/problem.py:601 msgid "problem vote" msgstr "" -#: judge/models/problem.py:585 +#: judge/models/problem.py:602 msgid "problem votes" msgstr "" -#: judge/models/problem.py:588 +#: judge/models/problem.py:605 #, python-format msgid "Points vote by %(voter)s for %(problem)s" msgstr "" @@ -1868,7 +1879,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 +2051,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:381 msgid "organization" msgstr "組織" @@ -2081,7 +2092,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:389 msgid "class" msgstr "" @@ -2106,26 +2117,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 +2150,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:335 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:324 +#: judge/models/profile.py:336 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:326 +#: judge/models/profile.py:338 msgid "user profile" msgstr "使用者個人檔案" -#: judge/models/profile.py:327 +#: judge/models/profile.py:339 msgid "user profiles" msgstr "使用者個人檔案" -#: judge/models/profile.py:333 +#: judge/models/profile.py:351 msgid "device name" -msgstr "" +msgstr "裝置名稱" -#: judge/models/profile.py:334 +#: judge/models/profile.py:352 msgid "credential ID" msgstr "" -#: judge/models/profile.py:335 +#: judge/models/profile.py:353 msgid "public key" msgstr "" -#: judge/models/profile.py:336 +#: judge/models/profile.py:354 msgid "sign counter" msgstr "" -#: judge/models/profile.py:354 +#: judge/models/profile.py:372 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:357 +#: judge/models/profile.py:375 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:358 +#: judge/models/profile.py:376 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:365 +#: judge/models/profile.py:383 msgid "request time" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:384 msgid "state" msgstr "狀態" -#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +#: judge/models/profile.py:385 templates/organization/requests/tabs.html:4 msgid "Pending" msgstr "待確認" -#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +#: judge/models/profile.py:386 templates/organization/requests/tabs.html:10 msgid "Approved" msgstr "已批准" -#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +#: judge/models/profile.py:387 templates/organization/requests/tabs.html:13 msgid "Rejected" msgstr "已拒絕" -#: judge/models/profile.py:372 +#: judge/models/profile.py:390 msgid "reason" msgstr "原因" -#: judge/models/profile.py:381 +#: judge/models/profile.py:399 msgid "organization join request" msgstr "" -#: judge/models/profile.py:382 +#: judge/models/profile.py:400 msgid "organization join requests" msgstr "" @@ -2571,15 +2586,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:282 msgid "execution time" msgstr "執行時間" -#: judge/models/submission.py:71 judge/models/submission.py:256 +#: judge/models/submission.py:71 judge/models/submission.py:283 msgid "memory usage" msgstr "記憶體使用量" -#: judge/models/submission.py:72 judge/models/submission.py:257 +#: judge/models/submission.py:72 judge/models/submission.py:284 msgid "points granted" msgstr "獲得分數" @@ -2587,141 +2602,141 @@ msgstr "獲得分數" msgid "submission language" msgstr "提交語言" -#: judge/models/submission.py:74 +#: judge/models/submission.py:75 msgid "status" msgstr "狀態" -#: judge/models/submission.py:75 +#: judge/models/submission.py:76 msgid "result" msgstr "結果" -#: judge/models/submission.py:77 +#: judge/models/submission.py:78 msgid "compile errors" msgstr "編譯錯誤" -#: judge/models/submission.py:79 +#: judge/models/submission.py:80 msgid "batched cases" msgstr "" -#: judge/models/submission.py:80 +#: judge/models/submission.py:81 msgid "test case points" msgstr "" -#: judge/models/submission.py:81 +#: judge/models/submission.py:82 msgid "test case total points" msgstr "" -#: judge/models/submission.py:82 +#: judge/models/submission.py:83 msgid "judged on" msgstr "" -#: judge/models/submission.py:84 +#: judge/models/submission.py:85 msgid "submission judge time" -msgstr "" +msgstr "提交紀錄評測時間" -#: judge/models/submission.py:85 +#: judge/models/submission.py:86 msgid "last rejudge date by admin" msgstr "" -#: judge/models/submission.py:86 +#: judge/models/submission.py:87 msgid "was ran on pretests only" msgstr "" -#: judge/models/submission.py:89 +#: judge/models/submission.py:90 msgid "submission lock" msgstr "" -#: judge/models/submission.py:197 +#: judge/models/submission.py:198 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:222 +#: judge/models/submission.py:223 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:223 +#: judge/models/submission.py:224 msgid "Rejudge the submission" msgstr "重新評測這筆提交紀錄" -#: judge/models/submission.py:224 +#: judge/models/submission.py:225 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:226 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:227 msgid "View all submission" msgstr "檢視所有提交紀錄" -#: judge/models/submission.py:227 +#: judge/models/submission.py:228 msgid "Resubmit others' submission" msgstr "重新提交他人的提交紀錄" -#: judge/models/submission.py:228 +#: judge/models/submission.py:229 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:232 msgid "submissions" -msgstr "" +msgstr "提交紀錄" -#: judge/models/submission.py:235 judge/models/submission.py:251 +#: judge/models/submission.py:262 judge/models/submission.py:278 msgid "associated submission" msgstr "" -#: judge/models/submission.py:237 +#: judge/models/submission.py:264 msgid "source code" msgstr "源碼" -#: judge/models/submission.py:240 +#: judge/models/submission.py:267 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:270 msgid "submission source" msgstr "" -#: judge/models/submission.py:244 +#: judge/models/submission.py:271 msgid "submission sources" msgstr "" -#: judge/models/submission.py:253 +#: judge/models/submission.py:280 msgid "test case ID" msgstr "" -#: judge/models/submission.py:254 +#: judge/models/submission.py:281 msgid "status flag" msgstr "" -#: judge/models/submission.py:258 +#: judge/models/submission.py:285 msgid "points possible" msgstr "" -#: judge/models/submission.py:259 +#: judge/models/submission.py:286 msgid "batch number" msgstr "" -#: judge/models/submission.py:260 +#: judge/models/submission.py:287 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:288 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:289 msgid "program output" msgstr "" -#: judge/models/submission.py:276 +#: judge/models/submission.py:303 msgid "submission test case" msgstr "" -#: judge/models/submission.py:277 +#: judge/models/submission.py:304 msgid "submission test cases" msgstr "" @@ -2785,16 +2800,6 @@ msgstr "" msgid "ticket messages" msgstr "" -#: judge/pdf_problems.py:148 judge/pdf_problems.py:199 -#: judge/pdf_problems.py:266 -msgid "Page [page] of [topage]" -msgstr "" - -#: judge/pdf_problems.py:288 -#, python-format -msgid "Page %s of %s" -msgstr "" - #: judge/ratings.py:194 msgid "Newbie" msgstr "" @@ -2851,6 +2856,11 @@ msgstr "" msgid "Preparing your comment data" msgstr "" +#: judge/utils/pdfoid.py:22 +#, python-brace-format +msgid "Page {page_number} of {total_pages}" +msgstr "" + #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." msgstr "" @@ -2936,45 +2946,45 @@ 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 "" -#: judge/views/comment.py:27 +#: judge/views/comment.py:28 msgid "Messing around, are we?" msgstr "" -#: judge/views/comment.py:36 +#: judge/views/comment.py:37 msgid "You must solve at least one problem before you can vote." msgstr "您必須解開至少一道問題才可以投票。" -#: judge/views/comment.py:50 +#: judge/views/comment.py:51 msgid "Comment not found." msgstr "" -#: judge/views/comment.py:53 +#: judge/views/comment.py:54 msgid "You cannot vote on your own comments." msgstr "" -#: judge/views/comment.py:71 +#: judge/views/comment.py:72 msgid "You already voted." msgstr "你已經投過票了。" -#: judge/views/comment.py:134 judge/views/organization.py:359 +#: judge/views/comment.py:135 judge/views/organization.py:386 msgid "Edited from site" msgstr "" -#: judge/views/comment.py:155 +#: judge/views/comment.py:160 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,118 +2993,118 @@ 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 "" #: judge/views/error.py:14 msgid "404 error" -msgstr "" +msgstr "404 錯誤" #: judge/views/error.py:15 #, python-format @@ -3116,216 +3126,216 @@ msgstr "" msgid "Runtimes" msgstr "語言" -#: judge/views/organization.py:52 judge/views/organization.py:55 +#: judge/views/organization.py:53 judge/views/organization.py:56 msgid "No such organization" msgstr "" -#: judge/views/organization.py:53 +#: judge/views/organization.py:54 #, python-format msgid "Could not find an organization with the key \"%s\"." msgstr "" -#: judge/views/organization.py:56 +#: judge/views/organization.py:57 msgid "Could not find such organization." msgstr "" -#: judge/views/organization.py:81 judge/views/register.py:33 +#: judge/views/organization.py:98 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "組織" -#: judge/views/organization.py:118 +#: judge/views/organization.py:141 #, 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:167 judge/views/organization.py:170 +#: judge/views/organization.py:175 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:142 +#: judge/views/organization.py:167 msgid "You are already in the organization." msgstr "您已經在此組織中。" -#: judge/views/organization.py:145 +#: judge/views/organization.py:170 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:164 +#: judge/views/organization.py:189 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:191 judge/views/organization.py:451 +#: judge/views/organization.py:216 judge/views/organization.py:478 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:192 judge/views/organization.py:452 +#: judge/views/organization.py:217 judge/views/organization.py:479 #, python-format msgid "You already have a pending request to join %s." msgstr "您已有一個待處理加入 %s 的請求。" -#: judge/views/organization.py:205 +#: judge/views/organization.py:230 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:224 +#: judge/views/organization.py:249 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:263 +#: judge/views/organization.py:290 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:295 +#: judge/views/organization.py:322 #, 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:324 #, 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:339 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" -#: judge/views/organization.py:313 +#: judge/views/organization.py:340 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" -#: judge/views/organization.py:343 +#: judge/views/organization.py:370 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:367 judge/views/organization.py:375 +#: judge/views/organization.py:394 judge/views/organization.py:402 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:368 +#: judge/views/organization.py:395 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:376 +#: judge/views/organization.py:403 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:408 judge/views/organization.py:412 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:382 +#: judge/views/organization.py:409 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:386 +#: judge/views/organization.py:413 #, 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:450 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:429 +#: judge/views/organization.py:456 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:457 +#: judge/views/organization.py:484 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:71 msgid "No such problem" msgstr "沒有這個題目" -#: judge/views/problem.py:73 +#: judge/views/problem.py:72 #, 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:114 judge/views/problem.py:117 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:137 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:139 +#: judge/views/problem.py:138 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:240 +#: judge/views/problem.py:239 msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:263 +#: judge/views/problem.py:262 msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:266 +#: judge/views/problem.py:265 msgid "success" msgstr "成功" -#: judge/views/problem.py:654 judge/views/problem.py:662 +#: judge/views/problem.py:647 judge/views/problem.py:655 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:707 +#: judge/views/problem.py:700 msgid "You submitted too many submissions." msgstr "" -#: judge/views/problem.py:711 +#: judge/views/problem.py:704 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:712 +#: judge/views/problem.py:705 msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting to this problem." msgstr "您在該題目不受歡迎。您被永久禁止為該題目提交解決程序。" -#: judge/views/problem.py:716 +#: judge/views/problem.py:709 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:717 +#: judge/views/problem.py:710 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:767 +#: judge/views/problem.py:760 msgid "Do you want me to ban you?" msgstr "" -#: judge/views/problem.py:785 +#: judge/views/problem.py:778 msgid "Clone Problem" -msgstr "" +msgstr "複製題目" -#: judge/views/problem.py:812 +#: judge/views/problem.py:805 #, python-format msgid "Cloned problem from %s" -msgstr "" +msgstr "從%s複製的題目" #: judge/views/problem_data.py:37 msgid "Checker arguments must be a JSON object." @@ -3372,7 +3382,7 @@ msgstr "" #: judge/views/problem_manage.py:111 #, python-format msgid "Rescoring all submissions for %s..." -msgstr "" +msgstr "正在重新評分%s的所有提交紀錄..." #: judge/views/problem_manage.py:120 #, python-format @@ -3380,17 +3390,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 "" @@ -3410,7 +3420,7 @@ msgstr "" #: judge/views/register.py:44 #, python-format msgid "The email address \"%s\" is already taken. Only one registration is allowed per address." -msgstr "電子郵件地址“%s”已被使用。每個電子郵件地址只允許一個賬戶。" +msgstr "電子郵件地址“%s”已被使用。每個電子郵件地址只允許一個帳號。" #: judge/views/register.py:50 msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." @@ -3420,11 +3430,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,77 +3446,77 @@ 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 "狀態" #: judge/views/status.py:108 -msgid "Version matrix" -msgstr "" +msgid "Version" +msgstr "版本" -#: judge/views/submission.py:70 +#: judge/views/submission.py:71 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." msgstr "" -#: judge/views/submission.py:75 judge/views/submission.py:77 +#: judge/views/submission.py:76 judge/views/submission.py:78 msgid "Can't access submission" -msgstr "" +msgstr "無法存取提交紀錄" -#: judge/views/submission.py:77 +#: judge/views/submission.py:78 msgid "Permission denied." msgstr "" -#: judge/views/submission.py:81 judge/views/submission.py:88 +#: judge/views/submission.py:82 judge/views/submission.py:89 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:232 judge/views/submission.py:233 +#: judge/views/submission.py:233 judge/views/submission.py:234 #: templates/problem/problem.html:132 msgid "All submissions" msgstr "全部的提交紀錄" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:400 judge/views/submission.py:405 msgid "All my submissions" msgstr "我的提交紀錄" -#: judge/views/submission.py:393 judge/views/submission.py:398 +#: judge/views/submission.py:401 judge/views/submission.py:406 #, python-format msgid "All submissions by %s" msgstr "%s 的提交" -#: judge/views/submission.py:426 judge/views/submission.py:429 +#: judge/views/submission.py:434 judge/views/submission.py:437 #, python-format msgid "All submissions for %s" -msgstr "" +msgstr "%s的所有提交紀錄" -#: judge/views/submission.py:490 judge/views/submission.py:497 +#: judge/views/submission.py:498 judge/views/submission.py:505 #, python-format msgid "My submissions for %(problem)s" -msgstr "" +msgstr "我在%(problem)s的提交紀錄" -#: judge/views/submission.py:491 judge/views/submission.py:501 +#: judge/views/submission.py:499 judge/views/submission.py:509 #, python-format msgid "%(user)s's submissions for %(problem)s" -msgstr "" +msgstr "%(user)s在%(problem)s的提交紀錄" -#: judge/views/submission.py:601 judge/views/submission.py:616 +#: judge/views/submission.py:609 judge/views/submission.py:624 #, python-format msgid "My submissions in %(contest)s" -msgstr "" +msgstr "我在%(contest)s的提交紀錄" -#: judge/views/submission.py:602 judge/views/submission.py:620 +#: judge/views/submission.py:610 judge/views/submission.py:628 #, python-format msgid "%(user)s's submissions in %(contest)s" -msgstr "" +msgstr "%(user)s在%(contest)s的提交紀錄" -#: judge/views/submission.py:638 judge/views/submission.py:656 +#: judge/views/submission.py:646 judge/views/submission.py:664 #, 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:651 judge/views/submission.py:672 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "{user} 對 {contest} 第 {number} 題提交的程序" @@ -3561,99 +3571,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 "我的帳戶" +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 "" +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 +3696,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 +3722,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 "登錄" +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 "編輯" @@ -3761,7 +3775,7 @@ msgstr "" #: templates/blog/list.html:45 msgid "Blog" -msgstr "博客" +msgstr "部落格" #: templates/blog/list.html:47 msgid "Events" @@ -3804,12 +3818,12 @@ msgstr "" #: templates/blog/list.html:137 templates/contest/list.html:226 msgid "Upcoming contests" -msgstr "" +msgstr "即將到來的競賽" #: templates/blog/list.html:145 templates/contest/contest.html:41 #, python-format msgid "Starting in %(countdown)s." -msgstr "" +msgstr "%(countdown)s後開始" #: templates/blog/list.html:154 msgid "Comment stream" @@ -3869,7 +3883,7 @@ msgstr "已編輯" #: templates/comments/list.html:82 msgid "Link" -msgstr "链接" +msgstr "連結" #: templates/comments/list.html:87 templates/comments/list.html:101 msgid "Reply" @@ -3950,15 +3964,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 "" +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 +4053,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 "統計資料" @@ -4062,24 +4076,24 @@ msgstr "複製" #: templates/contest/contest-tabs.html:38 #: templates/contest/contest-tabs.html:58 msgid "Leave contest" -msgstr "" +msgstr "離開競賽" #: templates/contest/contest-tabs.html:45 templates/contest/list.html:294 msgid "Virtual join" -msgstr "" +msgstr "參加虛擬競賽" #: templates/contest/contest-tabs.html:56 msgid "Stop spectating" -msgstr "" +msgstr "停止旁觀" #: templates/contest/contest-tabs.html:67 #: templates/contest/contest-tabs.html:81 msgid "Join contest" -msgstr "" +msgstr "參加競賽" #: templates/contest/contest-tabs.html:73 msgid "Spectate contest" -msgstr "" +msgstr "旁觀競賽" #: templates/contest/contest-tabs.html:80 templates/contest/list.html:137 msgid "You cannot join this contest." @@ -4251,26 +4265,26 @@ 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 "用戶" +msgstr "使用者" #: templates/contest/contest.html:200 msgid "Editorials" -msgstr "" +msgstr "題解" -#: templates/contest/contest.html:226 templates/problem/list.html:229 +#: templates/contest/contest.html:226 templates/problem/list.html:220 msgid "Editorial" -msgstr "" +msgstr "題解" #: templates/contest/list.html:17 templates/contest/media-js.html:9 #: templates/contest/media-js.html:15 msgid "Are you sure you want to join?" -msgstr "" +msgstr "您確定要參加嗎?" #: templates/contest/list.html:18 msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." -msgstr "計時器在你第一次參加競賽的時候就會啟動,競賽開始後將不會停止。" +msgstr "計時器將在您第一次參加競賽時啟動,且競賽開始後就不會停止。" #: templates/contest/list.html:70 msgid "private" @@ -4288,7 +4302,7 @@ msgstr "" #: templates/contest/list.html:105 #, python-format msgid "%(duration)s long" -msgstr "" +msgstr "時長%(duration)s" #: templates/contest/list.html:125 templates/contest/list.html:137 msgid "Join" @@ -4296,11 +4310,11 @@ msgstr "加入" #: templates/contest/list.html:131 msgid "Spectate" -msgstr "" +msgstr "旁觀" #: templates/contest/list.html:147 msgid "Active contests" -msgstr "" +msgstr "正在進行的競賽" #: templates/contest/list.html:151 templates/contest/list.html:193 #: templates/contest/list.html:231 templates/contest/list.html:268 @@ -4315,28 +4329,28 @@ msgstr "" #: templates/contest/list.html:170 templates/contest/list.html:209 #, python-format msgid "Ends in %(countdown)s" -msgstr "" +msgstr "%(countdown)s後結束" #: templates/contest/list.html:243 #, python-format msgid "Starting in %(countdown)s" -msgstr "" +msgstr "%(countdown)s後開始" #: templates/contest/list.html:254 msgid "There are no scheduled contests at this time." -msgstr "" +msgstr "目前沒有排定的競賽" #: templates/contest/list.html:260 msgid "Past contests" -msgstr "" +msgstr "過去的競賽" #: templates/contest/media-js.html:4 msgid "Are you sure you want to leave?" -msgstr "" +msgstr "您確定要離開嗎?" #: templates/contest/media-js.html:5 msgid "You cannot come back to a virtual participation. You will have to start a new one." -msgstr "離開虛擬競賽后將無法再次返回,必須重新開始虛擬競賽。" +msgstr "離開虛擬競賽后將無法再次返回,您必須重新開始虛擬競賽。" #: templates/contest/media-js.html:10 msgid "Joining a contest starts your timer, after which it becomes unstoppable." @@ -4349,7 +4363,7 @@ msgstr "" #: templates/contest/moss.html:28 msgid "Are you sure you want to MOSS the contest?" -msgstr "" +msgstr "您確定要MOSS這場競賽?" #: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" @@ -4363,7 +4377,7 @@ msgstr[0] "" #: templates/contest/moss.html:62 msgid "No submissions" -msgstr "" +msgstr "沒有提交紀錄" #: templates/contest/moss.html:76 msgid "Re-MOSS contest" @@ -4417,25 +4431,25 @@ msgstr "" #: templates/contest/ranking-table.html:42 msgid "Un-Disqualify" -msgstr "" +msgstr "恢復資格" #: templates/contest/ranking-table.html:45 msgid "Disqualify" -msgstr "" +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 "" @@ -4472,7 +4486,7 @@ msgstr "" #: templates/newsletter/subscription_update_activated.html:3 #: templates/newsletter/subscription_update_activated.html:6 msgid "activate" -msgstr "激活" +msgstr "啟用" #: templates/newsletter/subscription_unsubscribe_activated.html:8 msgid "You have successfully been unsubscribed." @@ -4487,7 +4501,7 @@ msgstr "" #: templates/newsletter/subscription_unsubscribe_email_sent.html:8 msgid "Your unsubscription request has successfully been received. An email has been sent to you with a link you need to follow in order to confirm your unsubscription." -msgstr "您的退訂請求已被收到。一份包含確認鏈接的郵件已被發送。" +msgstr "已收到您的退訂請求。已發送一封包含確認連結的郵件,您需要按照指示來確認退訂。" #: templates/newsletter/subscription_unsubscribe_user.html:17 msgid "Do you want to unsubscribe from this newsletter?" @@ -4518,7 +4532,7 @@ msgstr "" #: templates/newsletter/subscription_update_email_sent.html:8 msgid "Your update request was successfully received and an activation email has been sent to you. In that email you will find a link which you need to follow in order to update your subscription." -msgstr "您的更新請求成功已被成功接收。我們已經發送了激活電子郵件。該電子郵件中包含了更新您的訂閱的鏈接。" +msgstr "已成功收到您的更新請求。我們已發送一封啟用電子郵件。您將會在該電子郵件中找到一個連結,您需要按照這個連結來更新您的訂閱。" #: templates/organization/edit.html:11 #: templates/organization/requests/pending.html:34 @@ -4592,7 +4606,7 @@ msgstr "創建" #: templates/organization/requests/detail.html:13 msgid "User:" -msgstr "用戶:" +msgstr "使用者:" #: templates/organization/requests/detail.html:17 msgid "Organization:" @@ -4622,7 +4636,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 "刪除?" @@ -4636,7 +4650,7 @@ msgstr "" #: templates/organization/requests/request.html:29 msgid "Request!" -msgstr "请求!" +msgstr "請求!" #: templates/organization/requests/tabs.html:7 msgid "Log" @@ -4658,167 +4672,167 @@ 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 "" #: templates/problem/editorial.html:23 msgid "Remember to use this editorial **only** when stuck, and **not to copy-paste code from it**. Please be respectful to the problem author and editorialist." -msgstr "記住 **只** 在沒有思路時使用題解,**不要從它複製粘貼代碼**。請尊重題目和題解的作者。" +msgstr "記住 **只** 在沒有思路時使用題解,**不要複製貼上代碼**。請尊重題目和題解的作者。" #: templates/problem/editorial.html:24 msgid "Submitting an official solution before solving the problem yourself is a bannable offence." -msgstr "在真正解決題目之前提交題解的代碼是可以封禁的罪行。" +msgstr "在真正親自解開題目前提交官方題解的代碼是可以封禁的罪行。" #: templates/problem/editorial.html:30 templates/problem/problem.html:230 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}提交,是否確認?" +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 "您將重新評分一些提交,是否確認?" +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 "" @@ -4839,11 +4853,11 @@ msgstr[0] "" #: templates/problem/problem.html:117 msgid "0 submissions left" -msgstr "" +msgstr "剩下0次提交機會" #: templates/problem/problem.html:129 msgid "My submissions" -msgstr "" +msgstr "我的提交紀錄" #: templates/problem/problem.html:133 msgid "Best submissions" @@ -4864,7 +4878,7 @@ msgstr "" #: templates/problem/problem.html:151 msgid "Read editorial" -msgstr "" +msgstr "閱讀題解" #: templates/problem/problem.html:156 msgid "Manage tickets" @@ -4872,11 +4886,11 @@ msgstr "" #: templates/problem/problem.html:160 msgid "Edit problem" -msgstr "" +msgstr "編輯題目" #: templates/problem/problem.html:162 msgid "Edit test data" -msgstr "" +msgstr "編輯測試資料" #: templates/problem/problem.html:167 msgid "My tickets" @@ -4894,11 +4908,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 "記憶體限制:" @@ -4919,7 +4933,7 @@ msgstr "" #: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" -msgstr[0] "裁判服務器:" +msgstr[0] "評測伺服器:" #: templates/problem/problem.html:295 msgid "none available" @@ -4933,14 +4947,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 "" @@ -4951,19 +4957,19 @@ msgstr "" #: templates/problem/search-form.html:14 msgid "Full text search" -msgstr "" +msgstr "全文搜尋" #: templates/problem/search-form.html:21 msgid "Hide solved problems" -msgstr "" +msgstr "隱藏已解開的題目" #: templates/problem/search-form.html:27 msgid "Has editorial" -msgstr "" +msgstr "已有題解" #: templates/problem/search-form.html:32 msgid "Show problem types" -msgstr "" +msgstr "顯示題目類型" #: templates/problem/search-form.html:38 templates/problem/search-form.html:40 #: templates/submission/submission-list-tabs.html:4 @@ -4978,8 +4984,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 +4994,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 +5006,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] "" +msgstr[0] "你還有%(left)s次提交機會" -#: templates/problem/submit.html:218 +#: templates/problem/submit.html:152 msgid "You have 0 submissions left" -msgstr "" +msgstr "你還有0次提交機會" -#: templates/problem/submit.html:252 +#: templates/problem/submit.html:186 msgid "No judge is available for this problem." msgstr "此題目目前沒有可用的評測伺服器。" @@ -5145,7 +5151,7 @@ msgstr "" #: templates/registration/logout.html:3 msgid "See you later!" -msgstr "" +msgstr "等會兒見!" #: templates/registration/password_change_done.html:3 msgid "Your password was successfully changed." @@ -5161,7 +5167,7 @@ msgstr "" #: templates/registration/password_change_form.html:13 msgid "Change Password" -msgstr "" +msgstr "更改密碼" #: templates/registration/password_reset.html:7 msgid "Send Reset Email" @@ -5181,11 +5187,11 @@ msgstr "" #: templates/registration/password_reset_done.html:4 msgid "We've emailed you instructions for setting your password. You should be receiving them shortly." -msgstr "我們已經通過電子郵件向您發送設置密碼的說明。你應該很快就會收到。" +msgstr "我們已通過電子郵件向您發送設置密碼的說明。您應該很快就會收到。" #: templates/registration/password_reset_done.html:5 msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder." -msgstr "如果您沒有收到電子郵件,請確保您打開的是您註冊時所用的郵箱,並檢查您的垃圾郵件文件夾。" +msgstr "如果您沒有收到電子郵件,請確保您打開的是您註冊時所用的郵箱,並檢查您的垃圾郵件。" #: templates/registration/password_reset_email.html:6 #, python-format @@ -5205,7 +5211,7 @@ msgstr "" #: templates/registration/password_reset_email.txt:1 #, python-format msgid "You're receiving this email because you requested a password reset for your user account at %(site_name)s." -msgstr "因為您要求您的用戶帳戶在 %(site_name)s 重置密碼,所以您收到這封電子郵件。" +msgstr "您會收到此信件是因為您在%(site_name)s要求重置密碼。" #: templates/registration/password_reset_email.txt:3 msgid "Please go to the following page and choose a new password:" @@ -5229,10 +5235,10 @@ 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 "繼續 》" +msgstr "繼續 >" #: templates/registration/registration_closed.html:3 msgid "Registration is currently closed. Please contact an administrator." @@ -5240,49 +5246,49 @@ msgstr "" #: templates/registration/registration_complete.html:3 msgid "You have successfully been registered. An email has been sent to the email address you provided to confirm your registration." -msgstr "您已成功註冊。一封電子郵件已被發送到的您的電子郵件地址以確認您的註冊。" +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 "" +msgstr "註冊!" #: templates/registration/totp_disable.html:31 msgid "To protect your account, you must first authenticate before you can disable Two Factor Authentication." -msgstr "為了保護您的帳戶,您必須先進行身份驗證才能禁用兩因素認證。" +msgstr "為了保護您的帳戶,您必須先進行身份驗證才能停用雙重要素驗證。" #: templates/registration/totp_disable.html:38 #: templates/registration/two_factor_auth.html:79 msgid "Enter the 6-digit code generated by your app or one of your 16-character scratch codes:" -msgstr "輸入您應用生成的6位數代碼或者一個16位一次性代碼:" +msgstr "輸入您的應用程式所生成的6位數代碼或者一個16位一次性代碼:" #: templates/registration/totp_disable.html:41 msgid "Disable Two Factor Authentication" @@ -5298,7 +5304,7 @@ msgstr "二維碼" #: templates/registration/totp_enable.html:74 msgid "Or enter this code manually:" -msgstr "" +msgstr "或手動輸入此代碼:" #: templates/registration/totp_enable.html:85 msgid "Enter the 6-digit code generated by your app:" @@ -5313,17 +5319,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 +5338,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 +5356,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 "" @@ -5374,7 +5380,7 @@ msgstr "" #: templates/registration/two_factor_auth.html:98 #, python-format msgid "If you lost your authentication device and are unable to use your scratch codes, please contact us at %(email)s." -msgstr "如果您丟失了您的身份驗證設備且無法使用您的驗證碼,請聯繫我們 %(email)s。" +msgstr "如果您遺失了您的身份驗證裝置且無法使用您的一次性代碼,請聯繫我們 %(email)s。" #: templates/stats/language.html:11 msgid "Submission Statistics" @@ -5386,7 +5392,7 @@ msgstr "" #: templates/status/judge-status-table.html:3 msgid "Judge" -msgstr "裁判服務器" +msgstr "評測伺服器" #: templates/status/judge-status-table.html:5 msgid "Online" @@ -5394,7 +5400,7 @@ msgstr "在線" #: templates/status/judge-status-table.html:7 msgid "Uptime" -msgstr "啟動時間" +msgstr "在線時間" #: templates/status/judge-status-table.html:8 msgid "Ping" @@ -5421,11 +5427,11 @@ msgstr "" #: templates/status/status-tabs.html:4 msgid "Judges" -msgstr "裁判服務器" +msgstr "評測伺服器" #: templates/status/status-tabs.html:6 -msgid "Version Matrix" -msgstr "" +msgid "Versions" +msgstr "版本" #: templates/submission/info-base.html:8 #, python-format @@ -5447,29 +5453,29 @@ msgstr "" #: templates/submission/internal-error-message.html:14 msgid "Error information" -msgstr "" +msgstr "錯誤訊息" #: templates/submission/list.html:35 templates/submission/status.html:80 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 "" @@ -5484,7 +5490,7 @@ msgstr "查看" #: templates/submission/row.html:59 msgid "rejudge" -msgstr "重新評分" +msgstr "重新評測" #: templates/submission/row.html:64 msgid "This submission has been locked, and cannot be rejudged." @@ -5633,32 +5639,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 +5715,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 "" @@ -5848,7 +5858,7 @@ msgstr "" #: templates/user/edit-profile.html:428 msgid "Add" -msgstr "添加" +msgstr "新增" #: templates/user/edit-profile.html:436 msgid "User-script:" @@ -6045,11 +6055,11 @@ msgstr "" #: templates/user/user-tabs.html:10 msgid "Admin User" -msgstr "管理用戶" +msgstr "管理使用者" #: templates/user/user-tabs.html:13 msgid "Admin Profile" -msgstr "管理資料" +msgstr "管理使用者檔案" #: templates/widgets/select_all.html:8 msgid "Check all" 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"