From cef86de9d7b0983d5bad8c76d04bd53455473acc Mon Sep 17 00:00:00 2001 From: dmoj-build Date: Mon, 2 Jan 2023 00:47:57 +0000 Subject: [PATCH] i18n: update translations from Crowdin --- locale/ar/LC_MESSAGES/django.po | 1944 ++++++++++++--------- locale/ar/LC_MESSAGES/djangojs.po | 75 +- locale/ca/LC_MESSAGES/django.po | 2046 +++++++++++++--------- locale/ca/LC_MESSAGES/djangojs.po | 59 +- locale/de/LC_MESSAGES/django.po | 1904 +++++++++++--------- locale/de/LC_MESSAGES/djangojs.po | 59 +- locale/el/LC_MESSAGES/django.po | 2068 ++++++++++++---------- locale/el/LC_MESSAGES/djangojs.po | 59 +- locale/en/LC_MESSAGES/django.po | 1926 +++++++++++--------- locale/en/LC_MESSAGES/djangojs.po | 57 +- locale/es/LC_MESSAGES/django.po | 2062 ++++++++++++---------- locale/es/LC_MESSAGES/djangojs.po | 59 +- locale/fr/LC_MESSAGES/django.po | 2231 ++++++++++++++---------- locale/fr/LC_MESSAGES/djangojs.po | 59 +- locale/hr/LC_MESSAGES/django.po | 1931 +++++++++++--------- locale/hr/LC_MESSAGES/djangojs.po | 63 +- locale/hu/LC_MESSAGES/django.po | 1964 ++++++++++++--------- locale/hu/LC_MESSAGES/djangojs.po | 59 +- locale/it/LC_MESSAGES/django.po | 1908 +++++++++++--------- locale/it/LC_MESSAGES/djangojs.po | 59 +- locale/ja/LC_MESSAGES/django.po | 1995 ++++++++++++--------- locale/ja/LC_MESSAGES/djangojs.po | 55 +- locale/ko/LC_MESSAGES/django.po | 2013 ++++++++++++--------- locale/ko/LC_MESSAGES/djangojs.po | 55 +- locale/lt/LC_MESSAGES/django.po | 1922 +++++++++++--------- locale/lt/LC_MESSAGES/djangojs.po | 67 +- locale/nl/LC_MESSAGES/django.po | 1908 +++++++++++--------- locale/nl/LC_MESSAGES/djangojs.po | 59 +- locale/pl/LC_MESSAGES/django.po | 1940 ++++++++++++--------- locale/pl/LC_MESSAGES/djangojs.po | 67 +- locale/pt/LC_MESSAGES/django.po | 1908 +++++++++++--------- locale/pt/LC_MESSAGES/djangojs.po | 59 +- locale/ro/LC_MESSAGES/django.po | 2109 ++++++++++++---------- locale/ro/LC_MESSAGES/djangojs.po | 63 +- locale/ru/LC_MESSAGES/django.po | 1948 ++++++++++++--------- locale/ru/LC_MESSAGES/djangojs.po | 67 +- locale/sr_Latn/LC_MESSAGES/django.po | 1969 ++++++++++++--------- locale/sr_Latn/LC_MESSAGES/djangojs.po | 63 +- locale/tr/LC_MESSAGES/django.po | 1998 ++++++++++++--------- locale/tr/LC_MESSAGES/djangojs.po | 59 +- locale/vi/LC_MESSAGES/django.po | 2049 +++++++++++++--------- locale/vi/LC_MESSAGES/djangojs.po | 55 +- locale/zh_Hans/LC_MESSAGES/django.po | 2091 ++++++++++++---------- locale/zh_Hans/LC_MESSAGES/djangojs.po | 55 +- locale/zh_Hant/LC_MESSAGES/django.po | 2043 +++++++++++++--------- locale/zh_Hant/LC_MESSAGES/djangojs.po | 55 +- 46 files changed, 27909 insertions(+), 19355 deletions(-) diff --git a/locale/ar/LC_MESSAGES/django.po b/locale/ar/LC_MESSAGES/django.po index 6ef0af16a0..aba46fdbae 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-06-16 00:54\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Arabic, Saudi Arabia\n" "Language: ar_SA\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "الكاتالونية" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "الألمانية" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "" + +#: dmoj/settings.py:384 msgid "English" msgstr "الانجليزية" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "الإسبانية" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "الفرنسية" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "الكرواتية" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "الهنغارية" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "يابانية" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "الكورية" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "البرتغالية" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "محتوى" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -140,12 +148,25 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "مسألة" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "" + +#: judge/admin/contest.py:77 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 "" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "الإعدادات" @@ -170,7 +191,7 @@ msgstr "التقييم" msgid "Access" msgstr "الولوج" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "العدالة" @@ -234,7 +255,7 @@ msgstr[5] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -264,7 +285,7 @@ msgstr "" msgid "username" msgstr "اسم المستخدم" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "افتراضي" @@ -272,17 +293,14 @@ msgstr "افتراضي" msgid "link path" msgstr "سبيل الرابط" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "محتوى" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "ملخص" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "مستخدم" @@ -290,53 +308,52 @@ msgstr "مستخدم" msgid "object" msgstr "عنصر" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." @@ -347,11 +364,11 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." @@ -362,11 +379,11 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." @@ -377,28 +394,35 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "" @@ -408,8 +432,8 @@ msgstr "" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -426,7 +450,13 @@ msgid "Disallowed problems" msgstr "" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "" + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" msgstr "" #: judge/admin/runtime.py:77 @@ -441,54 +471,54 @@ msgstr "" msgid "Capabilities" msgstr "" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "" msgstr[1] "" @@ -497,47 +527,51 @@ 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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" +msgid "These problems are included in this group of problems." msgstr "" #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" +msgid "These problems are included in this type of problems." msgstr "" #: judge/apps.py:8 @@ -552,11 +586,11 @@ msgstr "" msgid "Your part is silent, little toad." msgstr "" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "" @@ -649,20 +683,26 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -678,91 +718,98 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "" +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] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: judge/forms.py:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "" @@ -824,8 +871,8 @@ msgstr "" msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 -msgid "hide the comment" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" msgstr "" #: judge/models/comment.py:48 @@ -841,7 +888,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "" @@ -924,7 +971,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "" @@ -932,7 +979,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "" @@ -940,7 +987,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "" @@ -976,7 +1023,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -989,12 +1036,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "" @@ -1031,7 +1078,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -1046,85 +1093,85 @@ msgstr "" msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1136,7 +1183,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1144,15 +1191,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1167,7 +1215,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1180,7 +1228,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "" @@ -1244,7 +1292,7 @@ msgstr "" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1341,15 +1389,8 @@ msgstr "" msgid "contest participations" msgstr "" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "" @@ -1389,7 +1430,7 @@ msgstr "" msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "" @@ -1445,6 +1486,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1485,7 +1534,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1505,10 +1554,6 @@ msgstr "" msgid "post summary" msgstr "" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "" @@ -1525,337 +1570,374 @@ msgstr "" msgid "blog posts" msgstr "" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "" -#: judge/models/problem.py:67 -msgid "URL to the icon" +#: judge/models/problem.py:66 +msgid "URL to the icon." msgstr "" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "" @@ -1896,11 +1978,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1908,59 +1990,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1973,11 +2063,11 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" +msgid "Organization name shown in URLs." msgstr "" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" +msgid "Displayed beside user name during contests." msgstr "" #: judge/models/profile.py:47 @@ -1989,7 +2079,7 @@ msgid "administrators" msgstr "" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" +msgid "Those who can edit this organization." msgstr "" #: judge/models/profile.py:50 @@ -2001,7 +2091,7 @@ msgid "is open organization?" msgstr "" #: judge/models/profile.py:52 -msgid "Allow joining organization" +msgid "Allow joining organization." msgstr "" #: judge/models/profile.py:53 @@ -2009,11 +2099,11 @@ msgid "maximum size" msgstr "" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" +msgid "Maximum amount of users in this organization, only applicable to private organizations." msgstr "" -#: judge/models/profile.py:56 -msgid "Student access code" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." msgstr "" #: judge/models/profile.py:60 @@ -2025,11 +2115,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -2041,12 +2131,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -2058,7 +2148,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2069,12 +2159,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2086,7 +2172,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2099,7 +2185,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2130,8 +2216,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2157,163 +2243,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + +#: judge/models/profile.py:372 msgid "reason" msgstr "" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2342,7 +2448,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2422,7 +2528,7 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2430,7 +2536,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2515,8 +2621,8 @@ msgstr "" msgid "Internal Error" msgstr "" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2540,10 +2646,6 @@ msgstr "" msgid "Completed" msgstr "" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2552,15 +2654,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2612,97 +2714,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2750,10 +2852,6 @@ msgstr "" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "" - #: judge/models/ticket.py:34 msgid "message body" msgstr "" @@ -2862,7 +2960,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2885,10 +2983,6 @@ msgstr "" msgid "Error" msgstr "" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2940,7 +3034,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2965,7 +3059,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -3040,62 +3134,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3119,7 +3209,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3142,63 +3232,80 @@ msgstr "" msgid "Organizations" msgstr "" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +msgid "Your organization can only receive %d more member." +msgid_plural "Your organization can only receive %d more members." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: judge/views/organization.py:297 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3209,7 +3316,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3220,137 +3327,152 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 -#, python-format -msgid "Could not find an editorial with the code \"%s\"." +#: judge/views/problem.py:139 +#, python-format +msgid "Could not find an editorial with the code \"%s\"." +msgstr "" + +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" +#: judge/views/problem.py:266 +msgid "success" msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3397,7 +3519,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3417,15 +3539,15 @@ msgstr "" msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "" @@ -3437,7 +3559,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "" @@ -3463,59 +3585,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3624,51 +3738,46 @@ msgstr "" msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3694,13 +3803,15 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3708,54 +3819,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3787,39 +3892,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "" @@ -3842,7 +3961,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "" @@ -3850,64 +3969,90 @@ msgstr "" msgid "Link" msgstr "" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "" @@ -3915,6 +4060,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3979,12 +4136,12 @@ msgstr "" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "" @@ -3992,7 +4149,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "" @@ -4017,7 +4174,7 @@ msgstr "" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "" @@ -4034,7 +4191,7 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -4042,6 +4199,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -4050,6 +4217,21 @@ msgstr "" msgid "Contest is over." msgstr "" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "" @@ -4192,9 +4374,9 @@ msgstr "" msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "" @@ -4202,7 +4384,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4215,10 +4397,6 @@ msgstr "" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4227,37 +4405,54 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "" #: templates/contest/media-js.html:4 @@ -4278,22 +4473,33 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4347,19 +4553,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "" @@ -4380,7 +4586,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4546,7 +4752,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "" @@ -4559,25 +4765,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" +msgid "Request!" msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4594,55 +4788,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4654,7 +4852,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "" @@ -4668,20 +4866,20 @@ msgstr[5] "" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4745,28 +4943,40 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: templates/problem/manage_submission.html:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" @@ -4777,59 +4987,72 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "" @@ -4839,16 +5062,16 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" @@ -4858,15 +5081,15 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4915,8 +5138,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "" @@ -4956,6 +5179,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4965,6 +5236,58 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -5011,7 +5334,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -5027,22 +5349,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -5072,7 +5391,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5085,41 +5404,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -5128,7 +5442,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5160,14 +5475,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5176,6 +5494,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5193,19 +5512,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5231,38 +5546,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "" @@ -5295,23 +5610,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5377,19 +5696,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5434,11 +5757,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5455,31 +5778,31 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" @@ -5489,11 +5812,11 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5515,31 +5838,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5547,140 +5871,162 @@ msgstr "" msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5695,31 +6041,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5783,11 +6139,7 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" @@ -5798,15 +6150,15 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" @@ -5817,19 +6169,19 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "" @@ -5853,12 +6205,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/ar/LC_MESSAGES/djangojs.po b/locale/ar/LC_MESSAGES/djangojs.po index 57017d8302..57b4abeb27 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2022-06-16 00:54\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\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:207 +#: resources/common.js:195 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -28,8 +28,75 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: resources/common.js:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr " " +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: 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[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: 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[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: 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[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + diff --git a/locale/ca/LC_MESSAGES/django.po b/locale/ca/LC_MESSAGES/django.po index fe49ee1f7b..eba19caf99 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-21 00:46\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Catalan\n" "Language: ca_ES\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Català" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Alemany" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Grec" + +#: dmoj/settings.py:384 msgid "English" msgstr "Anglès" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Castellà" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Francès" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Croat" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Hongarès" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Japonès" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Coreà" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "Portuguès (Brasil)" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Romanès" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Rus" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Serbi (llatí)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Turc" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Vietnamita" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Xinès simplificat" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "Xinès tradicional" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Inici" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "Contingut" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -132,12 +140,25 @@ msgid "Included contests" msgstr "Concursos inclosos" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problema" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: 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:77 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 "Rejutjar" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "Ajustaments" @@ -162,7 +183,7 @@ msgstr "Puntuació" msgid "Access" msgstr "Accés" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "Justícia" @@ -210,7 +231,7 @@ msgstr[1] "Concursos %d desbloquejats amb èxit." msgid "Unlock contest submissions" msgstr "Desbloqueja els enviaments al concurs" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -232,7 +253,7 @@ msgstr "Recalcular els resultats" msgid "username" msgstr "nom d'usuari" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "virtual" @@ -240,17 +261,14 @@ msgstr "virtual" msgid "link path" msgstr "path a l'enllaç" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Contingut" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Resum" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "usuari" @@ -258,105 +276,111 @@ msgstr "usuari" msgid "object" msgstr "objecte" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Veure-ho al lloc web" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "Descriu els canvis que has fet (opcional)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Xarxes Socials" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Taxonomia" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Punts" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Límits" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Llenguatge" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "Historial" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Autors/es" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "La data de publicació del problema %d ha estat actualitzada correctament." msgstr[1] "La data de publicació dels problemes %d ha estat actualitzada correctament." -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "Posa la data de publicació a ara" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "Problema %d marcat com a públic amb èxit." msgstr[1] "Problemes %d marcats com a públic amb èxit." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Marca els problemes com a públics" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "Problema %d marcat com a privat amb èxit." msgstr[1] "Problemes %d marcats com a privats amb èxit." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "problema" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Usuari" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "Correu electrònic" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" -msgstr "Zona Horària" +msgstr "Zona horària" #: judge/admin/profile.py:113 msgid "date joined" @@ -364,22 +388,28 @@ msgstr "data quan es va unir" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "S'ha recalculat la puntuació de l'usuari %d." msgstr[1] "S'ha recalculat la puntuació dels usuaris %d." #: judge/admin/profile.py:123 msgid "Recalculate scores" -msgstr "Recalcular els resultats" +msgstr "Recalcular les puntuacions" #: judge/admin/runtime.py:19 msgid "Disallowed problems" msgstr "Problemes no autoritzats" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "Aquests problemes NO poden ser enviats en aquest llenguatge" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "Aquests problemes NO poden ser enviats en aquest llenguatge." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "Regenera" #: judge/admin/runtime.py:77 msgid "Description" @@ -393,100 +423,104 @@ msgstr "Informació" msgid "Capabilities" msgstr "Característiques" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Cap" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "No fet" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Excepcional" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "No acceptat" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "Bloquejat" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "Problemes inclosos" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Aquests problemes estan inclosos en aquest Grup" +msgid "These problems are included in this group of problems." +msgstr "Aquests problemes estan inclosos en aquest Grup." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "Aquests problemes estan inclosos en aquest Tipus" +msgid "These problems are included in this type of problems." +msgstr "Aquests problemes estan inclosos en aquest Tipus." #: judge/apps.py:8 msgid "Online Judge" @@ -500,11 +534,11 @@ msgstr "Cos del comentari" msgid "Your part is silent, little toad." msgstr "No se suposa que hagis de parlar, patufet." -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "Has de resoldre un problema com a mínim abans de que em pensi si et deixo parlar." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Comentari publicat" @@ -589,20 +623,22 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "IOI (abans del 2016)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "Els tokens d'autenticació en dos passos han de ser de {TOTP_CODE_LENGTH} dígits decimals." +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "Els tokens d'autenticació en dos passos han de ser d'{count} dígit decimal." +msgstr[1] "Els tokens d'autenticació en dos passos han de ser de {count} dígits decimals." -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "Token d'autenticació en dos passos invàlid." -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." -msgstr "Els codis Scratch han de ser de 16 caràcters en base32." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." +msgstr "Els codis Scratch han de ser de 16 caràcters en Base32." -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "El codi Scratch no és vàlid." @@ -618,91 +654,94 @@ msgstr "Activa les actualitzacions experimentals" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "No pots formar part de més de {count} organitzacions públiques." +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "Descarregar comentaris?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "Descarregar enviaments?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "Filtrar per el glob del codi de problema:" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "Deixar-ho buit per a incluir tots els enviaments" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtra per resultats:" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "Siusplau, seleccioneu com a mínim una cosa a descarregar." -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "Qualsevol jutge" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Nom d'usuari" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Contrasenya" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "Longitud del codi invàlida." -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "Resposta WebAuthn invàlida." -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "No hi ha hagut resposta WebAuthn." -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "Credencial WebAuthn invàlida." -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "Token d'autenticació en dos passos o codi Scratch invàlid." -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "S'ha d'especificar un totp_token o una webauthn_response." -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 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:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "Ja existeix un problema amb aquest codi." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 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:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "Ja existeix un concurs amb aquesta clau." #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "j N Y, G:i" @@ -764,9 +803,9 @@ msgstr "vots" msgid "body of comment" msgstr "cos del comentari" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "oculta comentari" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "ocult" #: judge/models/comment.py:48 msgid "parent" @@ -781,7 +820,7 @@ msgid "comments" msgstr "comentaris" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "Editorial de %s" @@ -864,7 +903,7 @@ msgid "contest name" msgstr "nom del concurs" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "autors/es" @@ -872,7 +911,7 @@ msgstr "autors/es" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "conservadors/es" @@ -880,7 +919,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "testers" @@ -916,7 +955,7 @@ msgstr "" msgid "description" msgstr "descripció" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "problemes" @@ -929,12 +968,12 @@ msgstr "hora d'inici" msgid "end time" msgstr "hora de finalització" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "límit de temps" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "visible públicament" @@ -971,7 +1010,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -986,85 +1025,85 @@ msgstr "Fes servir un sistema de clarificacions en comptes de comentaris." msgid "rating floor" msgstr "puntuació mínima" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" -msgstr "Puntuació mínima per al concurs" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." +msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "puntuació màxima" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" -msgstr "Puntuació màxima per al concurs" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." +msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "qualificar tots" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "Qualificar tots els usuaris que s'han unit." -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "exclou de les qualificacions" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "privat per a usuaris específics" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "concursants privats" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "amagar etiquets dels problemes" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "Si les etiquetes dels problemes han d'estar amagades per defecte." -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "executa només els casos de prova preliminars" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "Si els jutges han de jutjar només els casos de prova preliminars o tots els casos de prova. Generalment es posa en un concurs online, i després es treu per a jutjar tots els enviaments a l'acabament del concurs." -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "privat per a organitzacions" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "organitzacions" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1076,7 +1115,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1084,16 +1123,17 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "imatge OpenGraph" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" -msgstr "Imatge que sobrescriu el logo" +msgid "logo override image" +msgstr "imatge que sobreescriu el logo" #: judge/models/contest.py:151 msgid "This image will replace the default site logo for users inside the contest." @@ -1107,7 +1147,7 @@ msgstr "la quantitat de participans en viu" msgid "contest summary" msgstr "resum del concurs" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 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." @@ -1120,7 +1160,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "persones non grates" @@ -1184,7 +1224,7 @@ msgstr "Editar tots els concursos" msgid "Clone contest" msgstr "Clonar concurs" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "Passar el MOSS al concurs" @@ -1194,7 +1234,7 @@ msgstr "Puntuar concursos" #: judge/models/contest.py:476 msgid "Contest access codes" -msgstr "Codi d'accès al concurs" +msgstr "Codi d'accés al concurs" #: judge/models/contest.py:477 msgid "Create private contests" @@ -1281,15 +1321,8 @@ msgstr "participació al concurs" msgid "contest participations" msgstr "participacions al concurs" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "problema" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "punts" @@ -1329,7 +1362,7 @@ msgstr "problema del concurs" msgid "contest problems" msgstr "problemes del concurs" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "enviament" @@ -1385,6 +1418,14 @@ msgstr "resultat del MOSS del concurs" msgid "contest moss results" msgstr "resultats del MOSS del concurs" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "clau" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "valor" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "ítem de configuració" @@ -1425,7 +1466,7 @@ msgstr "títol de l'entrada" msgid "slug" msgstr "identificador únic" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "visibilitat pública" @@ -1445,10 +1486,6 @@ msgstr "publicar un contingut" msgid "post summary" msgstr "resum de l'entrada" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "imatge OpenGraph" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "Editar totes les entrades" @@ -1465,337 +1502,374 @@ msgstr "entrada del blog" msgid "blog posts" msgstr "entrades del blog" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "ID de la categoria del problema" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "nom de la categoria del problema" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "tipus del problema" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "tipus de problemes" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "ID del grup del problema" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "nom del grup del problema" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "grup del problema" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "grups del problema" -#: judge/models/problem.py:61 -msgid "key" -msgstr "clau" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "enllaç" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "nom complet" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "nom curt" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "Mostrat en pàgines sota aquesta llicència" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." +msgstr "Mostrat en pàgines sota aquesta llicència." -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "icona" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL de l'icona" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "URL de la icona." -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "text de la llicència" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "llicència" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "llicències" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "codi del problema" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" -msgstr "Un codi únic i curt per al problema, usat en la url després de /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" +msgstr "Un codi únic i curt per al problema, usat en l'URL després de /problem/" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "nom del problema" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 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:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "cos del problema" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "creadors/es" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 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:131 +#: judge/models/problem.py:127 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:135 +#: judge/models/problem.py:131 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:137 +#: judge/models/problem.py:133 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:140 +#: judge/models/problem.py:135 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:142 +#: judge/models/problem.py:137 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:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "límit de memòria" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "El límit de memòria per aquest problema, en kilobytes (p.e. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +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:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "curt circuit" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 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:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "permetre punts parcials" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "llenguatges permesos" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "Llista de llenguatges d'enviament permesos." -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "operat manualment" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 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:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "data de publicació" -#: judge/models/problem.py:163 -msgid "Doesn't have 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:159 +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:165 +#: judge/models/problem.py:161 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:167 +#: judge/models/problem.py:163 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:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "resum del problema" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "nombre d'usuaris" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "El nombre d'usuaris que ha resolt aquest problema." -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "percentatge d'usuaris que han resolt el problema" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "permet fer servir la llibreria sencera de Markdown" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 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:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "Veure problemes ocults" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "Editar problemes propis" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "Editar tots els problemes" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "Editar tots els problemes públics" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "Editar problemes amb accés total a markup" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Clonar problema" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "Cambiar camp is_public" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "Cambiar camp is_manually_managed" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "Veure els problemes privats per a organitzacions" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "llenguatge" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "nom traduït" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "descripció traduïda" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "traducció del problema" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "traduccions del problema" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "problema aclarit" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "cos de l'aclariment" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "marca de temps de l'aclariment" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "límit de recursos específics per llenguatge" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "límits de recursos específics per llenguatge" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "problema associat" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "data de publicació" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "contingut de l'editorial" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "Veure solucions ocultes" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "solució" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "solucions" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "votant" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "nota" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "vot del problema" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "vots del problema" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "Estàndard" @@ -1836,11 +1910,11 @@ msgstr "fitxer zip amb les dades del problema" msgid "generator file" msgstr "fitxer amb el generador" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "longitud de prefix de sortida" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "longitud de límit de sortida" @@ -1848,59 +1922,67 @@ msgstr "longitud de límit de sortida" msgid "init.yml generation feedback" msgstr "init.yml de generació de resultats" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "verificador" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "arguments del verificador" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" -msgstr "arguments del verificador como un objecte JSON" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." +msgstr "Arguments del verificador como un objecte JSON." -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "conjunt de dades del problema" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "posició del cas de proves" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "tipus del cas de proves" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "Cas normal" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "Inici del lot (Batch)" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "Final del lot (Batch)" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "nom del fitxer d'entrada" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "nom del fitxer de sortida" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "arguments del generador" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "nombre de punts" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "és un cas preliminar?" @@ -1913,12 +1995,12 @@ msgid "organization slug" msgstr "identificador únic de l'organització" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "Nom de l'organització tal i com es mostra en l'URL" +msgid "Organization name shown in URLs." +msgstr "Nom de l'organització tal i com es mostra en l'URL." #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "Mostrat al costat del nom de l'usuari durant els concursos" +msgid "Displayed beside user name during contests." +msgstr "Mostrat al costat del nom de l'usuari durant els concursos." #: judge/models/profile.py:47 msgid "organization description" @@ -1929,8 +2011,8 @@ msgid "administrators" msgstr "administradors" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "Aquells qui poden editar aquesta organització" +msgid "Those who can edit this organization." +msgstr "Aquells qui poden editar aquesta organització." #: judge/models/profile.py:50 msgid "creation date" @@ -1941,20 +2023,20 @@ msgid "is open organization?" msgstr "és una organització oberta?" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "Permet unir-se a l'organització" +msgid "Allow joining organization." +msgstr "Permet unir-se a l'organització." #: judge/models/profile.py:53 msgid "maximum size" msgstr "mida màxima" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "Màxima quantitat d'usuaris en aquesta organiztació, només aplicable per a organitzacions privades" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "Màxima quantitat d'usuaris en aquesta organització, només aplicable per a organitzacions privades." -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "Codi d'accès de l'estudiant" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "Codi d'accés de l'estudiant." #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1965,11 +2047,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1981,12 +2063,12 @@ 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:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "organització" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1998,7 +2080,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2009,12 +2091,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "codi d'accès de l'estudiant" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2026,7 +2104,7 @@ msgstr "membres" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2039,8 +2117,8 @@ msgid "self-description" msgstr "auto-descripció" #: judge/models/profile.py:150 -msgid "location" -msgstr "localització" +msgid "time zone" +msgstr "zona horària" #: judge/models/profile.py:152 msgid "preferred language" @@ -2070,8 +2148,8 @@ msgstr "Usuari Normal" msgid "Problem Setter" msgstr "Creador de Problemes" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2097,163 +2175,183 @@ msgid "User will not be ranked." msgstr "Aquest usuari no serà classificat." #: judge/models/profile.py:172 +msgid "banned from voting on problem point values" +msgstr "" + +#: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 msgid "user script" msgstr "script d'usuari" -#: judge/models/profile.py:173 +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "JavaScript definit per l'usuari per a la personalització del lloc." -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "concurs actual" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "motor matemàtic" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "el motor fet servir per a representar les matemàtiques" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." +msgstr "El motor fet servir per a representar les matemàtiques." -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "TOTP 2FA activat" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" -msgstr "fes click per a activar l'Autenticació de dos passos basada en TOTP" +#: judge/models/profile.py:185 +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:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn 2FA activat" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" -msgstr "fes click per a activar l'Autenticació de dos passos basada en WebAuthn" +#: judge/models/profile.py:187 +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:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "clau TOTP" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" -msgstr "clau de 32 caràcters en base32 per a TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." +msgstr "Clau de 32 caràcters en Base32 per a TOTP." -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" -msgstr "la clau TOTP ha d'estar buida o ser base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." +msgstr "La clau TOTP ha d'estar buida o ser Base32." -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "codis Scratch" -#: judge/models/profile.py:188 -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:193 +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:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" -msgstr "Els codis Scratch han de estar buits o ser un Array JSON de codis de 16 caràcters en base32" +#: judge/models/profile.py:197 +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:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "Token de l'API" -#: judge/models/profile.py:196 -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:201 +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:198 +#: judge/models/profile.py:203 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:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "notes internes" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "Notes dels administradors sobre aquest usuari." -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "última data de descàrrega de dades" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "Mostra coses de desenvolupament en progrès" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "Editar ajustos de TOTP" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "perfil d'usuari" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "perfils d'usuaris" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "nom de dispositiu" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "ID de la credencial" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "clau pública" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "comptador de firmes" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "data de solicitud" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "estat" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Pendent" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Aprovat" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Rebutjat" + +#: judge/models/profile.py:372 msgid "reason" msgstr "motiu" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "petició d'unir-se a organització" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "peticions d'unir-se a organització" @@ -2282,8 +2380,8 @@ msgid "common name" msgstr "nom comú" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" -msgstr "Nom comú per al llenguatge. Per exemple, el nom comú per a C++03, C++11 i C++14 és \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." +msgstr "Nom comú per al llenguatge. Per exemple, el nom comú per a C++03, C++11 i C++14 és \"C++\"." #: judge/models/runtime.py:32 msgid "ace mode name" @@ -2362,16 +2460,16 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" -msgstr "Nom del servidor, en estil de host-name" +msgid "Server name, hostname-style." +msgstr "Nom del servidor, en estil de host-name." #: judge/models/runtime.py:126 msgid "time of creation" msgstr "data de creació" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" -msgstr "Clau per a autenticar aquest jutge" +msgid "A key to authenticate this judge." +msgstr "Clau per a autenticar aquest jutge." #: judge/models/runtime.py:128 msgid "authentication key" @@ -2455,9 +2553,9 @@ msgstr "Error de Compilació" msgid "Internal Error" msgstr "Error Intern" -#: judge/models/submission.py:31 -msgid "Short circuit" -msgstr "Curt circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" +msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 #: judge/models/submission.py:64 @@ -2480,10 +2578,6 @@ msgstr "Avaluant" msgid "Completed" msgstr "Completat" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "Error Intern (error en el servidor del jutge)" @@ -2492,15 +2586,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:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "temps d'execució" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "ús de memòria" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "punts atorgats" @@ -2552,97 +2646,97 @@ msgstr "només s'han passat casos de proves preliminars" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, 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:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "Avortar qualsevol enviament" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "Rejutjar l'enviament" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "Rejutjar molts enviaments" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "Enviar sense límit" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "Veure tots els enviaments" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "Reenviar l'enviament d'un altre" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "Canviar l'estat de bloqueig d'un enviament" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "enviaments" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "enviament associat" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "codi font" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "Id del cas de proves" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "flag d'estat" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "punts possibles" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "nombre de lot (batch)" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "resultat del jutge" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "resultat extés del jutge" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "sortida del programa" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "cas de prova de l'enviament" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "casos de prova de l'enviament" @@ -2690,10 +2784,6 @@ msgstr "ticket" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "publicador" - #: judge/models/ticket.py:34 msgid "message body" msgstr "cos del missatge" @@ -2802,8 +2892,8 @@ msgstr "El cas #%d d'inici de lot necessita punts." #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" -msgstr "Intent d'acabar un batch fora d'un en el cas #%d" +msgid "Attempt to end batch outside of one in case #%d." +msgstr "Intent d'acabar un batch fora d'un en el cas #%d." #: judge/utils/problem_data.py:154 msgid "How did you corrupt the zip path?" @@ -2825,10 +2915,6 @@ msgstr "Temps exhaurit" msgid "Error" msgstr "Error" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "No pots passar un queryset i filtres de teclat al mateix temps" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "La contrasenya és massa comuna." @@ -2868,7 +2954,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "Pàgina %d d'Entradres" @@ -2893,7 +2979,7 @@ msgstr "" msgid "You already voted." msgstr "Ja has votat." -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "Editat des de'l lloc web" @@ -2968,62 +3054,58 @@ msgstr "Entra el codi d'accés per a \"%s\"" msgid "You are not in contest \"%s\"." msgstr "No estas en el concurs \"%s\"." -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "ContestCalendar necessita un any i mes enters" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "Concursos en %(month)s" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "F Y" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "Estadístiques de %s" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "Classificacions de %s" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "???" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" -msgstr "La teva participació en %s" +msgid "Your participation in %(contest)s" +msgstr "La teva participació en %(contest)s" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" -msgstr "Participació de %s en %s" +msgid "%(user)s's participation in %(contest)s" +msgstr "Participació de %(user)s en %(contest)s" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "En directe" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Participació" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "Resultats del MOSS per a %s" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "Executant sistema anticòpia MOSS per a %s..." -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "Etiqueta de concurs: %s" @@ -3047,7 +3129,7 @@ msgstr "sense permís per a %s" msgid "corrupt page %s" msgstr "pàgina corrupta %s" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "Execucions" @@ -3070,207 +3152,231 @@ msgstr "No s'ha trobat aquesta organització." msgid "Organizations" msgstr "Organitzacions" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "Membres de %s" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "Unint-se a l'organització" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "Ja estàs en l'organització." -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "Aquesta organització no està oberta." -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "Abandonant l'organització" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "No estas en \"%s\"." -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "Sol·licitud d'unir-se a %s" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "Detall de la sol·licitud" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "Administrants sol·licituds per a %s" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 +#, 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 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "La teva organització només por tenir %d membres més. No pots aprovar %d usuaris." +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:303 +#: judge/views/organization.py:312 #, 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:304 +#: judge/views/organization.py:313 #, 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:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "Editant %s" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "No es pot editar l'organització" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "No tens permisos per editar aquesta organització." -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 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:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "No pots fer fora a aquest usuari" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "L'usuari que estas intentant expulsar no existeix!" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, 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." +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:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "No existeix aquest problema" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, 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:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "Editorial per a {0}" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Problemes" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:266 +msgid "success" +msgstr "èxit" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "Enviar a %s" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "Banejat de fer enviaments" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." -msgstr "Has estat declarat persona non grata per aquest problema. Estas vetat permanentment de fer enviaments." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "Masses enviaments" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 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:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "Clonar Problema" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" -msgstr "Els arguments del verificador han de ser un objecte JSON" +msgid "Checker arguments must be a JSON object." +msgstr "Els arguments del verificador han de ser un objecte JSON." #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" -msgstr "Els arguments del verificador es un objecte JSON invàlid" +msgid "Checker arguments is invalid JSON." +msgstr "Els arguments del verificador és un objecte JSON invàlid." #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "Aquest arxiu zip es invàlid!" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "Comparant enviaments per a {0}" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "Editant dades per a {0}" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "Editant dades per a %s" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "init.yml generat per a %s" @@ -3313,8 +3419,8 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "Millor solucions per al problema %(number)s en %(contest)s" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" -msgstr "El nom d'usuàri només pot contenir lletres, números i guions baixos" +msgid "A username must contain letters, numbers, or underscores." +msgstr "El nom d'usuari només pot contenir lletres, números i guions baixos." #: judge/views/register.py:30 msgid "Preferred language" @@ -3333,15 +3439,15 @@ msgstr "El correu electrònic \"%s\" ja existeix. Només es permet un registre p msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "El teu proveïdor de correu electrònic no està permés degut a un historial d'abús. Siusplau fes servir un proveïdor fiable." -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "Registra't" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "Clau d'Activació Invàlida" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "Error d'autenticació" @@ -3353,7 +3459,7 @@ msgstr "" msgid "Language statistics" msgstr "Estadístiques de llenguatge" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "Estat" @@ -3379,59 +3485,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "Enviament de %(problem)s per %(user)s" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "Tots els enviaments" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "Tots els meus enviaments" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "Tots els enviaments per %s" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "Tots els enviaments per a %s" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "Ha de passar un problema" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "Els meus enviaments per a %(problem)s" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "Els enviaments de %(user)s per a %(problem)s" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "Ha de passar un concurs" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "Els meus enviaments per a %(contest)s" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "Els enviaments de %(user)s per a %(contest)s" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "Els enviaments de {user} per {problem} en {contest}" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "Els enviaments de {user} per al problema {number} en {contest}" @@ -3540,52 +3638,47 @@ msgstr "Iniciar sessió" msgid "M j, Y, G:i" msgstr "j M Y, G:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "Preparant les teves dates..." -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "Descarrega les teves dades" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "Actualitzat al lloc web" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Edita el perfil" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "Token API de l'usuari generat" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "Token API de l'usuari esborrat" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "Codis Scratch de l'usuari generat" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Taula de classificació" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "Dades de upstream invàlides: %s" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" -msgstr "Latitud o longitud no vàlida" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." +msgstr "" #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" @@ -3610,68 +3703,64 @@ msgstr "Desconnecta" msgid "Terminate" msgstr "Acaba" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" -msgstr "Veure els Enviaments" - -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 msgid "View submissions" msgstr "Veure els enviaments" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" +msgstr "" + #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 msgid "Edit user" msgstr "Editar usuari" -#: 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:80 -msgid "Rejudge" -msgstr "Rejutjar" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "Hola, %(username)s." -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "Tanca la sessió" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Iniciar sessió" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "o" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "Registra't" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "espectador" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "Aquesta aplicació funciona millor amb JavaScript activat." -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Editar" @@ -3703,39 +3792,53 @@ msgstr "publicat a les {time}" msgid "posted {time}" msgstr "publicat {time}" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "Aclariments" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "No s'han fet aclariments de moment." -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "Concursos en curs" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "Concursos propers" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "Fil de comentaris" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "Problemes nous" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "Els meus tickets oberts" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "Tickets nous" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "Comentaris" @@ -3758,7 +3861,7 @@ msgstr "comentat {time}" msgid "edit %(edits)s" msgstr "edició %(edits)s" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "editat" @@ -3766,64 +3869,90 @@ msgstr "editat" msgid "Link" msgstr "Enllaç" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "Respon" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "Vots" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "Amaga" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "Aquest comentari està ocult degut a que té massa vots negatius." -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "En aquests moments no hi ha comentaris." -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "Nou comentari" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "Cos de comentari invàlid." -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "Publica!" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "No es permeten comentaris en aquesta entrada." -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "Contestant a comentari" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "edició {edits}" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "original" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "actualitzat" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "Votant" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "Puntuació" @@ -3831,6 +3960,18 @@ msgstr "Puntuació" msgid "No votes" msgstr "Sense vots" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "Codi d'accés invàlid." @@ -3895,12 +4036,12 @@ msgstr "Següent" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "Llista" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "Calendari" @@ -3908,7 +4049,7 @@ msgstr "Calendari" msgid "Info" msgstr "Informació" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "Estadístiques" @@ -3933,7 +4074,7 @@ msgstr "Clonar" msgid "Leave contest" msgstr "Deixar concurs" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "Unir-se virtualment" @@ -3950,7 +4091,7 @@ msgstr "Unir-se al concurs" msgid "Spectate contest" msgstr "Espectar concurs" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3958,6 +4099,16 @@ msgstr "" msgid "Log in to participate" msgstr "Inicia sessió per a participar" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "Participant virtualment." @@ -3966,6 +4117,21 @@ msgstr "Participant virtualment." msgid "Contest is over." msgstr "El concurs s'ha acabat." +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "j F Y, G:i T" @@ -4096,9 +4262,9 @@ msgstr "" msgid "AC Rate" msgstr "Tasa de AC" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "Usuaris" @@ -4106,7 +4272,7 @@ msgstr "Usuaris" msgid "Editorials" msgstr "Editorials" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "Editorial" @@ -4119,10 +4285,6 @@ msgstr "Estàs segur que vols unir-te?" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "Unir-se a un concurs per primer cop inicia el cronòmetre, i després ja no es pot aturar." -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "ocult" - #: templates/contest/list.html:84 msgid "private" msgstr "privat" @@ -4131,38 +4293,55 @@ msgstr "privat" msgid "rated" msgstr "qualificat" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "Unir-se" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "Espectar" -#: templates/contest/list.html:159 -msgid "Active Contests" -msgstr "Concursos Actius" +#: templates/contest/list.html:161 +msgid "Active contests" +msgstr "Concursos actius" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Concurs" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "Concursos en Curs" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "Concursos Propers" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "En aquests moments no hi ha concursos." -#: templates/contest/list.html:272 -msgid "Past Contests" -msgstr "Concursos Anteriors" +#: templates/contest/list.html:274 +msgid "Past contests" +msgstr "Concursos anteriors" #: templates/contest/media-js.html:4 msgid "Are you sure you want to leave?" @@ -4182,22 +4361,29 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "Estàs segur que vols passar el sistema anticòpies MOSS al concurs?" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "Segur que vols suprimir aquests resultats del MOSS?" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "%(count)s enviament" +msgstr[1] "%(count)s enviaments" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "Sense enviaments" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "Tornar a passar el MOSS al concurs" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "Esborrar els resultats del MOSS" @@ -4251,19 +4437,19 @@ msgstr "Eliminar la Descalificació" msgid "Disqualify" msgstr "Descalificar" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "Estàs segur que vols descalificar aquesta participació?" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 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:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "Veure la participació de l'usuari" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "Mostrar organitzacions" @@ -4284,8 +4470,8 @@ msgid "Language AC Rate" msgstr "Percentatge d'AC per Llenguatge" #: templates/license.html:12 -msgid "Source:" -msgstr "Font:" +msgid "Visit source" +msgstr "Visitar font" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4450,7 +4636,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:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "Esborrar?" @@ -4463,25 +4649,13 @@ msgid "Your reason for joining:" msgstr "El teu motiu per a unir-te:" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "Sol·licitud" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Pendent" +msgid "Request!" +msgstr "Sol·licitar!" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "Log" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "Aprovat" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "Rebutjat" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "Expulsar" @@ -4498,55 +4672,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "Entra un nou codi per al problema clonat:" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "Veure el YAML" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "Mostra les columnes:" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "Prefixe de sortida" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "Límit de sortida" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "Verificador" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "Arguments del generador" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "Tipus" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "Fitxer d'entrada" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "Fitxer de sortida" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "Casos de prova preliminars?" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "Envia!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "Afegeix nou cas" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4558,7 +4736,7 @@ msgstr "Recorda: fes servir aquesta editorial **només** si estàs encallat, i * msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "Enviar una solució oficial abans de resoldre el problema per un mateix és motiu de Baneig." -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "Autor/a:" @@ -4568,20 +4746,20 @@ msgstr[1] "Autors/es:" msgid "Filter by type..." msgstr "Filtra per tipus..." -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "Problemes populars" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Categoria" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "Tipus" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "AC %%" @@ -4645,116 +4823,133 @@ msgstr "Recalifica Tot" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "Això repuntuarà %(count)d enviaments." +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:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "Estas segur que vols repuntuar %(count)d enviaments?" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "Repuntua tots els enviaments" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "Veure com a PDF" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "Enviar solució" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "%(counter)s enviament restant" msgstr[1] "%(counter)s enviaments restants" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "0 enviaments pendents" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "Els meus enviaments" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "Millors enviaments" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "Llegir editorial" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "Gestionar tickets" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "Editar problema" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "Edita els casos de prova" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "El meus tickets" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "Administra enviaments" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "Punts:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "(parcial)" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "Temps límit:" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "Límit de memòria:" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "Tipus del problema" msgstr[1] "Tipus del problema" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "Llenguatges permesos" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "No hi ha cap jutge per a %(lang)s" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "Jutge:" msgstr[1] "Jutges:" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "cap disponible" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "Demanar aclariment" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "Notifica un problema" @@ -4803,8 +4998,8 @@ msgstr "Tipus de problemes" msgid "Point range" msgstr "Rang de punts" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "Vés" @@ -4840,6 +5035,54 @@ msgstr "Tens 0 enviaments disponibles" msgid "No judge is available for this problem." msgstr "No hi ha cap jutge disponible per a aquest problema." +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4849,6 +5092,50 @@ msgstr "%(key)s es una clau d'activació invàlida." msgid "Your account has been successfully activated." msgstr "El teu compte s'ha activat amb èxit." +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "Nom d'usurari o contrasenya incorrecte." @@ -4895,7 +5182,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "La teva contrassenya ha estat establerta. Pots iniciar sessió ja." #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "Restablir la Contrasenya" @@ -4911,22 +5197,19 @@ msgstr "T'hem enviat un correu amb instruccions per reestablir la contrassenya. 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 "Si no reps un e-mail, comprova que hagis introduït l'adreça amb què t'has registrat i revisa la carpeta de correu brossa." -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4956,7 +5239,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:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continua >" @@ -4969,41 +5252,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "(de nou, per confirmar)" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "(tria la ciutat més propera)" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "tria del mapa" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "Llenguatge per defecte" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "Organitzacions afiliades" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "Avisa'm sobre concursos vinents" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "En registrar-te, dones la teva conformitat a estar legalment obligats per els nostres" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "Termes i Condicions" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "Registra't!" @@ -5012,8 +5290,9 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "Per protegir la teva compta, t'has d'autenticar abans de poder desactivar l'Autenticació en dos passos." #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" -msgstr "Entra el codi de 6 dígits generat per la teva app o un dels teus codis Scratch de 16 dígits:" +#: 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 "Entra el codi de 6 dígits generat per la teva app o un dels teus codis Scratch de 16 caràcters:" #: templates/registration/totp_disable.html:41 msgid "Disable Two Factor Authentication" @@ -5044,14 +5323,17 @@ msgid "Enable Two Factor Authentication" msgstr "Activar Autenticació en Dos Passos" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5342,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5360,15 @@ 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:165 +#: templates/user/edit-profile.html:164 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:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "No s'ha pogut connectar amb el servidor." -#: 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 "Entra el codi de 6 dígits generat per la teva app o un dels teus codis Scratch de 16 caràcters:" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5115,38 +5394,38 @@ msgstr "Estadístiques del Enviament" msgid "AC Submissions by Language" msgstr "Enviaments AC per Llenguatge" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "Jutge" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "Online" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "Temps en funcionament" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "Ping" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "Càrrega" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "N/A" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "No hi ha jutges disponibles en aquest moment." -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "ID" @@ -5179,23 +5458,27 @@ msgstr "S'ha produït un error intern mentres es puntuava." msgid "Error information" msgstr "Informació d'error" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "Estàs segur que vols rejutjar?" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "Filtra per estat..." -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "Filtra per llenguatge..." -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "Filtra enviaments" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "Total:" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "Has estat desconnectat. Actualitza la pàgina per mostrar les últimes actualitzacions." @@ -5261,20 +5544,24 @@ msgid "Execution Results" msgstr "Resultats de l'Execució" #: templates/submission/status-testcases.html:51 -msgid "Batch " -msgstr "Lot (Batch) " +#, python-format +msgid "Batch #%(id)d" +msgstr "Lot #%(id)d" #: templates/submission/status-testcases.html:64 -msgid "Case" -msgstr "Cas" +#, python-format +msgid "Case #%(id)d:" +msgstr "Cas #%(id)d:" #: templates/submission/status-testcases.html:66 -msgid "Pretest" -msgstr "Casos de prova preliminars" +#, python-format +msgid "Pretest #%(id)d:" +msgstr "Cas de prova preliminar #%(id)d:" #: templates/submission/status-testcases.html:68 -msgid "Test case" -msgstr "Casos de prova" +#, python-format +msgid "Test case #%(id)d:" +msgstr "Cas de prova #%(id)d:" #: templates/submission/status-testcases.html:101 msgid "Your output (clipped)" @@ -5318,11 +5605,11 @@ msgstr "Enviament avortat!" msgid "View source" msgstr "Veure el codi font" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "Prem Ctrl-Enter o Command-Enter per a avortar." -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "Avorta" @@ -5339,41 +5626,41 @@ msgstr "Millor" msgid "%(user)s's" msgstr "De %(user)s" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "Reobert: " -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "Tancat: " -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "Activar les notificacions d'escriptori" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "Mostra només els meus tickets" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "Usuari remitent" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "Títol" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "Destinataris" @@ -5395,31 +5682,32 @@ msgstr "Gràcies per obrir un ticket!" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "Recorda que aquest formulari es per a comentar problemes amb el problema, i no per a demanar ajuda. Si vols ajuda fes servir els comentaris." -#: templates/ticket/ticket.html:356 -msgid "Post" -msgstr "Publicar" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" +msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "Objecte associat" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "Ningú assignat." -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "Tancar ticket" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "Reobrir ticket" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "Notes de la persona assignada" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "Aquí no hi ha res." @@ -5427,141 +5715,163 @@ msgstr "Aquí no hi ha res." msgid "Rank" msgstr "Classificació" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "Cerca per l'adreça..." -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 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:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "Això invalidarà qualsevol token API anterior." -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 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:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +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:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "Generant..." -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "Regenera" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "Elimina" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 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:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "Generar" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 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:284 -msgid "Self-description" -msgstr "Auto-descripció" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +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:291 +#: templates/user/edit-profile.html:278 +msgid "Self-description:" +msgstr "Autodescripció:" + +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "Tria la ciutat més propera" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" -msgstr "Tema de l'editor" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "Zona horària:" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "Llenguatge:" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "Motor matemàtic" +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "Tema de l'editor:" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:299 +msgid "Math engine:" +msgstr "Motor matemàtic:" + +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "Organitzacions afiliades:" + +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "Canviar avatar" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "Canvia la teva contrasenya" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" -msgstr "S'ha activat l'autenticació de dos passos" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" +msgstr "S'ha activat l'autenticació de dos passos:" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "Inhabilita" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "Codis Scratch:" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "Ocult" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" -msgstr "S'ha desactivat l'autenticació de dos passos" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "S'ha desactivat l'autenticació de dos passos:" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "Habilita" -#: templates/user/edit-profile.html:392 -msgid "API Token" -msgstr "Token de l'API" +#: templates/user/edit-profile.html:393 +msgid "API token:" +msgstr "Token de l'API:" -#: templates/user/edit-profile.html:409 -msgid "Security keys" -msgstr "Claus de seguretat" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" +msgstr "Claus de seguretat:" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "Eliminar" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "Entreu un nom per a aquesta clau" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "Afegir" -#: templates/user/edit-profile.html:435 -msgid "User-script" -msgstr "Script d'usuari" +#: templates/user/edit-profile.html:436 +msgid "User-script:" +msgstr "Script d'usuari:" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "Actualitzar perfil" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "%(pp).1fpp" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" -msgstr "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" +msgstr "ponderat %(percent)s (%(pp)spp)" #: templates/user/prepare-data.html:64 msgid "Are you sure you want to prepare a download?" @@ -5575,31 +5885,41 @@ msgstr "Estem preparant les teves dades actualment." msgid "Track progress" msgstr "Segueix el progrès" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "Un cop les teves dades estiguin llestes, trobaràs un enllaç de descàrrega en aquesta pàgina." -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "Enviaments" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "Preparar una nova descàrrega" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "Preparar una descàrrega" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "Descarregar dades preparades" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "Les teves dades estan llestes!" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "Descarregar dades" @@ -5663,45 +5983,41 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "%(counter)s problema resolt" msgstr[1] "%(counter)s problemes resolts" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "Ordenar per punts:" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "Punts totals:" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "Ordenar per puntuació:" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "Puntuació:" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "Puntuació mínima:" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "Puntuació màxima:" @@ -5725,12 +6041,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "Amaga els problemes que ja he resolt" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" -msgstr "%(points).1f punts" +msgid "%(group)s (%(val)s points)" +msgstr "%(group)s (%(val)s punts)" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "%(points)s / %(total)s" diff --git a/locale/ca/LC_MESSAGES/djangojs.po b/locale/ca/LC_MESSAGES/djangojs.po index 8e32b44c64..c8e6d1c6c2 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:29\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\n" "Last-Translator: \n" "Language-Team: Catalan\n" "Language: ca_ES\n" @@ -17,15 +17,66 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" + +#: 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] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" +msgstr[1] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" +msgstr[1] "" + diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 7b2f3a53d5..4c3526e5fe 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-20 00:55\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Katalanisch" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Deutsch" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "" + +#: dmoj/settings.py:384 msgid "English" msgstr "Englisch" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Spanisch" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Französisch" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Kroatisch" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Ungarisch" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Japanisch" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Koreanisch" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "Brasilianisches Portugiesisch" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Rumänisch" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Russisch" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Serbisch (Lateinisches Alphabet)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Türkisch" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Vietnamesisch" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Chinesisch (vereinfacht)" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "Chinesisch (traditionell)" @@ -97,10 +101,14 @@ msgstr "Registrierung abgeschlossen" msgid "Registration Not Allowed" msgstr "Registrierung nicht erlaubt" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Startseite" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -132,12 +140,25 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problem" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "" + +#: judge/admin/contest.py:77 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 "" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "Einstellungen" @@ -162,7 +183,7 @@ msgstr "Bewertung" msgid "Access" msgstr "Zugang" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "" @@ -210,7 +231,7 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -232,7 +253,7 @@ msgstr "" msgid "username" msgstr "" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "" @@ -240,17 +261,14 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -258,103 +276,109 @@ msgstr "" msgid "object" msgstr "" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Systematik" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Grenzen" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Programmiersprache" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Autoren" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "" @@ -364,8 +388,8 @@ msgstr "" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "" msgstr[1] "" @@ -378,7 +402,13 @@ msgid "Disallowed problems" msgstr "" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "" + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" msgstr "" #: judge/admin/runtime.py:77 @@ -393,99 +423,103 @@ msgstr "" msgid "Capabilities" msgstr "" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Nicht" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" +msgid "These problems are included in this group of problems." msgstr "" #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" +msgid "These problems are included in this type of problems." msgstr "" #: judge/apps.py:8 @@ -500,11 +534,11 @@ msgstr "" msgid "Your part is silent, little toad." msgstr "" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "" @@ -589,20 +623,22 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -618,91 +654,94 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "" +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "" @@ -764,8 +803,8 @@ msgstr "" msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 -msgid "hide the comment" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" msgstr "" #: judge/models/comment.py:48 @@ -781,7 +820,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "" @@ -864,7 +903,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "" @@ -872,7 +911,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "" @@ -880,7 +919,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "" @@ -916,7 +955,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -929,12 +968,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "" @@ -971,7 +1010,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -986,85 +1025,85 @@ msgstr "" msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1076,7 +1115,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1084,15 +1123,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1107,7 +1147,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1120,7 +1160,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "" @@ -1184,7 +1224,7 @@ msgstr "" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1281,15 +1321,8 @@ msgstr "" msgid "contest participations" msgstr "" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "" @@ -1329,7 +1362,7 @@ msgstr "" msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "" @@ -1385,6 +1418,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1425,7 +1466,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1445,10 +1486,6 @@ msgstr "" msgid "post summary" msgstr "" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "" @@ -1465,337 +1502,374 @@ msgstr "" msgid "blog posts" msgstr "" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "" -#: judge/models/problem.py:67 -msgid "URL to the icon" +#: judge/models/problem.py:66 +msgid "URL to the icon." msgstr "" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "" @@ -1836,11 +1910,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1848,59 +1922,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1913,11 +1995,11 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" +msgid "Organization name shown in URLs." msgstr "" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" +msgid "Displayed beside user name during contests." msgstr "" #: judge/models/profile.py:47 @@ -1929,7 +2011,7 @@ msgid "administrators" msgstr "" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" +msgid "Those who can edit this organization." msgstr "" #: judge/models/profile.py:50 @@ -1941,7 +2023,7 @@ msgid "is open organization?" msgstr "" #: judge/models/profile.py:52 -msgid "Allow joining organization" +msgid "Allow joining organization." msgstr "" #: judge/models/profile.py:53 @@ -1949,11 +2031,11 @@ msgid "maximum size" msgstr "" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" +msgid "Maximum amount of users in this organization, only applicable to private organizations." msgstr "" -#: judge/models/profile.py:56 -msgid "Student access code" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." msgstr "" #: judge/models/profile.py:60 @@ -1965,11 +2047,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1981,12 +2063,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1998,7 +2080,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2009,12 +2091,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2026,7 +2104,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2039,7 +2117,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2070,8 +2148,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2097,163 +2175,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + +#: judge/models/profile.py:372 msgid "reason" msgstr "" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2282,7 +2380,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2362,7 +2460,7 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2370,7 +2468,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2455,8 +2553,8 @@ msgstr "" msgid "Internal Error" msgstr "" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2480,10 +2578,6 @@ msgstr "" msgid "Completed" msgstr "" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2492,15 +2586,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2552,97 +2646,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2690,10 +2784,6 @@ msgstr "" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "" - #: judge/models/ticket.py:34 msgid "message body" msgstr "" @@ -2802,7 +2892,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2825,10 +2915,6 @@ msgstr "" msgid "Error" msgstr "" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2868,7 +2954,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2893,7 +2979,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -2968,62 +3054,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3047,7 +3129,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3070,207 +3152,231 @@ msgstr "" msgid "Organizations" msgstr "" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +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 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:266 +msgid "success" +msgstr "erfolgreich" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3313,7 +3419,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3333,15 +3439,15 @@ msgstr "" msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "" @@ -3353,7 +3459,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "" @@ -3379,59 +3485,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3540,51 +3638,46 @@ msgstr "" msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3610,13 +3703,15 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3624,54 +3719,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3703,39 +3792,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "" @@ -3758,7 +3861,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "" @@ -3766,64 +3869,90 @@ msgstr "" msgid "Link" msgstr "" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "" @@ -3831,6 +3960,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3895,12 +4036,12 @@ msgstr "" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "" @@ -3908,7 +4049,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "" @@ -3933,7 +4074,7 @@ msgstr "" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "" @@ -3950,7 +4091,7 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3958,6 +4099,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -3966,6 +4117,21 @@ msgstr "" msgid "Contest is over." msgstr "" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "" @@ -4096,9 +4262,9 @@ msgstr "" msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "" @@ -4106,7 +4272,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4119,10 +4285,6 @@ msgstr "" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4131,37 +4293,54 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "" #: templates/contest/media-js.html:4 @@ -4182,22 +4361,29 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4251,19 +4437,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "" @@ -4284,7 +4470,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4450,7 +4636,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "" @@ -4463,25 +4649,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" +msgid "Request!" msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4498,55 +4672,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4558,7 +4736,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "" @@ -4568,20 +4746,20 @@ msgstr[1] "" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4645,116 +4823,133 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4803,8 +4998,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "" @@ -4840,6 +5035,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4849,6 +5092,50 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4895,7 +5182,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -4911,22 +5197,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4956,7 +5239,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4969,41 +5252,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -5012,7 +5290,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5044,14 +5323,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5342,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5360,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5115,38 +5394,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "Online" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "" @@ -5179,23 +5458,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5261,19 +5544,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5318,11 +5605,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5339,41 +5626,41 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5395,31 +5682,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5427,140 +5715,162 @@ msgstr "" msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5575,31 +5885,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5663,45 +5983,41 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "" @@ -5725,12 +6041,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/de/LC_MESSAGES/djangojs.po b/locale/de/LC_MESSAGES/djangojs.po index 5b9b5cc566..47a3764a81 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:29\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -17,15 +17,66 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" + +#: 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] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" +msgstr[1] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" +msgstr[1] "" + diff --git a/locale/el/LC_MESSAGES/django.po b/locale/el/LC_MESSAGES/django.po index ec44414bd3..3fd590aaa1 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-07-03 00:58\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Καταλανικά" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Γερμανικά" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Ελληνικά" + +#: dmoj/settings.py:384 msgid "English" msgstr "Αγγλικά" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Ισπανικά" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Γαλλικά" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Κροάτικα" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Ουγγρικά" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Ιαπωνικά" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Κορεατικά" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "Πορτογαλικά Βραζιλίας" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Ρουμανικά" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Ρωσικά" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Σερβικά (Λατινικά)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Τουρκικά" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Βιετναμέζικα" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Απλοποιημένα Κινέζικα" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "Παραδοσιακά Κινέζικα" @@ -97,10 +101,14 @@ msgstr "Η Εγγραφή Ολοκληρώθηκε" msgid "Registration Not Allowed" msgstr "Δεν Επιτρέπεται Εγγραφή" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Αρχική" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "Περιεχόμενο" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -132,12 +140,25 @@ msgid "Included contests" msgstr "Συμπεριλαμβανόμενοι διαγωνισμοί" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Πρόβλημα" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "Προβλήματα" + +#: judge/admin/contest.py:77 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 "Κρίση εκ νέου" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "Ρυθμίσεις" @@ -162,7 +183,7 @@ msgstr "Αξιολόγηση" msgid "Access" msgstr "Πρόσβαση" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "Δικαιοσύνη" @@ -210,7 +231,7 @@ msgstr[1] "%d διαγωνισμοί ξεκλειδώθηκαν επιτυχώς msgid "Unlock contest submissions" msgstr "Ξεκλείδωμα υποβολής διαγωνισμών" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -232,7 +253,7 @@ msgstr "Επανυπολογισμός αποτελεσμάτων" msgid "username" msgstr "όνομα χρήστη" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "εικονικό" @@ -240,17 +261,14 @@ msgstr "εικονικό" msgid "link path" msgstr "διαδρομή συνδέσμου" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Περιεχόμενο" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Περίληψη" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "χρήστης" @@ -258,103 +276,109 @@ msgstr "χρήστης" msgid "object" msgstr "αντικείμενο" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Προβολή στην ιστοσελίδα" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "Αιτία επεξεργασίας" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "Περιγράψτε τις αλλαγές που κάνατε (προαιρετικό)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Κοινωνικά Δίκτυα" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Ταξινομία" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Πόντοι" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Όρια" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Γλώσσα" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "Ιστορικό" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Συγγραφείς" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "Η ημερομηνία δημοσίευσης %d του προβλήματος ενημερώθηκε επιτυχώς." msgstr[1] "Η ημερομηνία δημοσίευσης %d των προβλημάτων ενημερώθηκε επιτυχώς." -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "Ορισμός ημερομηνίας δημοσίευσης ως τώρα" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "%d πρόβλημα επισημάνθηκε επιτυχώς ως δημόσιο." msgstr[1] "%d προβλήματα επισημάνθηκαν επιτυχώς ως δημόσια." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Επισήμανση προβλημάτων ως δημόσια" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "%d πρόβλημα επισημάνθηκε επιτυχώς ως ιδιωτικό." msgstr[1] "%d προβλήματα επισημάνθηκαν επιτυχώς ως απόρρητα." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "πρόβλημα" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Χρήστης" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "Email" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "Ζώνη ώρας" @@ -364,8 +388,8 @@ msgstr "ημερ/νία εγγραφής" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "%d χρήστης επανυπολογίζει τη βαθμολογία του." msgstr[1] "%d χρήστες επανυπολογίζουν τη βαθμολογία τους." @@ -378,8 +402,14 @@ msgid "Disallowed problems" msgstr "Μη έγκυρα προβλήματα" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "Τα προβλήματα αυτά ΔΕΝ επιτρέπεται να υποβληθούν σε αυτή τη γλώσσα" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "Τα προβλήματα αυτά ΔΕΝ επιτρέπεται να υποβληθούν σε αυτή τη γλώσσα." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "Αναπαραγωγή" #: judge/admin/runtime.py:77 msgid "Description" @@ -393,100 +423,104 @@ msgstr "Πληροφορίες" msgid "Capabilities" msgstr "Δυνατότητες" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Κανένα" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "Δεν ελέγχθηκε" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Εξαίρεση" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "Μη Αποδεκτά" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "%s (παρακολουθεί)" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "%s (εικονικό %d)" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "Κλειδωμένο" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "Συμπεριλαμβανόμενα προβλήματα" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Αυτά τα προβλήματα περιλαμβάνονται σε αυτήν την ομάδα προβλημάτων" +msgid "These problems are included in this group of problems." +msgstr "Αυτά τα προβλήματα περιλαμβάνονται σε αυτήν την ομάδα προβλημάτων." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "Τα προβλήματα αυτά περιλαμβάνονται σε αυτού του τύπου τα προβλήματα" +msgid "These problems are included in this type of problems." +msgstr "Τα προβλήματα αυτά περιλαμβάνονται σε αυτού του τύπου τα προβλήματα." #: judge/apps.py:8 msgid "Online Judge" @@ -500,11 +534,11 @@ msgstr "Σώμα σχολίου" msgid "Your part is silent, little toad." msgstr "Το κομμάτι σου είναι σιωπηλό, μικρέ βάτραχε." -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "Πρέπει να έχετε λύσει τουλάχιστον ένα πρόβλημα πριν ακουστεί η φωνή σας." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Αναρτημένο σχόλιο" @@ -589,20 +623,22 @@ msgstr "Ισοπαλίες θα σπάνε από το σύνολο χρόνων msgid "IOI (pre-2016)" msgstr "IOI (προ του 2016)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "Τα διακριτικά ελέγχου ταυτότητας δύο παραγόντων πρέπει να είναι {TOTP_CODE_LENGTH} δεκαδικά ψηφία." +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "Τα διακριτικά ελέγχου ταυτότητας δύο παραγόντων πρέπει να είναι {count} δεκαδικό ψηφίο." +msgstr[1] "Τα διακριτικά ελέγχου ταυτότητας δύο παραγόντων πρέπει να είναι {count} δεκαδικά ψηφία." -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "Μη έγκυρο διακριτικό ελέγχου ταυτότητας δύο παραγόντων." -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "Οι κωδικοί scratch πρέπει να είναι 16 χαρακτήρες βάσης32." -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "Μη έγκυρος κωδικός scratch." @@ -618,91 +654,94 @@ msgstr "Ενεργοποίηση πειραματικών λειτουργιών msgid "You must solve at least one problem before you can update your profile." msgstr "Πρέπει να λύσετε τουλάχιστον ένα πρόβλημα πριν να έχετε τη δυνατότητα να ενημερώσετε το προφίλ σας." -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "Δεν μπορείτε να είστε μέλος σε περισσότερους από {count} δημόσιους οργανισμούς." +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "Λήψη σχολίων;" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "Λήψη υποβολών;" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "Φιλτράρισμα ανά glob κώδικα προγράμματος:" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "Αφήστε κενό για να συμπεριλάβετε όλες τις υποβολές" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Φιλτράρισμα κατά αποτέλεσμα:" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "Παρακαλώ επιλέξτε τουλάχιστον ένα πράγμα για λήψη." -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "Οποιοσδήποτε κριτής" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Όνομα Χρήστη" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Κωδικόs πρόσβασης" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "Μη έγκυρο μήκος κωδικού." -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "Άκυρη WebAuthn απάντηση." -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "Δεν υπάρχει πρόκληση WebAuthn." -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "Μη έγκυρο αναγνωριστικό ID διαπιστευτηρίου WebAuthn." -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "Μη έγκυρο διακριτικό ελέγχου ταυτότητας δύο παραγόντων ή κωδικού scratch." -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "Πρέπει να καθορίσετε είτε totp_token ή webauthn_response." -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Ο κωδικός προβλήματος πρέπει να είναι ^[a-z0-9]+$" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "Πρόβλημα με αυτόν τον κωδικό υπάρχει ήδη." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "Το αναγνωριστικό του διαγωνισμού πρέπει να είναι ^[a-z0-9]+$" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "Διαγωνισμός με αυτό το κλειδί υπάρχει ήδη." #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "j N Y, g:i a" @@ -764,9 +803,9 @@ msgstr "ψήφοι" msgid "body of comment" msgstr "σώμα σχολίου" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "απόκρυψη σχολίου" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "κρυφό" #: judge/models/comment.py:48 msgid "parent" @@ -781,7 +820,7 @@ msgid "comments" msgstr "σχόλια" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "Εξήγηση για %s" @@ -864,7 +903,7 @@ msgid "contest name" msgstr "όνομα διαγωνισμού" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "συγγραφείς" @@ -872,7 +911,7 @@ msgstr "συγγραφείς" msgid "These users will be able to edit the contest." msgstr "Αυτοί οι χρήστες θα είναι σε θέση να επεξεργαστούν το διαγωνισμό." -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "επιμελητές" @@ -880,7 +919,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "δοκιμαστές" @@ -916,7 +955,7 @@ msgstr "Αυτοί οι χρήστες θα είναι σε θέση να παρ msgid "description" msgstr "περιγραφή" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "προβλήματα" @@ -929,12 +968,12 @@ msgstr "ώρα έναρξης" msgid "end time" msgstr "ώρα λήξης" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "χρονικό όριο" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "δημόσια ορατό" @@ -971,8 +1010,8 @@ msgid "scoreboard visibility" msgstr "ορατότητα πίνακα αποτελεσμάτων" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" -msgstr "Ορατότητα πίνακα αποτελεσμάτων κατά τη διάρκεια του διαγωνισμού" +msgid "Scoreboard visibility through the duration of the contest." +msgstr "Ορατότητα πίνακα αποτελεσμάτων κατά τη διάρκεια του διαγωνισμού." #: judge/models/contest.py:109 msgid "no comments" @@ -986,86 +1025,86 @@ msgstr "Χρήση του συστήματος διευκρινήσεων αντ msgid "rating floor" msgstr "χαμηλότερη αξιολόγηση" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" -msgstr "Χαμηλότερη αξιολόγηση για το διαγωνισμό" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." +msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "ανώτατο όριο αξιολόγησης" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" -msgstr "Ανώτατο όριο αξιολόγησης για το διαγωνισμό" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." +msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "αξιολόγηση όλων" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "Αξιολογήστε όλους τους χρήστες που συμμετέχουν." -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "απόκλειση από αξιολόγηση" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "ιδιωτικό για συγκεκριμένους χρήστες" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "ιδιωτικοί συμμετέχοντες" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" -msgstr "Εάν δεν είναι άδειο, μόνο αυτοί οι χρήστες μπορούν να δουν το διαγωνισμό" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." +msgstr "Εάν δεν είναι άδειο, μόνο αυτοί οι χρήστες μπορούν να δουν το διαγωνισμό." -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "απόκρυψη ετικέτα προβήματος" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "Εάν οι ετικέτες προβλήματος θα πρέπει να είναι κρυφές από προεπιλογή." -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "απόκρυψη συγγραφέων προβήματος" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "Εάν οι συγγραφείς προβλήματος θα πρέπει να είναι κρυφοί από προεπιλογή." -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "εκτέλεση προδοκιμών μόνο" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "Εάν οι κριτές θα πρέπει να βαθμολογούν τις προδοκιμές μόνο, ή όλες τις περιπτώσεις. Συνήθως ορίζεται κατά τη διάρκεια ενός διαγωνισμού και, στη συνέχεια, καταργείται πριν από την επανεξέταση των υποβολών των χρηστών όταν λήξει ο διαγωνισμός." -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "εμφάνιση μερικών ρυθμίσεων φόρμας" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "Εάν θα εμφανίζεται μια ενότητα που περιέχει ρυθμίσεις διαγωνισμού στη σελίδα διαγωνισμού ή όχι." -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "ιδιωτικό για οργανισμούς" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "οργανισμοί" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" -msgstr "Εάν δεν είναι άδειο, μόνο οι οργανισμοί αυτοί μπορούν να δουν το διαγωνισμό" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." +msgstr "Εάν δεν είναι άδειο, μόνο οι οργανισμοί αυτοί μπορούν να δουν το διαγωνισμό." #: judge/models/contest.py:142 msgid "limit organizations that can join" @@ -1076,24 +1115,25 @@ msgid "join organizations" msgstr "οργανισμοί που συμμετέχουν" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" -msgstr "Εάν δεν είναι άδειο, μόνο οι οργανισμοί αυτοί μπορούν να συμμετάσχουν στο διαγωνισμό" +msgid "If non-empty, only these organizations may join the contest." +msgstr "Εάν δεν είναι άδειο, μόνο οι οργανισμοί αυτοί μπορούν να συμμετάσχουν στο διαγωνισμό." #: judge/models/contest.py:146 judge/models/profile.py:143 msgid "classes" msgstr "κατηγορίες" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" -msgstr "Εάν ιδιωτικό για οργανισμό, μόνο αυτές οι κατηγορίες μπορούν να δουν το διαγωνισμό" +msgid "If organization private, only these classes may see the contest." +msgstr "Εάν ιδιωτικό για οργανισμό, μόνο αυτές οι κατηγορίες μπορούν να δουν το διαγωνισμό." -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "Εικόνα OpenGraph" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" -msgstr "Παράκαμψη εικόνας λογότυπου" +msgid "logo override image" +msgstr "παράκαμψη εικόνας λογότυπου" #: judge/models/contest.py:151 msgid "This image will replace the default site logo for users inside the contest." @@ -1107,7 +1147,7 @@ msgstr "ο αριθμός των ζωντανών συμμετεχόντων" msgid "contest summary" msgstr "σύνοψη διαγωνισμού" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "Απλό κείμενο, που εμφανίζεται στην ετικέτα meta, π.χ. για τα μέσα κοινωνικής δικτύωσης." @@ -1120,7 +1160,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "personae non gratae" @@ -1184,7 +1224,7 @@ msgstr "Επεξεργασία όλων των διαγωνισμών" msgid "Clone contest" msgstr "Κλωνοποίηση διαγωνισμού" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "Διαγωνισμός MOSS" @@ -1281,15 +1321,8 @@ msgstr "συμμετοχή διαγωνισμού" msgid "contest participations" msgstr "συμμετοχές διαγωνισμού" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "πρόβλημα" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "πόντοι" @@ -1329,7 +1362,7 @@ msgstr "πρόβλημα διαγωνισμού" msgid "contest problems" msgstr "προβλήματα διαγωνισμού" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "υποβολή" @@ -1385,6 +1418,14 @@ msgstr "αποτέλεσμα διαγωνισμού moss" msgid "contest moss results" msgstr "αποτελέσματα διαγωνισμού moss" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "κλειδί" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "τιμή" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "στοιχείο ρυθμίσεων" @@ -1425,7 +1466,7 @@ msgstr "τίτλος ανάρτησης" msgid "slug" msgstr "slug" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "δημόσια ορατότητα" @@ -1445,10 +1486,6 @@ msgstr "περιεχόμενο ανάρτησης" msgid "post summary" msgstr "σύνοψη ανάρτησης" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "εικόνα openGraph" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "Επεξεργασία όλων των αναρτήσεων" @@ -1465,337 +1502,374 @@ msgstr "ανάρτηση ιστολογίου" msgid "blog posts" msgstr "αναρτήσεις ιστολογίου" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "Μη επιτρεπόμενοι χαρακτήρες: %(value)s" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "ID κατηγορίας προβλήματος" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "όνομα κατηγορίας προβλήματος" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "τύπος προβλήματος" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "τύποι προβλήματος" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "ID ομάδας προβλημάτων" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "όνομα ομάδας προβλημάτων" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "ομάδα προβλημάτων" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "ομάδες προβλημάτων" -#: judge/models/problem.py:61 -msgid "key" -msgstr "κλειδί" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "σύνδεσμος" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "ονοματεπώνυμο" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "υποκοριστικό ονόματος" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "Εμφανίζεται σε σελίδες με αυτή την άδεια χρήσης" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." +msgstr "Εμφανίζεται σε σελίδες με αυτή την άδεια χρήσης." -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "εικονίδιο" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL για το εικονίδιο" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "URL για το εικονίδιο." -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "κείμενο άδειας χρήσης" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "άδεια" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "άδειες" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "Ακολουθήστε την καθολική ρύθμιση" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "Πάντα ορατό" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "Ορατό αν το πρόβλημα λυθεί" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "Μόνο δικές μου υποβολές" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "κωδικός προβλήματος" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" -msgstr "Ένας σύντομος, μοναδικός κωδικός για το πρόβλημα, που χρησιμοποιείται στο url μετά το /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" +msgstr "Ένας σύντομος, μοναδικός κωδικός για το πρόβλημα, που χρησιμοποιείται στο URL μετά το /problem/" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "όνομα προβλήματος" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "Το πλήρες όνομα του προβλήματος, όπως φαίνεται στη λίστα προβλημάτων." -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "σώμα προβλήματος" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "δημιουργοί" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "Αυτοί οι χρήστες θα είναι σε θέση να επεξεργάζονται το πρόβλημα και να εμφανίζονται ως συγγραφείς." -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "Αυτοί οι χρήστες θα είναι σε θέση να επεξεργάζονται το πρόβλημα, αλλά δεν θα εμφανίζονται ως συγγραφείς." -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "Αυτοί οι χρήστες θα είναι σε θέση να δουν το ιδιωτικό πρόβλημα, αλλά όχι να το επεξεργαστούν." -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "Ο τύπος του προβλήματος, όπως εμφανίζεται στη σελίδα του προβλήματος." -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "Η ομάδα του προβλήματος, όπως εμφανίζεται στην Κατηγορία στη λίστα προβλημάτων." -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "Το χρονικό όριο για αυτό το πρόβλημα, σε δευτερόλεπτα. Κλασματικά δευτερόλεπτα (π.χ. 1.5) υποστηρίζονται." -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "όριο μνήμης" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "Το όριο μνήμης για αυτό το πρόβλημα, σε kilobytes (π.χ. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." +msgstr "Το όριο μνήμης για αυτό το πρόβλημα, σε kilobytes (π.χ. 256mb = 262144 kilobytes)." -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "βραχυκύκλωμα" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "Πόντοι που απονέμονται για την ολοκλήρωση του προβλήματος. Οι πόντοι εμφανίζονται με επίθεμα 'p' αν βαθμολογείται μερικώς." -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "επιτρέπεται μερική βαθμολόγηση" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "επιτρεπόμενες γλώσσες" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "Λίστα επιτρεπόμενων γλωσσών υποβολής." -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "χειροκίνητη διαχείριση" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "Αν οι κριτές θα επιτρέπεται να διαχειρίζονται δεδομένα ή όχι." -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "ημερομηνία δημοσίευσης" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" -msgstr "Δεν έχει μαγική ικανότητα αυτόματης δημοσίευσης λόγω οπισθόδρομης συμβατότητας" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." +msgstr "Δεν έχει μαγική ικανότητα αυτόματης δημοσίευσης λόγω οπισθόδρομης συμβατότητας." -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "Απαγορεύει στους επιλεγμένους χρήστες την υποβολή σε αυτό το πρόβλημα." -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "Η άδεια χρήσης υπό την οποία δημοσιεύεται αυτό το πρόβλημα." -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "σύνοψη προβλήματος" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "αριθμός χρηστών" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "Ο αριθμός των χρηστών που έλυσαν το πρόβλημα." -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "ρυθμός επίλυσης" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "επιτρέπει πλήρη πρόσβαση markdown" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "ορατότητα πηγής υποβολής" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "Εάν ιδιωτικό, μόνο αυτοί οι οργανισμοί μπορούν να δουν το πρόβλημα." -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "Δείτε κρυμμένα προβλήματα" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "Επεξεργασία δικών σας προβλημάτων" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "Επεξεργασία όλων των προβλημάτων" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "Επεξεργασία όλων των δημόσιων προβλημάτων" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "Επεξεργασία προβλημάτων με πλήρη markup" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Κλωνοποίηση προβλήματος" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "Αλλαγή is_public πεδίου" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "Αλλαγή is_manually_managed πεδίου" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "Δείτε ιδιωτικά-οργανισμών προβλήματα" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "γλώσσα" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "μεταφρασμένο όνομα" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "μεταφρασμένη περιγραφή" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "μετάφραση προβλήματος" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "μεταφράσεις προβλήματος" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "διευκρινισμένο πρόβλημα" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "σώμα διευκρίνησης" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "χρονοσφραγίδα διευκρίνησης" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "διευκρίνηση προβλήματος" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "διευκρινίσεις προβλήματος" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "ειδικό όριο πόρων για τη γλώσσα" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "ειδικά όρια πόρων για τη γλώσσα" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "συσχετιζόμενο πρόβλημα" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "ημερομηνία δημοσίευσης" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "περιεχόμενο εξήγησης" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "Δείτε κρυφές λύσεις" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "λύση" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "λύσεις" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "ψηφοφόρος" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "σημείωση" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "Κανονικό" @@ -1836,11 +1910,11 @@ msgstr "αρχείο zip δεδομένων" msgid "generator file" msgstr "αρχείο γεννήτριας" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "μήκος προθέματος εξόδου" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "μήκος ορίου εξόδου" @@ -1848,59 +1922,67 @@ msgstr "μήκος ορίου εξόδου" msgid "init.yml generation feedback" msgstr "init.yml ανατροφοδότηση δημιουργίας" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "ελεγκτής" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "ενεργοποίηση Unicode" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "απενεργοποίηση BigInteger / BigDecimal" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "ορίσματα ελεγκτή" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" -msgstr "ορίσματα ελεγκτή ως αντικείμενο JSON" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." +msgstr "Ορίσματα ελεγκτή ως αντικείμενο JSON." -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "σύνολο δεδομένων προβλήματος" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "θέση δοκιμαστικής περίπτωσης" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "τύπος δοκιμαστικής περίπτωσης" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "Κανονική περίπτωση" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "Έναρξη δεσμίδας" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "Λήξη δεσμίδας" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "όνομα αρχείου εισαγωγής" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "όνομα αρχείου εξόδου" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "ορίσματα γεννήτριας" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "αξία πόντου" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "η περίπτωση είναι προ-δοκιμαστική;" @@ -1913,12 +1995,12 @@ msgid "organization slug" msgstr "slug οργανισμού" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "Το όνομα οργανισμού που εμφανίζεται στο URL" +msgid "Organization name shown in URLs." +msgstr "Το όνομα οργανισμού που εμφανίζεται στο URL." #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "Εμφανίζεται δίπλα στο όνομα χρήστη κατά τη διάρκεια διαγωνισμών" +msgid "Displayed beside user name during contests." +msgstr "Εμφανίζεται δίπλα στο όνομα χρήστη κατά τη διάρκεια διαγωνισμών." #: judge/models/profile.py:47 msgid "organization description" @@ -1929,8 +2011,8 @@ msgid "administrators" msgstr "διαχειριστές" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "Όσοι μπορούν να επεξεργαστούν αυτόν τον οργανισμό" +msgid "Those who can edit this organization." +msgstr "Όσοι μπορούν να επεξεργαστούν αυτόν τον οργανισμό." #: judge/models/profile.py:50 msgid "creation date" @@ -1941,20 +2023,20 @@ msgid "is open organization?" msgstr "είναι ανοικτός οργανισμός;" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "Να επιτρέπεται η εγγραφή στον οργανισμό" +msgid "Allow joining organization." +msgstr "Να επιτρέπεται η εγγραφή στον οργανισμό." #: judge/models/profile.py:53 msgid "maximum size" msgstr "μέγιστο μέγεθος" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "Μέγιστος αριθμός χρηστών σε αυτόν τον οργανισμό, ισχύει μόνο για ιδιωτικούς οργανισμούς" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "Μέγιστος αριθμός χρηστών σε αυτόν τον οργανισμό, ισχύει μόνο για ιδιωτικούς οργανισμούς." -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "Κωδικός πρόσβασης μαθητή" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "Κωδικός πρόσβασης μαθητή." #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1965,12 +2047,12 @@ msgid "class membership required" msgstr "απαιτείται εγγραφή σε κατηγορία" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" -msgstr "αν τα μέλη είναι υποχρεωμένα να επιλέξουν μια κατηγορία κατά την εγγραφή" +msgid "Whether members are compelled to select a class when joining." +msgstr "Αν τα μέλη είναι υποχρεωμένα να επιλέξουν μια κατηγορία κατά την εγγραφή." #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" -msgstr "Η εγγραφή σε κατηγορία δεν μπορεί να επιβληθεί όταν ο οργανισμός έχει ανοιχτή εγγραφή" +msgid "Class membership cannot be enforced when organization has open enrollment." +msgstr "Η εγγραφή σε κατηγορία δεν μπορεί να επιβληθεί όταν ο οργανισμός έχει ανοιχτή εγγραφή." #: judge/models/profile.py:95 msgid "Administer organizations" @@ -1981,13 +2063,13 @@ msgid "Edit all organizations" msgstr "Επεξεργασία όλων των οργανισμών" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "οργανισμός" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" -msgstr "την οργάνωση στην οποία ανήκει αυτή η κατηγορία" +msgid "The organization that this class belongs to." +msgstr "Την οργάνωση στην οποία ανήκει αυτή η κατηγορία." #: judge/models/profile.py:106 msgid "class name" @@ -1998,8 +2080,8 @@ msgid "class slug" msgstr "slug κατηγορίας" #: judge/models/profile.py:107 -msgid "class name shown in URLs" -msgstr "όνομα κατηγορίας που εμφανίζεται σε διευθύνσεις URL" +msgid "Class name shown in URLs." +msgstr "Όνομα κατηγορίας που εμφανίζεται σε διευθύνσεις URL." #: judge/models/profile.py:108 msgid "class description" @@ -2009,13 +2091,9 @@ msgstr "περιγραφή κατηγορίας" msgid "is class active" msgstr "είναι η κατηγορία ενεργή" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "κωδικός πρόσβασης μαθητή" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" -msgstr "εκείνοι που μπορούν να εγκρίνουν την ιδιότητα μέλους σε αυτή την κατηγορία" +msgid "Those who can approve membership to this class." +msgstr "Εκείνοι που μπορούν να εγκρίνουν την ιδιότητα μέλους σε αυτή την κατηγορία." #: judge/models/profile.py:114 msgid "members" @@ -2026,7 +2104,7 @@ msgstr "μέλη" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "κατηγορία" @@ -2039,8 +2117,8 @@ msgid "self-description" msgstr "αυτο-περιγραφή" #: judge/models/profile.py:150 -msgid "location" -msgstr "τοποθεσία" +msgid "time zone" +msgstr "ζώνη ώρας" #: judge/models/profile.py:152 msgid "preferred language" @@ -2070,8 +2148,8 @@ msgstr "Κανονικός Χρήστης" msgid "Problem Setter" msgstr "Δημιουργός Προβλημάτων" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2097,163 +2175,183 @@ msgid "User will not be ranked." msgstr "Ο χρήστης δεν θα βαθμονομηθεί." #: judge/models/profile.py:172 +msgid "banned from voting on problem point values" +msgstr "" + +#: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 msgid "user script" msgstr "script χρήστη" -#: judge/models/profile.py:173 +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "Καθορισμένη από το χρήστη JavaScript για εξατομίκευση ιστότοπου." -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "τρέχων διαγωνισμός" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "μηχανή μαθηματικών" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "η μηχανή απεικόνισης που χρησιμοποιείται για την απεικόνιση μαθηματικών" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." +msgstr "Η μηχανή απεικόνισης που χρησιμοποιείται για την απεικόνιση μαθηματικών." -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "TOTP 2FA ενεργοποιημένο" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" -msgstr "τσεκάρετε για να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων βάσει TOTP" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." +msgstr "Τσεκάρετε για να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων βάσει TOTP." -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn 2FA ενεργοποιημένο" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" -msgstr "τσεκάρετε για να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων βάσει WebAuthn" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." +msgstr "Τσεκάρετε για να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων βάσει WebAuthn." -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "TOTP κλειδί" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" -msgstr "32 χαρακτήρων βάσης32-κωδικοποιημένο κλειδί για TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." +msgstr "32 χαρακτήρων βάσης32-κωδικοποιημένο κλειδί για TOTP." -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" -msgstr "Το κλειδί TOTP πρέπει να είναι άδειο ή βάσης32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." +msgstr "Το κλειδί TOTP πρέπει να είναι άδειο ή βάσης32." -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "κωδικοί scratch" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" -msgstr "JSON πίνακας 16 χαρακτήρων βάσης32-κωδικοποιημένων κωδικών για scratch" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." +msgstr "JSON πίνακας 16 χαρακτήρων βάσης32-κωδικοποιημένων κωδικών για scratch." -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" -msgstr "Οι κωδικοί scratch πρέπει να είναι κενοί ή πίνακας JSON κωδικών 16 χαρακτήρων βάσης32" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." +msgstr "Οι κωδικοί scratch πρέπει να είναι κενοί ή πίνακας JSON κωδικών 16 χαρακτήρων βάσης32." -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "τελευταίος κωδικός χρόνου TOTP" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "Διακριτικό API" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" -msgstr "hex-κωδικοποιημένο διακριτικό πρόσβασης API 64 χαρακτήρων" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." +msgstr "Hex-κωδικοποιημένο διακριτικό πρόσβασης API 64 χαρακτήρων." -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "Το διακριτικό API πρέπει να είναι Κανένα ή δεκαεξαδικό" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "εσωτερικές σημειώσεις" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "Σημειώσεις για διαχειριστές σχετικά με αυτόν τον χρήστη." -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "ώρα τελευταίας λήψης δεδομένων" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "παράκαμψη εμφάνιση ονόματος" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" -msgstr "εμφάνιση ονόματος στη θέση του ονόματος χρήστη" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." +msgstr "Εμφάνιση ονόματος στη θέση του ονόματος χρήστη." -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "Δείχνει πράγματα ανάπτυξης σε εξέλιξη" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "Επεξεργασία ρυθμίσεων TOTP" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "προφίλ χρήστη" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" -msgstr "προφίλ χρήστη" +msgstr "προφίλ χρηστών" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "όνομα συσκευής" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "διαπιστευτήρια ID" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "δημόσιο κλειδί" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "μετρητής υπογραφής" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "WebAuthn διαπιστευτήριο: %(name)s" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "WebAuthn διαπιστευτήριο" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "WebAuthn διαπιστευτήρια" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "ώρα αιτήματος" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "κατάσταση" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Εκκρεμεί" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Εγκρίθηκε" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Απορρίφθηκε" + +#: judge/models/profile.py:372 msgid "reason" msgstr "αιτία" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "αίτηση συμμετοχής οργανισμού" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "αιτήσεις συμμετοχής οργανισμού" @@ -2282,8 +2380,8 @@ msgid "common name" msgstr "κοινή ονομασία" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" -msgstr "Κοινή ονομασία γλώσσας. Για παράδειγμα, η κοινή ονομασία για C++03, C++11, και C++14 θα είναι \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." +msgstr "Κοινή ονομασία γλώσσας. Για παράδειγμα, η κοινή ονομασία για C++03, C++11, και C++14 θα είναι \"C++\"." #: judge/models/runtime.py:32 msgid "ace mode name" @@ -2362,16 +2460,16 @@ msgid "judge name" msgstr "όνομα κριτή" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" -msgstr "Όνομα διακομιστή, στυλ ονόματος υπολογιστή (hostname)" +msgid "Server name, hostname-style." +msgstr "Όνομα διακομιστή, στυλ ονόματος υπολογιστή (hostname)." #: judge/models/runtime.py:126 msgid "time of creation" msgstr "ώρα δημιουργίας" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" -msgstr "Ένα κλειδί για την πιστοποίηση αυτού του κριτή" +msgid "A key to authenticate this judge." +msgstr "Ένα κλειδί για την πιστοποίηση αυτού του κριτή." #: judge/models/runtime.py:128 msgid "authentication key" @@ -2455,9 +2553,9 @@ msgstr "Σφάλμα Μεταγλώττισης" msgid "Internal Error" msgstr "Εσωτερικό Σφάλμα" -#: judge/models/submission.py:31 -msgid "Short circuit" -msgstr "Βραχυκύκλωμα" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" +msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 #: judge/models/submission.py:64 @@ -2480,10 +2578,6 @@ msgstr "Υπό βαθμολόγηση" msgid "Completed" msgstr "Ολοκληρώθηκε" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "Εσωτερικό Σφάλμα (εκτίμηση σφάλματος διακομιστή)" @@ -2492,15 +2586,15 @@ msgstr "Εσωτερικό Σφάλμα (εκτίμηση σφάλματος δ msgid "submission time" msgstr "ώρα υποβολής" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "χρόνος εκτέλεσης" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "χρήση μνήμης" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "χορηγηθέντες πόντοι" @@ -2552,97 +2646,97 @@ msgstr "έτρεξε μόνο σε προδοκιμές" msgid "submission lock" msgstr "κλείδωμα υποβολής" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "Ακύρωση οποιασδήποτε υποβολής" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "Κρίση εκ νέου της υποβολής" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "Κρίση εκ νέου πολλών υποβολών" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "Υποβολή χωρίς όριο" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "Δείτε όλες τις υποβολές" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "Επανυποβολή υποβολής τρίτων" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "Αλλαγή κατάστασης κλειδώματος υποβολής" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "υποβολές" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "συσχετιζόμενη υποβολή" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "πηγαίος κώδικας" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "πηγή υποβολής" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "πηγές υποβολής" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "ID δοκιμαστικής περίπτωσης" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "σημαία κατάστασης" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "δυνατοί πόντοι" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "αριθμός δεσμίδας" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "σχόλια κριτή" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "εκτενή σχόλια κριτή" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "έξοδος προγράμματος" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "δοκιμαστική περίπτωση υποβολής" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "δοκιμαστικές περιπτώσεις υποβολής" @@ -2690,10 +2784,6 @@ msgstr "αίτημα" msgid "tickets" msgstr "αιτήματα" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "αφίσα" - #: judge/models/ticket.py:34 msgid "message body" msgstr "σώμα μηνύματος" @@ -2802,8 +2892,8 @@ msgstr "Η περίπτωση έναρξης δεσμίδας #%d χρειάζε #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" -msgstr "Προσπάθεια τερματισμού δεσμίδας εκτός μίας στην περίπτωση #%d" +msgid "Attempt to end batch outside of one in case #%d." +msgstr "Προσπάθεια τερματισμού δεσμίδας εκτός μίας στην περίπτωση #%d." #: judge/utils/problem_data.py:154 msgid "How did you corrupt the zip path?" @@ -2825,10 +2915,6 @@ msgstr "Λήξη χρονικού ορίου" msgid "Error" msgstr "Σφάλμα" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "Δεν μπορούν να περαστεί και το σύνολο ερωτημάτων (queryset) και τα φίλτρα λέξεων-κλειδιών (keyword filters)" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "Αυτός ο κωδικός πρόσβασης είναι πολύ συνηθισμένος." @@ -2868,7 +2954,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "Σελίδα %d Αναρτήσεων" @@ -2893,7 +2979,7 @@ msgstr "Δεν μπορείτε να ψηφίσετε για τα δικά σα msgid "You already voted." msgstr "Έχετε ήδη ψηφίσει." -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "Επεξεργάστηκε από την ιστοσελίδα" @@ -2968,62 +3054,58 @@ msgstr "Εισάγετε κωδικό πρόσβασης για το \"%s\"" msgid "You are not in contest \"%s\"." msgstr "Δεν είστε στο διαγωνισμό \"%s\"." -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "Το ContestCalendar απαιτεί ακέραιο έτος και μήνα" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "Διαγωνισμοί %(month)s" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "F Y" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "%s Στατιστικά" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "%s Κατάταξη" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "???" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" -msgstr "Η συμμετοχή σας στο %s" +msgid "Your participation in %(contest)s" +msgstr "Η συμμετοχή σας στο %(contest)s" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" -msgstr "Συμμετοχή του %s στο %s" +msgid "%(user)s's participation in %(contest)s" +msgstr "Συμμετοχή του/της %(user)s στο %(contest)s" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "Ζωντανά" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Συμμετοχή" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "%s MOSS Αποτελέσματα" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "Εκτέλεση MOSS για %s..." -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "Ετικέτα διαγωνισμού: %s" @@ -3047,7 +3129,7 @@ msgstr "χωρίς άδεια για %s" msgid "corrupt page %s" msgstr "αλλοιωμένη σελίδα %s" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "Χρόνοι εκτέλεσης" @@ -3070,207 +3152,231 @@ msgstr "Αδυναμία εύρεσης τέτοιου οργανισμού." msgid "Organizations" msgstr "Οργανισμοί" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "%s Μέλη" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "Εγγραφή στον οργανισμό" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "Είστε ήδη μέλος αυτού του οργανισμού." -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "Αυτός ο οργανισμός δεν είναι ανοιχτός." -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "Αποχώρηση από τον οργανισμό" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "Δεν είστε στο \"%s\"." -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "Δεν μπορείτε να αιτηθείτε να εγγραφείται στο %s" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "Έχετε ήδη ένα αίτημα σε εκκρεμότητα για εγγραφή στο %s." -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "Αίτηση εγγραφής στο %s" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "Λεπτομέρειες αίτησης εγγραφής" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "Διαχείριση αιτήσεων εγγραφής για %s" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 +#, 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 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "Ο οργανισμός σας μπορεί να λάβει ακόμη %d μόνο μέλη. Δεν μπορείτε να εγκρίνετε %d χρήστες." +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "Δεν μπορείτε να εγκρίνετε %d χρήστη." +msgstr[1] "Δεν μπορείτε να εγκρίνετε %d χρήστες." -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "Εγκρίθηκε ο χρήστης %d." msgstr[1] "Εγκρίθηκαν οι χρήστες %d." -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "Απορρίφθηκε ο χρήστης %d." msgstr[1] "Απορρίφθηκαν οι χρήστες %d." -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "Επεξεργασία %s" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "Αδυναμία επεξεργασίας οργανισμού" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "Δεν έχετε δικαιώμα να επεξεργαστείτε αυτόν τον οργανισμό." -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "Δεν έχετε δικαιώμα να αποβάλλετε κόσμο από αυτόν τον οργανισμό." -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "Αδυναμία αποβολής χρήστη" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "Ο χρήστης που προσπαθείτε να αποβάλλετε δεν υπάρχει!" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." -msgstr "Ο χρήστης που προσπαθείτε να αποβάλλετε δε βρίσκεται στον οργανισμό: %s." +msgid "The user you are trying to kick is not in organization: %s" +msgstr "Ο χρήστης που προσπαθείτε να αποβάλλετε δε βρίσκεται στον οργανισμό: %s" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Κατηγορία {name} στο {organization}" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Κατηγορία {name} - {organization}" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "Αίτηση εγγραφής του {name} στο {organization}" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "Δεν υπάρχει τέτοιο πρόβλημα" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "Αδυναμία εύρεσης προβλήματος με κωδικό \"%s\"." -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "Εξήγηση για {0}" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "Δεν υπάρχει τέτοια εξήγηση" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "Αδυναμία εύρεσης εξήγησης με κωδικό \"%s\"." -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Προβλήματα" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "επιτυχία" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "Υποβολή στο %s" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "Αποκλεισμένος από υποβολή" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "Πάρα πολλές υποβολές" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "Έχετε υπερβεί το όριο υποβολής για αυτό το πρόβλημα." -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "Κλωνοποίηση Προβλήματος" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "Κλωνοποιημένο πρόβλημα από %s" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" -msgstr "Τα ορίσματα ελεγκτή πρέπει να είναι αντικείμενο JSON" +msgid "Checker arguments must be a JSON object." +msgstr "Τα ορίσματα ελεγκτή πρέπει να είναι αντικείμενο JSON." #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" -msgstr "Τα ορίσματα ελεγκτή είναι λανθασμένο JSON" +msgid "Checker arguments is invalid JSON." +msgstr "Τα ορίσματα ελεγκτή είναι λανθασμένο JSON." #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "Το zip αρχείο σας είναι λανθασμένο!" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "Σύγκριση υποβολών για {0}" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "Επεξεργασία δεδομένων για {0}" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "Επεξεργασία δεδομένων για %s" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "Παραγμένο init.yml για %s" @@ -3313,8 +3419,8 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "Καλύτερες λύσεις για το πρόβλημα %(number)s στο %(contest)s" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" -msgstr "Ένα όνομα χρήστη πρέπει να περιέχει γράμματα, αριθμούς ή κάτω παύλες" +msgid "A username must contain letters, numbers, or underscores." +msgstr "Ένα όνομα χρήστη πρέπει να περιέχει γράμματα, αριθμούς ή κάτω παύλες." #: judge/views/register.py:30 msgid "Preferred language" @@ -3333,15 +3439,15 @@ msgstr "Η διεύθυνση ηλεκτρονικού ταχυδρομείου msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "Ο πάροχος email σας δεν επιτρέπεται λόγω ιστορικού κατάχρησης. Παρακαλούμε χρησιμοποιήστε έναν αξιόπιστο πάροχο email." -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "Εγγραφή" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "Μη Έγκυρο Κλειδί Ενεργοποίησης" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "Αποτυχία ελέγχου ταυτότητας" @@ -3353,7 +3459,7 @@ msgstr "" msgid "Language statistics" msgstr "Στατιστικά γλωσσών" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "Κατάσταση" @@ -3379,59 +3485,51 @@ msgstr "Απαγορεύεται η πρόσβαση." msgid "Submission of %(problem)s by %(user)s" msgstr "Υποβολή για %(problem)s από %(user)s" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "Όλες οι υποβολές" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "Όλες οι υποβολές μου" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "Όλες οι υποβολές από %s" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "Όλες οι υποβολές για %s" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "Πρέπει να περάσει ένα πρόβλημα" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "Οι υποβολές μου για %(problem)s" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "Υποβολές του/της %(user)s για %(problem)s" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "Πρέπει να περάσει ένα διαγωνισμό" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "Οι υποβολές μου στο %(contest)s" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "Υποβολές του/της %(user)s στο %(contest)s" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "Υποβολές του/της {user} για {problem} στο {contest}" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "Υποβολές του/της {user} για το πρόβλημα {number} στο {contest}" @@ -3540,52 +3638,47 @@ msgstr "Σύνδεση" msgid "M j, Y, G:i" msgstr "j M Y, G:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "Προετοιμασία των δεδομένων σας..." -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "Λήψη των δεδομένων σας" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "Ενημερώθηκε στην ιστοσελίδα" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Επεξεργασία προφίλ" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "Παρήχθη διακριτικό API για το χρήστη" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "Αφαιρέθηκε διακριτικό API για το χρήστη" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "Παρήχθη κωδικός scratch για το χρήστη" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Πίνακας Κατάταξης" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "Αποσυνδεθήκατε επιτυχώς." -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "Μη έγκυρα upstream δεδομένα: %s" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" -msgstr "Λανθασμένο γεωγραφικό πλάτος ή γεωγραφικό μήκος" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." +msgstr "" #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" @@ -3610,68 +3703,64 @@ msgstr "Αποσύνδεση" msgid "Terminate" msgstr "Τερματισμός" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" -msgstr "Προβολή Υποβολών" - -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 msgid "View submissions" msgstr "Προβολή υποβολών" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" +msgstr "" + #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 msgid "Edit user" msgstr "Επεξεργασία χρήστη" -#: 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:80 -msgid "Rejudge" -msgstr "Κρίση εκ νέου" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "Γεια σας, %(username)s." -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "Σταματήστε την προσωποποίηση" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "Αποσύνδεση" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Σύνδεση" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "ή" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "Εγγραφή" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "παρακολουθεί" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "Αυτός ο ιστότοπος λειτουργεί καλύτερα με ενεργοποιημένη JavaScript." -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "παρέχεται περήφανα από **DMOJ**" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Επεξεργασία" @@ -3703,39 +3792,53 @@ msgstr "δημοσιεύθηκε στις {time}" msgid "posted {time}" msgstr "δημοσιεύθηκε {time}" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "Διευκρινίσεις" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "Δεν έχουν γίνει διευκρινίσεις μέχρι στιγμής." -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "Διαγωνισμοί σε εξέλιξη" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "Επερχόμενοι διαγωνισμοί" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "Ροή σχολίων" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "Νέα προβλήματα" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "Τα ανοιχτά μου αιτήματα" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "Νέα αιτήματα" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "Σχόλια" @@ -3758,7 +3861,7 @@ msgstr "σχολιάστηκε {time}" msgid "edit %(edits)s" msgstr "επεξεργασία %(edits)s" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "επεξεργάστηκε" @@ -3766,64 +3869,90 @@ msgstr "επεξεργάστηκε" msgid "Link" msgstr "Σύνδεσμος" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "Απάντηση" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "Ψήφοι" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "Απόκρυψη" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "Αυτό το σχόλιο είναι κρυμμένο λόγω υπερβολικής αρνητικής ανατροφοδότησης." -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "Εμφάνιση παρ'όλα αυτά." -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "Δεν υπάρχουν σχόλια αυτή τη στιγμή." -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "Νέο σχόλιο" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "Μη έγκυρο σώμα σχολίου." -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "Ανάρτηση!" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "Τα σχόλια είναι απενεργοποιημένα σε αυτή τη σελίδα." -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "Απάντηση σε σχόλιο" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "επεξεργασία {edits}" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "αρχικό" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "Ψηφοφόρος" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "Βαθμολογία" @@ -3831,6 +3960,18 @@ msgstr "Βαθμολογία" msgid "No votes" msgstr "Δεν υπάρχουν ψήφοι" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "Μη έγκυρος κωδικός πρόσβασης." @@ -3895,12 +4036,12 @@ msgstr "Επόμενο" msgid "Export" msgstr "Εξαγωγή" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "Λίστα" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "Ημερολόγιο" @@ -3908,7 +4049,7 @@ msgstr "Ημερολόγιο" msgid "Info" msgstr "Πληροφορίες" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "Στατιστικά" @@ -3933,7 +4074,7 @@ msgstr "Κλωνοποίηση" msgid "Leave contest" msgstr "Έξοδος από διαγωνισμό" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "Εικονική συμμετοχή" @@ -3950,7 +4091,7 @@ msgstr "Συμμετοχή στο διαγωνισμό" msgid "Spectate contest" msgstr "Παρακολούθηση διαγωνισμού" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "Δεν μπορείτε να συμμετάσχετε σε αυτόν τον διαγωνισμό." @@ -3958,6 +4099,16 @@ msgstr "Δεν μπορείτε να συμμετάσχετε σε αυτόν τ msgid "Log in to participate" msgstr "Συνδεθείτε για να συμμετάσχετε" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "Εικονική συμμετοχή." @@ -3966,6 +4117,21 @@ msgstr "Εικονική συμμετοχή." msgid "Contest is over." msgstr "Ο διαγωνισμός τελείωσε." +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "j F Y, G:i T" @@ -4096,9 +4262,9 @@ msgstr "Απαιτείται **κωδικός πρόσβασης** για συμ msgid "AC Rate" msgstr "Ποσοστό AC" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "Χρήστες" @@ -4106,7 +4272,7 @@ msgstr "Χρήστες" msgid "Editorials" msgstr "Εξηγήσεις" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "Εξήγηση" @@ -4119,10 +4285,6 @@ msgstr "Είστε βέβαιοι ότι θέλετε να συμμετάσχε msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "Με τη συμμετοχή σε ένα διαγωνισμό για πρώτη φορά ξεκινά το χρονόμετρο σας, το οποίο, στη συνέχεια, δεν μπορείτε να σταματήσετε." -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "κρυφό" - #: templates/contest/list.html:84 msgid "private" msgstr "ιδιωτικό" @@ -4131,38 +4293,55 @@ msgstr "ιδιωτικό" msgid "rated" msgstr "αξιολογημένο" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "%(time_limit)s χρονικό παράθυρο" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "Συμμετοχή" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "Παρακολούθηση" -#: templates/contest/list.html:159 -msgid "Active Contests" -msgstr "Ενεργοί Διαγωνισμοί" +#: templates/contest/list.html:161 +msgid "Active contests" +msgstr "Ενεργοί διαγωνισμοί" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Διαγωνισμός" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "Διαγωνισμοί Σε Εξέλιξη" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "Επερχόμενοι Διαγωνισμοί" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "Δεν υπάρχουν προγραμματισμένοι διαγωνισμοί αυτή τη στιγμή." -#: templates/contest/list.html:272 -msgid "Past Contests" -msgstr "Παλαιότεροι Διαγωνισμοί" +#: templates/contest/list.html:274 +msgid "Past contests" +msgstr "Παλαιότεροι διαγωνισμοί" #: templates/contest/media-js.html:4 msgid "Are you sure you want to leave?" @@ -4182,22 +4361,29 @@ msgid "Joining this contest will leave %(contest)s." msgstr "Η συμμετοχή σε αυτόν τον διαγωνισμό θα αφήσει το %(contest)s." #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "Είστε βέβαιοι ότι θέλετε MOSS στο διαγωνισμό;" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "Είστε βέβαιοι ότι θέλετε να διαγράψετε τα αποτελέσματα MOSS;" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "%(count)s υποβολή" +msgstr[1] "%(count)s υποβολές" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "Καμία υποβολή" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "Επαναχρησιμοποίηση MOSS στο διαγωνισμό" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "Διαγραφή αποτελεσμάτων MOSS" @@ -4251,19 +4437,19 @@ msgstr "Αναίρεση Αποκλεισμού" msgid "Disqualify" msgstr "Αποκλεισμός" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "Είστε βέβαιοι ότι θέλετε να αποκλείσετε αυτή τη συμμετοχή;" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "Είστε βέβαιοι ότι θέλετε να αναιρέσεται τον αποκλεισμό αυτής της συμμετοχής;" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "Προβολή συμμετοχής χρήστη" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "Εμφάνιση οργανισμών" @@ -4284,8 +4470,8 @@ msgid "Language AC Rate" msgstr "Ποσοστό AC Γλώσσας" #: templates/license.html:12 -msgid "Source:" -msgstr "Πηγή:" +msgid "Visit source" +msgstr "" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4450,7 +4636,7 @@ msgid "There are no requests to approve." msgstr "Δεν υπάρχουν αιτήσεις για έγκριση." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "Διαγραφή;" @@ -4463,25 +4649,13 @@ msgid "Your reason for joining:" msgstr "Ο λόγος για την εγγραφή σας:" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "Αίτηση" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Εκκρεμεί" +msgid "Request!" +msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "Αρχείο καταγραφής" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "Εγκρίθηκε" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "Απορρίφθηκε" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "Αποβολή" @@ -4498,55 +4672,59 @@ msgstr "Ενημέρωση προεπισκόπησης" msgid "Enter a new code for the cloned problem:" msgstr "Εισάγετε έναν νέο κωδικό για το κλωνοποιημένο πρόβλημα:" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "Προβολή YAML" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "Εμφάνιση στηλών:" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "Πρόθεμα εξόδου" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "Όριο εξόδου" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "Ελεγκτής" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "Ορίσματα γεννήτριας" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "Τύπος" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "Αρχείο εισόδου" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "Αρχείο εξόδου" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "Προδοκιμή;" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "Υποβολή!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "Προσθήκη νέας περίπτωσης" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "Αποθήκευση" @@ -4558,7 +4736,7 @@ msgstr "Θυμηθείτε να χρησιμοποιήσετε αυτήν την msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "Η υποβολή επίσημης λύσης πριν από την επίλυση του προβλήματος είναι αδίκημα που μπορεί να προκαλέσει τον αποκλεισμό του χρήστη." -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "Συγγραφέας:" @@ -4568,20 +4746,20 @@ msgstr[1] "Συγγραφείς:" msgid "Filter by type..." msgstr "Φιλτράρισμα ανά τύπο..." -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "Χοτ προβλήματα" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Κατηγορία" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "Τύποι" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "AC %%" @@ -4645,116 +4823,133 @@ msgstr "Αναβαθμολόγηση Όλων" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "Αυτό θα αναβαθμολογήσει %(count)d υποβολές." +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:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "Είστε βέβαιοι ότι θέλετε να αναβαθμολογήσετε %(count)d υποβολές;" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "Αναβαθμολόγηση όλων των υποβολών" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "Προβολή ως PDF" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "Υποβολή λύσης" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "απομένει %(counter)s υποβολή" msgstr[1] "απομένουν %(counter)s υποβολές" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "απομένουν 0 υποβολές" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "Οι υποβολές μου" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "Οι καλύτερες υποβολές" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "Ανάγνωση εξήγησης" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "Διαχείριση αιτημάτων" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "Επεξεργασία προβλήματος" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "Επεξεργασία δεδομένων δοκιμής" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "Τα αιτήματά μου" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "Διαχείρηση υποβολών" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "Πόντοι:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "(εν μέρει)" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "Χρονικό όριο:" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "Όριο μνήμης:" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "Τύπος προβλήματος" msgstr[1] "Τύποι προβλήματος" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "Επιτρεπόμενες γλώσσες" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "Κανένας κριτής %(lang)s συνδεδεμένος" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "Κριτής:" msgstr[1] "Κριτές:" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "κανένας διαθέσιμος" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "Αίτηση διευκρίνισης" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "Αναφορά προβλήματος" @@ -4803,8 +4998,8 @@ msgstr "Τύποι προβλήματος" msgid "Point range" msgstr "Εύρος πόντων" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "Μετάβαση" @@ -4840,6 +5035,54 @@ msgstr "Σας έχουν απομείνει 0 υποβολές" msgid "No judge is available for this problem." msgstr "Κανένας κριτής δεν είναι διαθέσιμος για αυτό το πρόβλημα." +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4849,6 +5092,50 @@ msgstr "%(key)s δεν είναι έγκυρο κλειδί ενεργοποίη msgid "Your account has been successfully activated." msgstr "Ο λογαριασμός σας ενεργοποιήθηκε επιτυχώς." +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "Τα λέμε σύντομα!" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "Μη έγκυρο όνομα χρήστη ή κωδικός πρόσβασης." @@ -4895,7 +5182,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "Ο κωδικός πρόσβασής σας έχει οριστεί. Μπορείτε τώρα να συνδεθείτε." #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "Επαναφορά Κωδικού Πρόσβασης" @@ -4911,23 +5197,20 @@ msgstr "Σας στείλαμε μήνυμα ηλεκτρονικού ταχυδ 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 "Εάν δεν λάβετε email, βεβαιωθείτε ότι έχετε εισάγει τη διεύθυνση με την οποία έχετε εγγραφεί, και ελέγξτε το φάκελο ανεπιθύμητης αλληλογραφίας σας." -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "Ξεχάσατε τον κωδικό σας στο %(site_name)s; Μην ανησυχείτε!" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." -msgstr "Για να επαναφέρετε τον κωδικό πρόσβασης για το λογαριασμό σας \"%(username)s\", κάντε κλικ στο παρακάτω κουμπί." - -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "Τα λέμε σύντομα! Αν έχετε πρόβλημα με την επαναφορά του email σας, μη διστάσετε να μας στείλετε ένα email στο" +msgid "To reset the password for your account \"%(username)s\", click the link below." +msgstr "Για να επαναφέρετε τον κωδικό πρόσβασης για το λογαριασμό σας \"%(username)s\", κάντε κλικ στον παρακάτω σύνδεσμο." -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" -msgstr "Τα λέμε σύντομα!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 #, python-format @@ -4956,7 +5239,7 @@ msgstr "Η %(site_name)s ομάδα" msgid "Password reset on %(site_name)s" msgstr "Επαναφορά κωδικού πρόσβασης στο %(site_name)s" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Συνέχεια >" @@ -4969,41 +5252,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "(ξανά, για επιβεβαίωση)" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "(επιλέξτε την κοντινότερη μεγάλη πόλη)" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "επιλογή από χάρτη" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "Προεπιλεγμένη γλώσσα" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "Συνδεδεμένοι οργανισμοί" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "Ειδοποιήστε με για επερχόμενους διαγωνισμούς" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "Με την εγγραφή σας, συμφωνείτε με" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "Όροι & Προϋποθέσεις" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "Με την εγγραφή σας, συμφωνείτε με τους [Όροι & Προϋποθέσεις][0] μας." -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "Εγγραφή!" @@ -5012,8 +5290,9 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "Για να προστατεύσετε τον λογαριασμό σας, πρέπει πρώτα να ταυτοποιήσετε την ταυτότητά σας για να απενεργοποιήσετε την ταυτοποίηση δύο παραγόντων." #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" -msgstr "Εισάγετε τον 6-ψήφιο κωδικό που δημιουργήθηκε από την εφαρμογή σας ή έναν από τους 16-ψήφιους κώδικες scratch:" +#: 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-ψήφιο κωδικό που παράχθηκε από την εφαρμογή σας ή έναν από τους κωδικούς scratch 16-χαρακτήρων:" #: templates/registration/totp_disable.html:41 msgid "Disable Two Factor Authentication" @@ -5044,14 +5323,17 @@ msgid "Enable Two Factor Authentication" msgstr "Ενεργοποίηση Ταυτοποίησης Δύο Παραγόντων" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 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 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "Μπορείτε να χρησιμοποιήσετε αυτούς τους κωδικούς για να συνδεθείτε στο λογαριασμό σας ή να απενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων." @@ -5060,6 +5342,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 msgid "Please write these down and keep them in a secure location." msgstr "Παρακαλώ καταγράψτε και αποθηκεύστε τους σε ασφαλές σημείο." @@ -5077,19 +5360,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "Το πρόγραμμα περιήγησης σας δεν υποστηρίζει WebAuthn." #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "Αποτυχία επικοινωνίας με το διακομιστή." -#: 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-ψήφιο κωδικό που παράχθηκε από την εφαρμογή σας ή έναν από τους κωδικούς scratch 16-χαρακτήρων:" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "Εισάγετε έναν από τους κωδικούς scratch 16-χαρακτήρων:" @@ -5115,38 +5394,38 @@ msgstr "Στατιστικά Υποβολής" msgid "AC Submissions by Language" msgstr "AC Υποβολές ανά Γλώσσα" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "Κριτής" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "Συνδεδεμένος" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "Χρόνος λειτουργίας" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "Πινγκ" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "Φορτίο" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "Δ/Υ" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "Δεν υπάρχουν διαθέσιμοι κριτές αυτή τη στιγμή." -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "ID" @@ -5179,23 +5458,27 @@ msgstr "Παρουσιάστηκε ένα εσωτερικό σφάλμα κατ msgid "Error information" msgstr "Πληροφορίες σφάλματος" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "Φιλτράρισμα ανά κατάσταση..." -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "Φιλτράρισμα ανά γλώσσα..." -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "Φίλτρο υποβολών" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "Σύνολο:" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "Αποσυνδεθήκατε. Ανανεώστε για να εμφανιστούν οι τελευταίες ενημερώσεις." @@ -5261,20 +5544,24 @@ msgid "Execution Results" msgstr "Αποτελέσματα Εκτέλεσης" #: templates/submission/status-testcases.html:51 -msgid "Batch " -msgstr "Δεσμίδα " +#, python-format +msgid "Batch #%(id)d" +msgstr "Δεσμίδα #%(id)d" #: templates/submission/status-testcases.html:64 -msgid "Case" -msgstr "Περίπτωση" +#, python-format +msgid "Case #%(id)d:" +msgstr "Περίπτωση #%(id)d:" #: templates/submission/status-testcases.html:66 -msgid "Pretest" -msgstr "Προδοκιμή" +#, python-format +msgid "Pretest #%(id)d:" +msgstr "Προδοκιμή #%(id)d:" #: templates/submission/status-testcases.html:68 -msgid "Test case" -msgstr "Δοκιμαστική περίπτωση" +#, python-format +msgid "Test case #%(id)d:" +msgstr "Δοκιμαστική περίπτωση #%(id)d:" #: templates/submission/status-testcases.html:101 msgid "Your output (clipped)" @@ -5318,11 +5605,11 @@ msgstr "Η υποβολή ακυρώθηκε!" msgid "View source" msgstr "Προβολή πηγής" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "Πατήστε Ctrl-Enter ή Command-Enter για ακύρωση." -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "Ακύρωση" @@ -5339,41 +5626,41 @@ msgstr "Καλύτερες" msgid "%(user)s's" msgstr "%(user)s's" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "Ανοιγμένα εκ νέου: " -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "Κλειστά: " -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "Χρήση ειδοποίησης επιφάνειας εργασίας" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "Απόκρυψη κλειστών αιτημάτων" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "Εμφάνιση μόνο των αιτημάτων μου" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "Χρήστης αρχειοθέτης" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "Υπεύθυνος" msgstr[1] "Υπεύθυνοι" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "Τίτλος" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "Υπεύθυνοι" @@ -5395,31 +5682,32 @@ msgstr "Ευχαριστούμε που ανοίξατε ένα αίτημα!" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "Λάβετε υπόψη ότι αυτή η φόρμα είναι για την αναφορά θεμάτων με μία δήλωση προβλήματος και όχι για αναζήτηση βοήθειας. Αν χρειάζεστε βοήθεια για την επίλυση ενός προβλήματος, ρωτήστε στα σχόλια." -#: templates/ticket/ticket.html:356 -msgid "Post" -msgstr "Ανάρτηση" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" +msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "Συσχετιζόμενο αντικείμενο" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "Δεν έχει ανατεθεί σε κανέναν." -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "Κλείσιμο αιτήματος" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "Εκ νέου άνοιγμα αιτήματος" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "Σημειώσεις υπεύθυνου" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "Δεν υπάρχει κάτι εδώ." @@ -5427,141 +5715,163 @@ msgstr "Δεν υπάρχει κάτι εδώ." msgid "Rank" msgstr "Βαθμίδα" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "Αναζήτηση με ανγνωριστικό..." -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "Είστε βέβαιοι ότι θέλετε να παράξετε ή να αναπαράξετε το API διακριτικό σας;" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "Αυτό θα ακυρώσει τυχόν προηγούμενα διακριτικά API." -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "Επιτρέπει επίσης πρόσβαση στο λογαριασμό σας χωρίς έλεγχο ταυτότητας δύο παραγόντων." -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" -msgstr "Δεν θα είστε σε θέση να δείτε το api διακριτικό σας αφού φύγετε από αυτή τη σελίδα!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" +msgstr "Δεν θα είστε σε θέση να δείτε το API διακριτικό σας αφού φύγετε από αυτή τη σελίδα!" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "Δημιουργία..." -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "Αναπαραγωγή" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "Διαγραφή" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "Είστε βέβαιοι ότι θέλετε να διαγράψετε το API διακριτικό σας;" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "Παραγωγή" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το κλειδί ασφαλείας;" -#: templates/user/edit-profile.html:284 -msgid "Self-description" -msgstr "Αυτο-περιγραφή" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:278 +msgid "Self-description:" +msgstr "" + +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "Επιλέξτε την κοντινότερη μεγάλη πόλη" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" -msgstr "Μοτίβο συντάκτη" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" +msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "Μηχανή μαθηματικών" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "Αλλάξτε το avatar σας" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "Αλλάξτε τον κωδικό σας" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" -msgstr "Η ταυτοποίηση δύο παραγόντων είναι ενεργοποιημένη" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" +msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "Απενεργοποίηση" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "Ανανέωση" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" -msgstr "Κωδικοί Scratch:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" +msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "Κρυφό" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" -msgstr "Η ταυτοποίηση δύο παραγόντων είναι απενεργοποιημένη" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "Ενεργοποίηση" -#: templates/user/edit-profile.html:392 -msgid "API Token" -msgstr "API Διακριτικό" +#: templates/user/edit-profile.html:393 +msgid "API token:" +msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" -msgstr "Κλειδιά ασφαλείας" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" +msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "Διαγραφή" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "Εισάγετε όνομα για αυτό το κλειδί" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "Προσθήκη" -#: templates/user/edit-profile.html:435 -msgid "User-script" -msgstr "Script χρήστη" +#: templates/user/edit-profile.html:436 +msgid "User-script:" +msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "Ενημέρωση προφίλ" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "%(pp).1fpp" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" -msgstr "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" +msgstr "" #: templates/user/prepare-data.html:64 msgid "Are you sure you want to prepare a download?" @@ -5575,31 +5885,41 @@ msgstr "Αυτή τη στιγμή προετοιμάζουμε τα δεδομ msgid "Track progress" msgstr "Παρακολούθηση προόδου" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "Μόλις τα δεδομένα σας είναι έτοιμα, θα βρείτε ένα σύνδεσμο λήψης σε αυτή τη σελίδα." -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "Υποβολές" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "Προετοιμασία νέας λήψης" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "Προετοιμασία λήψης" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "Λήψη έτοιμων δεδομένων" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "Τα δεδομένα σας είναι έτοιμα!" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "Λήψη δεδομένων" @@ -5663,45 +5983,41 @@ msgstr "Περισσότερα" msgid "Rating history" msgstr "Ιστορικό αξιολόγησης" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "προηγούμενο έτος" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "%(counter)s πρόβλημα επιλύθηκε" msgstr[1] "%(counter)s προβλήματα επιλύθηκαν" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "Βαθμίδα βάσει πόντων:" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "Συνολικοί πόντοι:" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "%(counter)s διαγωνισμός συντάχθηκε" msgstr[1] "%(counter)s διαγωνισμοί συντάχθηκαν" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "Βαθμίδα βάσει αξιολόγησης:" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "Αξιολόγηση:" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "Ελάχιστη αξιολόγηση:" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "Μέγιστη αξιολόγηση:" @@ -5725,12 +6041,12 @@ msgstr "Επικυρωμένα προβλήματα" msgid "Hide problems I've solved" msgstr "Απόκρυψη προβλημάτων που έχω λύσει" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" -msgstr "%(points).1f πόντοι" +msgid "%(group)s (%(val)s points)" +msgstr "%(group)s (%(val)s πόντοι)" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "%(points)s / %(total)s" diff --git a/locale/el/LC_MESSAGES/djangojs.po b/locale/el/LC_MESSAGES/djangojs.po index 02fb09dca8..eda77dbdc8 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2022-07-03 00:58\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -17,15 +17,66 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" + +#: 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] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" +msgstr[1] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" +msgstr[1] "" + diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 03ed00dfc3..3f1a284f25 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: 2022-05-20 00:54+0000\n" +"POT-Creation-Date: 2023-01-02 00:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,71 +18,75 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "" + +#: dmoj/settings.py:384 msgid "English" msgstr "" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "" @@ -98,10 +102,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -133,12 +141,25 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "" + +#: judge/admin/contest.py:77 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 "" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "" @@ -163,7 +184,7 @@ msgstr "" msgid "Access" msgstr "" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "" @@ -211,7 +232,7 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -233,7 +254,7 @@ msgstr "" msgid "username" msgstr "" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "" @@ -241,17 +262,14 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -259,103 +277,109 @@ msgstr "" msgid "object" msgstr "" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "" @@ -365,8 +389,8 @@ msgstr "" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "" msgstr[1] "" @@ -379,7 +403,13 @@ msgid "Disallowed problems" msgstr "" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "" + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" msgstr "" #: judge/admin/runtime.py:77 @@ -394,99 +424,103 @@ msgstr "" msgid "Capabilities" msgstr "" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" +msgid "These problems are included in this group of problems." msgstr "" #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" +msgid "These problems are included in this type of problems." msgstr "" #: judge/apps.py:8 @@ -501,12 +535,11 @@ msgstr "" msgid "Your part is silent, little toad." msgstr "" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "" -"You need to have solved at least one problem before your voice can be heard." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "" @@ -610,21 +643,22 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "" -"Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -640,91 +674,94 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "" +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "" @@ -786,8 +823,8 @@ msgstr "" msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 -msgid "hide the comment" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" msgstr "" #: judge/models/comment.py:48 @@ -803,7 +840,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "" @@ -886,7 +923,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "" @@ -894,7 +931,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "" @@ -904,7 +941,7 @@ msgid "" "authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "" @@ -942,7 +979,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -955,12 +992,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "" @@ -999,7 +1036,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -1014,90 +1051,90 @@ msgstr "" msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "" "Whether judges should grade pretests only, versus all testcases. Commonly " "set during a contest, then unset prior to rejudging user submissions when " "the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "" "Whether to show a section containing contest settings on the contest page or " "not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1109,7 +1146,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1117,15 +1154,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1141,7 +1179,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1156,7 +1194,7 @@ msgid "" "contest. Leave it blank to disable." msgstr "" -#: judge/models/contest.py:160 judge/models/problem.py:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "" @@ -1227,7 +1265,7 @@ msgstr "" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1324,15 +1362,8 @@ msgstr "" msgid "contest participations" msgstr "" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "" @@ -1373,7 +1404,7 @@ msgstr "" msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "" @@ -1429,6 +1460,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1469,7 +1508,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1489,10 +1528,6 @@ msgstr "" msgid "post summary" msgstr "" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "" @@ -1509,345 +1544,382 @@ msgstr "" msgid "blog posts" msgstr "" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "" -#: judge/models/problem.py:67 -msgid "URL to the icon" +#: judge/models/problem.py:66 +msgid "URL to the icon." msgstr "" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "" "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "" "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) " "are supported." msgstr "" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "" -#: judge/models/problem.py:147 +#: judge/models/problem.py:142 msgid "" -"The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 " +"The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 " "kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "" "Points awarded for problem completion. Points are displayed with a 'p' " "suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:159 msgid "" -"Doesn't have magic ability to auto-publish due to backward compatibility" +"Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "" @@ -1888,11 +1960,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1900,59 +1972,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1965,11 +2045,11 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" +msgid "Organization name shown in URLs." msgstr "" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" +msgid "Displayed beside user name during contests." msgstr "" #: judge/models/profile.py:47 @@ -1981,7 +2061,7 @@ msgid "administrators" msgstr "" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" +msgid "Those who can edit this organization." msgstr "" #: judge/models/profile.py:50 @@ -1993,7 +2073,7 @@ msgid "is open organization?" msgstr "" #: judge/models/profile.py:52 -msgid "Allow joining organization" +msgid "Allow joining organization." msgstr "" #: judge/models/profile.py:53 @@ -2003,11 +2083,11 @@ msgstr "" #: judge/models/profile.py:54 msgid "" "Maximum amount of users in this organization, only applicable to private " -"organizations" +"organizations." msgstr "" -#: judge/models/profile.py:56 -msgid "Student access code" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." msgstr "" #: judge/models/profile.py:60 @@ -2021,12 +2101,12 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 msgid "" -"Class membership cannot be enforced when organization has open enrollment" +"Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -2038,12 +2118,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -2055,7 +2135,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2066,12 +2146,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2083,7 +2159,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2096,7 +2172,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2127,8 +2203,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2154,164 +2230,184 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 +#: judge/models/profile.py:197 msgid "" -"Scratch codes must be empty or a JSON array of 16-character base32 codes" +"Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + +#: judge/models/profile.py:372 msgid "reason" msgstr "" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2345,7 +2441,7 @@ msgstr "" #: judge/models/runtime.py:30 msgid "" "Common name for the language. For example, the common name for C++03, C++11, " -"and C++14 would be \"C++\"" +"and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2431,7 +2527,7 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2439,7 +2535,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2526,8 +2622,8 @@ msgstr "" msgid "Internal Error" msgstr "" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2551,10 +2647,6 @@ msgstr "" msgid "Completed" msgstr "" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2563,15 +2655,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2623,97 +2715,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2761,10 +2853,6 @@ msgstr "" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "" - #: judge/models/ticket.py:34 msgid "message body" msgstr "" @@ -2873,7 +2961,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2896,10 +2984,6 @@ msgstr "" msgid "Error" msgstr "" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2939,7 +3023,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2964,7 +3048,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -3041,62 +3125,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3120,7 +3200,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3143,211 +3223,233 @@ msgstr "" msgid "Organizations" msgstr "" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "" -"Your organization can only receive %d more members. You cannot approve %d " -"users." -msgstr "" +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 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 +#: judge/views/problem.py:711 msgid "" "You have been declared persona non grata for this problem. You are " -"permanently barred from submitting this problem." +"permanently barred from submitting to this problem." msgstr "" -#: judge/views/problem.py:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3390,7 +3492,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3414,15 +3516,15 @@ msgid "" "reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "" @@ -3434,7 +3536,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "" @@ -3460,59 +3562,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3621,51 +3715,46 @@ msgstr "" msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3691,13 +3780,15 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3705,54 +3796,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3784,39 +3869,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "" @@ -3839,7 +3938,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "" @@ -3847,64 +3946,90 @@ msgstr "" msgid "Link" msgstr "" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "" @@ -3912,6 +4037,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3976,12 +4113,12 @@ msgstr "" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "" @@ -3989,7 +4126,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "" @@ -4014,7 +4151,7 @@ msgstr "" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "" @@ -4031,7 +4168,7 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -4039,6 +4176,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -4047,6 +4194,21 @@ msgstr "" msgid "Contest is over." msgstr "" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "" @@ -4194,9 +4356,9 @@ msgstr "" msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "" @@ -4204,7 +4366,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4219,10 +4381,6 @@ msgid "" "becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4231,37 +4389,54 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "" #: templates/contest/media-js.html:4 @@ -4285,22 +4460,29 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4354,19 +4536,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "" @@ -4387,7 +4569,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4561,7 +4743,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "" @@ -4574,25 +4756,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" +msgid "Request!" msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4609,55 +4779,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4673,7 +4847,7 @@ msgid "" "bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "" @@ -4683,20 +4857,20 @@ msgstr[1] "" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4763,116 +4937,133 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4921,8 +5112,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "" @@ -4960,6 +5151,55 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "" +"A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4969,6 +5209,59 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -5017,7 +5310,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -5037,26 +5329,23 @@ msgid "" "you registered with, and check your spam folder." msgstr "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format msgid "" -"To reset the password for your account \"%(username)s\", click the button " +"To reset the password for your account \"%(username)s\", click the link " "below." msgstr "" -#: templates/registration/password_reset_email.html:15 +#: templates/registration/password_reset_email.html:14 +#, python-format msgid "" -"See you soon! If you have problems resetting your email, feel free to shoot " -"us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +"See you soon! If you have problems resetting your password, feel free to " +"shoot us an email at %(email)s." msgstr "" #: templates/registration/password_reset_email.txt:1 @@ -5088,7 +5377,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5103,41 +5392,36 @@ msgid "" "address you provided to confirm your registration." msgstr "" -#: templates/registration/registration_form.html:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -5148,9 +5432,10 @@ msgid "" 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-digit scratch " -"codes:" +"Enter the 6-digit code generated by your app or one of your 16-character " +"scratch codes:" msgstr "" #: templates/registration/totp_disable.html:41 @@ -5182,14 +5467,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "" "You can use these codes to login to your account or disable two-factor " "authentication." @@ -5202,6 +5490,7 @@ msgid "" msgstr "" #: templates/registration/totp_enable.html:102 +#: templates/user/edit-profile.html:378 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5224,21 +5513,15 @@ msgid "" msgstr "" #: templates/registration/two_factor_auth.html:33 -#: templates/user/edit-profile.html:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5266,38 +5549,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "" @@ -5332,23 +5615,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5414,19 +5701,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5471,11 +5762,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5492,41 +5783,41 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5551,31 +5842,32 @@ msgid "" "a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5583,141 +5875,167 @@ msgstr "" msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "" "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" +#: templates/user/edit-profile.html:207 +msgid "" +"Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "" +"You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5732,31 +6050,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5820,45 +6148,41 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "" @@ -5882,12 +6206,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/en/LC_MESSAGES/djangojs.po b/locale/en/LC_MESSAGES/djangojs.po index 90b88a02bb..7962f58b09 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: 2021-08-28 00:25+0000\n" +"POT-Creation-Date: 2022-12-21 00:43+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,14 +18,65 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" + +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" + +#: 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] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" +msgstr[1] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" +msgstr[1] "" diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 1c81ebfe82..4cde98fa1b 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-06-27 01:00\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Catalán" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Alemán" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Griego" + +#: dmoj/settings.py:384 msgid "English" msgstr "Inglés" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Español" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Francés" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Croata" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Húngaro" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Japonés" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Coreano" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "Portugués (Brasil)" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Rumano" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Ruso" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Serbio (Latino)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Turco" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Vietnamita" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Chino Simplificado" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "Chino Tradicional" @@ -97,10 +101,14 @@ msgstr "Registro Completado" msgid "Registration Not Allowed" msgstr "Registro No Permitido" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Inicio" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "Contenido" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -132,12 +140,25 @@ msgid "Included contests" msgstr "Concursos incluidos" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problema" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: 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:77 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 "Rejuzgar" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "Ajustes" @@ -162,7 +183,7 @@ msgstr "Puntuación" msgid "Access" msgstr "Acceso" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "Justicia" @@ -210,7 +231,7 @@ msgstr[1] "%d concursos desbloqueados exitosamente." msgid "Unlock contest submissions" msgstr "Desbloquear envíos del concurso" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -232,7 +253,7 @@ msgstr "Recalcular resultados" msgid "username" msgstr "nombre de usuario" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "virtual" @@ -240,17 +261,14 @@ msgstr "virtual" msgid "link path" msgstr "ruta de enlace" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Contenido" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Resumen" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "usuario" @@ -258,103 +276,109 @@ msgstr "usuario" msgid "object" msgstr "objeto" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Ver en el sitio web" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "Motivo de la edición" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "Describe los cambios que realizaste (opcional)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Redes Sociales" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Taxonomía" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Puntos" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Límites" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Lenguaje" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "Historia" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Autores" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "La fecha de publicación de %d problema se ha actualizado correctamente." msgstr[1] "La fecha de publicación de %d problemas se ha actualizado correctamente." -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "Establecer fecha de publicación a ahora" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "%d problema marcado exitosamente como público." msgstr[1] "%d problemas marcados exitosamente como públicos." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Marcar problema como publico" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "%d problema marcado como privado con éxito." msgstr[1] "%d problemas marcados como privados con éxito." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "problema" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Usuario" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "Email" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "Zona horaria" @@ -364,8 +388,8 @@ msgstr "fecha de registro" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "Se ha recalculado la puntuación de %d usuario." msgstr[1] "Se ha recalculado la puntuación de %d usuarios." @@ -378,8 +402,14 @@ msgid "Disallowed problems" msgstr "Problemas no permitidos" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "Estos problemas NO tienen permisos para ser enviados en este lenguaje" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "Estos problemas NO tienen permisos para ser enviados en este lenguaje." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "Regenerar" #: judge/admin/runtime.py:77 msgid "Description" @@ -393,100 +423,104 @@ msgstr "Información" msgid "Capabilities" msgstr "Capacidades" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Ninguno" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "No terminado" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Excepcional" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "No aceptado" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "%s (observando)" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "%s (virtual %d)" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "Bloqueado" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "Problemas incluidos" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Estos problemas están incluidos en este grupo de problemas" +msgid "These problems are included in this group of problems." +msgstr "Estos problemas están incluidos en este grupo de problemas." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "Estos problemas están incluidos en este tipo de problemas" +msgid "These problems are included in this type of problems." +msgstr "Estos problemas están incluidos en este tipo de problemas." #: judge/apps.py:8 msgid "Online Judge" @@ -500,11 +534,11 @@ msgstr "Cuerpo del comentario" msgid "Your part is silent, little toad." msgstr "No se supone que deberías hablar, pequeñuelo." -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "Debes tener resuelto por lo menos un problema antes de que te dejemos hablar." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Comentario publicado" @@ -589,20 +623,22 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "IOI (antes de 2016)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "Los tokens de autenticación de dos pasos tienen que ser {TOTP_CODE_LENGTH} dígitos decimales." +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "Los tokens de autenticación de dos pasos tienen que ser {count} dígito decimal." +msgstr[1] "Los tokens de autenticación de dos pasos tienen que ser {count} dígitos decimales." -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "Token de autenticación de dos pasos no válido." -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." -msgstr "Los códigos de Scratch deben tener 16 caracteres base32." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." +msgstr "Los códigos de Scratch deben tener 16 caracteres Base32." -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "Código de scratch inválido." @@ -618,91 +654,94 @@ msgstr "Habilitar las actualizaciones 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:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "No puedes formar parte de más de {count} organizaciones públicas." +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "¿Descargar comentarios?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "¿Descargar envíos?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "Filtrar por código glob del problema:" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "Dejar en blanco para incluir todos los envíos" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtrar por resultado:" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "Por favor selecciona por lo menos una cosa para descargar." -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "Cualquier juez" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Nombre de usuario" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Contraseña" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "Longitud de código inválida." -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "Respuesta WebAuthn inválida." -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "Ningúna respuesta de WebAuthn emitida." -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "ID de credencial de WebAuthn inválida." -#: judge/forms.py:262 +#: judge/forms.py:263 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:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "Debe especificar o totp_token o webauthn_response." -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 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:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "Ya existe un problema con este código." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 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:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "Ya existe un concurso con esta llave primaria." #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "j N Y, g:i a" @@ -764,9 +803,9 @@ msgstr "votos" msgid "body of comment" msgstr "cuerpo del comentario" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "ocultar el comentario" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "oculto" #: judge/models/comment.py:48 msgid "parent" @@ -781,7 +820,7 @@ msgid "comments" msgstr "comentarios" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "Editorial para %s" @@ -864,7 +903,7 @@ msgid "contest name" msgstr "nombre del concurso" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "autores" @@ -872,7 +911,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:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "curadores" @@ -880,7 +919,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "probadores" @@ -916,7 +955,7 @@ msgstr "" msgid "description" msgstr "descripción" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "problemas" @@ -929,12 +968,12 @@ msgstr "hora de inicio" msgid "end time" msgstr "hora final" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "límite de tiempo" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "publicidad visible" @@ -971,7 +1010,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -986,85 +1025,85 @@ msgstr "Usar el sistema de aclaración en vez de comentar." msgid "rating floor" msgstr "puntuación mínima" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" -msgstr "Puntuación mínima para el concurso" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." +msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "puntuación máxima" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" -msgstr "Puntuación máxima para el concurso" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." +msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "calificar todo" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "Calificar todos los usuarios que se unieron." -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "excluir de las puntuaciones" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "privado a usuarios específicos" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "concursantes privados" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "ocultar etiquetas de problemas" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "Si las etiquetas de problemas deberían estar ocultas de forma predeterminada." -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "ocultar autores de problemas" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "Si los autores de problemas deberían estar ocultas de forma predeterminada." -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "ejecutar solo las pruebas previas" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "Si los jueces deben calificar solo las pruebas previas, versus todos los casos de prueba. Se establece normalmente durante un concurso, luego se desactiva antes de rejuzgar los envíos de los usuarios cuando finaliza el concurso." -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "privado para organizaciones" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "organizaciones" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1076,7 +1115,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1084,16 +1123,17 @@ msgid "classes" msgstr "clases" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "Imagen de OpenGraph" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" -msgstr "Imagen que sobreescribe el logo" +msgid "logo override image" +msgstr "imagen que sobreescribe el logo" #: judge/models/contest.py:151 msgid "This image will replace the default site logo for users inside the contest." @@ -1107,7 +1147,7 @@ msgstr "la cantidad de participantes en vivo" msgid "contest summary" msgstr "resumen del concurso" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 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." @@ -1120,7 +1160,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "persona no grata" @@ -1184,7 +1224,7 @@ msgstr "Editar todos los concursos" msgid "Clone contest" msgstr "Clonar concurso" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "Detectar plagios con MOSS" @@ -1266,12 +1306,12 @@ msgstr "" #: judge/models/contest.py:570 #, python-format msgid "%(user)s in %(contest)s, v%(id)d" -msgstr "" +msgstr "%(user)s en %(contest)s, v%(id)d" #: judge/models/contest.py:573 #, python-format msgid "%(user)s in %(contest)s" -msgstr "" +msgstr "%(user)s en %(contest)s" #: judge/models/contest.py:576 msgid "contest participation" @@ -1281,15 +1321,8 @@ msgstr "participación del concurso" msgid "contest participations" msgstr "participaciones del concurso" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "problema" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "puntos" @@ -1329,7 +1362,7 @@ msgstr "problema de concurso" msgid "contest problems" msgstr "problemas del concurso" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "envío" @@ -1385,6 +1418,14 @@ msgstr "resultado del moss del concurso" msgid "contest moss results" msgstr "resultados del moss del concurso" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "llave" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "valor" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "elementos de configuración" @@ -1425,7 +1466,7 @@ msgstr "título de la publicación" msgid "slug" msgstr "slug" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "visibilidad pública" @@ -1445,10 +1486,6 @@ msgstr "contenido del post" msgid "post summary" msgstr "resumen del post" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "imagen de openGraph" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "Editar todas las publicaciones" @@ -1465,337 +1502,374 @@ msgstr "post del blog" msgid "blog posts" msgstr "posts del blog" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "Caracteres no permitidos: %(value)s" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "ID de categoría de problema" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "nombre de categoría de problema" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "tipo de problema" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "tipos de problema" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "ID de grupo de problema" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "nombre de grupo de problema" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "grupo de problema" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "grupos de problemas" -#: judge/models/problem.py:61 -msgid "key" -msgstr "llave" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "enlace" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "nombre completo" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "nombre corto" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "Mostrar en páginas bajo esta licencia" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." +msgstr "Mostrar en páginas bajo esta licencia." -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "icono" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL al icono" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "URL al icono." -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "texto de licencia" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "licencia" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "licencias" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "Usar ajustes globales" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "Siempre visible" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "Visible si se ha resuelto el problema" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "Solo envíos propios" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "código del problema" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" -msgstr "Un código corto y unico para el problema, para usar en la url despues de /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" +msgstr "Un código corto y único para el problema, para usar en la URL después de /problem/" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "nombre del problema" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 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:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "cuerpo del problema" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "creadores" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 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:131 +#: judge/models/problem.py:127 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:135 +#: judge/models/problem.py:131 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:137 +#: judge/models/problem.py:133 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:140 +#: judge/models/problem.py:135 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:142 +#: judge/models/problem.py:137 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:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "límite de memoria" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "La memoria límite para este problema, en kilobytes (e.g. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +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:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "circuito corto" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 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:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "permitir puntos parciales" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "lenguajes permitidos" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "Lista de lenguajes en el que se permite el envío." -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "manejado manualmente" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 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:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "fecha de publicación" -#: judge/models/problem.py:163 -msgid "Doesn't have 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:159 +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:165 +#: judge/models/problem.py:161 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:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "La licencia bajo la que este problema ha sido publicado." -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "resumen del problema" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "número de usuarios" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "El número de usuarios que ha resuelto este problema." -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "porcentaje de solucionados" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "permitir acceso completo al markdown" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "visibilidad de la fuente de envío" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "Si privado, solo estas organizaciones pueden ver el problema." -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "Ver problemas ocultos" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "Editar problemas propios" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "Editar todos los problemas" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "Editar todos los problemas públicos" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "Editar problemas con markup completo" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Clonar problema" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "Cambiar campo is_public" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "Cambiar campo is_manually_managed" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "Ver problemas privados para la organización" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "lenguaje" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "nombre traducido" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "descripción traducida" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "traducción del problema" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "traducciones del problema" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "problema aclarado" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "cuerpo de la aclaración" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "hora de la aclaración" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "aclaración del problema" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "aclaraciones del problema" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "límite de recursos específicos del lenguaje" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "límites de recursos específicos del lenguaje" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "problema asociado" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "fecha de publicación" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "contenido editorial" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "Ver soluciones ocultas" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "solución" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "soluciones" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "votante" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "nota" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "voto del problema" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "votos del problema" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "Estándar" @@ -1836,11 +1910,11 @@ msgstr "archivos de datos de zip" msgid "generator file" msgstr "archivo generador" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "longitud del prefijo de salida" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "longitud de límite de salida" @@ -1848,59 +1922,67 @@ msgstr "longitud de límite de salida" msgid "init.yml generation feedback" msgstr "respuesta de la generación de init.yml" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "verificador" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "argumentos del verificador" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" -msgstr "argumentos del verificador como un objeto JSON" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." +msgstr "Argumentos del verificador como un objetivo JSON." -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "conjunto de datos de problema" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "posición del caso" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "tipo de caso" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "Caso normal" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "Inicio de lote" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "Fin de lote" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "nombre de archivo de entrada" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "nombre del archivo de salida" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "argumentos del generador" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "valor del punto" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "¿es este caso una prueba previa?" @@ -1913,12 +1995,12 @@ msgid "organization slug" msgstr "sufijo de la organización" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "Nombre de la organización tal y como se muestra en la URL" +msgid "Organization name shown in URLs." +msgstr "Nombre de la organización tal y como se muestra en las URL." #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "Se muestra junto al nombre de usuario durante los concursos" +msgid "Displayed beside user name during contests." +msgstr "Se muestra junto al nombre de usuario durante los concursos." #: judge/models/profile.py:47 msgid "organization description" @@ -1929,8 +2011,8 @@ msgid "administrators" msgstr "administradores" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "Aquellos que pueden editar esta organización" +msgid "Those who can edit this organization." +msgstr "Aquellos que pueden editar esta organización." #: judge/models/profile.py:50 msgid "creation date" @@ -1941,20 +2023,20 @@ msgid "is open organization?" msgstr "¿es una organización abierta?" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "Permitir la unión a la organización" +msgid "Allow joining organization." +msgstr "Permitir la unión a la organización." #: judge/models/profile.py:53 msgid "maximum size" msgstr "tamaño máximo" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "Máxima cantidad de usuarios en esta organización, solo aplicable para organizaciones privadas" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "Máxima cantidad de usuarios en esta organización, solo aplicable para organizaciones privadas." -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "Código de acceso para estudiantes" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "Código de acceso para estudiantes." #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1965,11 +2047,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1981,12 +2063,12 @@ 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:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "organización" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1998,8 +2080,8 @@ msgid "class slug" msgstr "slug de clase" #: judge/models/profile.py:107 -msgid "class name shown in URLs" -msgstr "nombre de la clase que se muestra en las URLs" +msgid "Class name shown in URLs." +msgstr "Nombre de la clase que se muestra en las URL." #: judge/models/profile.py:108 msgid "class description" @@ -2009,12 +2091,8 @@ msgstr "descripción de la clase" msgid "is class active" msgstr "está activa la clase" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "código de acceso para estudiantes" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2026,7 +2104,7 @@ msgstr "miembros" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "clase" @@ -2039,8 +2117,8 @@ msgid "self-description" msgstr "descripción propia" #: judge/models/profile.py:150 -msgid "location" -msgstr "ubicación" +msgid "time zone" +msgstr "zona horaria" #: judge/models/profile.py:152 msgid "preferred language" @@ -2070,8 +2148,8 @@ msgstr "Usuario Normal" msgid "Problem Setter" msgstr "Creador de Problemas" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2097,163 +2175,183 @@ msgid "User will not be ranked." msgstr "Este usuario no será puesto en los rankings." #: judge/models/profile.py:172 +msgid "banned from voting on problem point values" +msgstr "" + +#: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 msgid "user script" msgstr "scrip de usuario" -#: judge/models/profile.py:173 +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "JavaScript definido por el usuario para la personalización del sitio." -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "concurso actual" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "motor matemático" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "el motor de renderizado utilizado para representar las matemáticas" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." +msgstr "El motor de renderizado utilizado para representar las matemáticas." -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "TOTP de la Autenticación en dos pasos habilitado" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" -msgstr "activar autenticación de dos pasos basada en TOTP" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." +msgstr "Activar autenticación de dos pasos basada en TOTP." -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn de Autenticación en dos pasos habilitado" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" -msgstr "activar autenticación de dos pasos basada en WebAuthn" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." +msgstr "Activar autenticación de dos pasos basada en WebAuthn." -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "llave TOTP" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" -msgstr "llave con codificacion base32 de 32 carácteres para el TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." +msgstr "Llave con codificación Base32 de 32 caracteres para el TOTP." -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" -msgstr "La llave TOTP debe estar vacía o ser base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." +msgstr "La llave TOTP debe estar vacía o ser Base32." -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "códigos scratch" -#: judge/models/profile.py:188 -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:193 +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:192 -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:197 +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:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "Token API" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" -msgstr "Token de acceso a la API codificado con 64 caracteres hexadecimales" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." +msgstr "Token de acceso a la API codificado con 64 caracteres hexadecimales." -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" -msgstr "El Token API debe ser Ninguno o hexadecimal" +msgstr "El token API debe ser Ninguno o hexadecimal" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "notas internas" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "Notas para administradores sobre este usuario." -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "última descarga de datos" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "anular el nombre para mostrar" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" -msgstr "nombre mostrado en lugar del nombre de usuario" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." +msgstr "Nombre mostrado en lugar del nombre de usuario." -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "Muestra las cosas que el equipo de desarrollo está haciendo actualmente" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "Editar ajustes TOTP" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "perfil del usuario" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "perfiles de usuarios" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "nombre de dispositivo" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "ID de credencial" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "clave pública" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "contador de señales" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "Credencial de WebAuthn: %(name)s" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "credencial de WebAuthn" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "credenciales de WebAuthn" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "tiempo requerido" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "estado" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Pendiente" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Aprobado" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Rechazado" + +#: judge/models/profile.py:372 msgid "reason" msgstr "razón" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "solicitud de adhesión de la organización" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "solicitudes de adhesión a la organización" @@ -2282,8 +2380,8 @@ msgid "common name" msgstr "nombre común" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" -msgstr "Nombre común del lenguaje. Por ejemplo, el nombre común de C++03, C++11, y C++14 seria \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." +msgstr "Nombre común del idioma. Por ejemplo, el nombre común de C++03, C++11, y C++14 seria \"C++\"." #: judge/models/runtime.py:32 msgid "ace mode name" @@ -2362,16 +2460,16 @@ msgid "judge name" msgstr "nombre del juez" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" -msgstr "Nombre del servidor, nombre del host-style" +msgid "Server name, hostname-style." +msgstr "Nombre del servidor, nombre del host-style." #: judge/models/runtime.py:126 msgid "time of creation" msgstr "fecha de creación" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" -msgstr "La llave para autenticar este juez" +msgid "A key to authenticate this judge." +msgstr "La llave para autenticar este juez." #: judge/models/runtime.py:128 msgid "authentication key" @@ -2455,9 +2553,9 @@ msgstr "Error de Compilación" msgid "Internal Error" msgstr "Error Interno" -#: judge/models/submission.py:31 -msgid "Short circuit" -msgstr "Circuito corto" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" +msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 #: judge/models/submission.py:64 @@ -2480,10 +2578,6 @@ msgstr "Clasificación" msgid "Completed" msgstr "Completado" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "Error Interno (juzgando error del servidor)" @@ -2492,15 +2586,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:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "tiempo de ejecución" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "uso de memoria" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "puntos otorgados" @@ -2552,97 +2646,97 @@ msgstr "solo se ejecutó en pruebas previas" msgid "submission lock" msgstr "bloqueo de envío" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, 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:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "Abortar cualquier envío" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "Rejuzgar el envío" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "Rejuzgar un montón de envíos" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "Enviar sin límite" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "Ver todos los envíos" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "Reenviar el envío de otros" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "Cambiar el estado de bloqueo del envío" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "envíos" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "envío asociado" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "código fuente" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "Fuente de %(submission)s" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "fuente de envío" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "fuentes de envío" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "ID de caso de prueba" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "indicador de estado" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "puntos posibles" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "número de lote" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "respuesta del juez" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "respuesta extendida del juez" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "salida del programa" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "caso de prueba del envío" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "casos de prueba del envío" @@ -2690,10 +2784,6 @@ msgstr "ticket" msgid "tickets" msgstr "tickets" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "publicador" - #: judge/models/ticket.py:34 msgid "message body" msgstr "cuerpo del mensaje" @@ -2802,8 +2892,8 @@ msgstr "El caso de inicio de lote #%d requiere puntos." #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" -msgstr "Intento de acabar el grupo de casos fuera de uno en el caso #%d" +msgid "Attempt to end batch outside of one in case #%d." +msgstr "Intento de acabar el grupo de casos fuera de uno en el caso #%d." #: judge/utils/problem_data.py:154 msgid "How did you corrupt the zip path?" @@ -2825,10 +2915,6 @@ msgstr "Tiempo Agotado" msgid "Error" msgstr "Error" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "No se pueden pasar los filtros de consulta y conjunto de palabras clave" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "Esta contraseña es demasiado común." @@ -2868,7 +2954,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "Página %d de Publicaciones" @@ -2893,7 +2979,7 @@ msgstr "" msgid "You already voted." msgstr "Ya has votado." -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "Editado desde sitio" @@ -2968,62 +3054,58 @@ msgstr "Ingrese el código de acceso para \"%s\"" msgid "You are not in contest \"%s\"." msgstr "No estás en el concurso \"%s\"." -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "ContestCalendar necesita un año y mes enteros" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "Concursos en %(month)s" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "F \\d\\e Y" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "%s Estadísticas" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "%s Clasificaciones" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "???" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" -msgstr "Su participación en %s" +msgid "Your participation in %(contest)s" +msgstr "Su participación en %(contest)s" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" -msgstr "Participación de %s en %s" +msgid "%(user)s's participation in %(contest)s" +msgstr "Participación de %(user)s en %(contest)s" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" -msgstr "En Vivo" +msgstr "En vivo" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Participación" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "%s Resultados del Sistema antiplagio MOSS" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "Ejecutando sistema antiplagio MOSS para %s..." -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "Etiqueta de concurso: %s" @@ -3047,7 +3129,7 @@ msgstr "ningún permiso para %s" msgid "corrupt page %s" msgstr "página corrupta %s" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "Tiempo de ejecución" @@ -3070,207 +3152,231 @@ msgstr "No se pudo encontrar tal organización." msgid "Organizations" msgstr "Organizaciones" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "%s Miembros" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "Unirse a la organización" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "Ya estas en esta organización." -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "Esta organización no está abierta." -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "Abandonar organización" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "No estás en \"%s\"." -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "Solicitar para unirse %s" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "Únete a detalle de la solicitud" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "Gestionar solicitudes de unirse para %s" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "Su organización solo puede recibir %d miembros más. No puede aprobar %d usuarios." +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:303 +#: judge/views/organization.py:297 +#, 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 #, 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:304 +#: judge/views/organization.py:313 #, 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:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "Editando %s" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "No se puede editar la organización" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "No tiene permitido editar esta organización." -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 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:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "No se puede expulsar al usuario" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 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:377 +#: judge/views/organization.py:386 #, 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." +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:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Clase {name} en {organization}" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Clase {name} - {organization}" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "No existe ese problema" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, 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:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "Editorial para {0}" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "No hay tal editorial" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, 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:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Problemas" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:266 +msgid "success" +msgstr "éxito" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "Enviar a %s" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "Esta prohibido enviarlo" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "Demasiados envíos" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 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:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "Clonar Problema" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" -msgstr "Los argumentos del verificador deben ser un objeto JSON" +msgid "Checker arguments must be a JSON object." +msgstr "Los argumentos del verificador deben ser un objeto JSON." #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" -msgstr "Los argumentos del verificador son JSON inválidos" +msgid "Checker arguments is invalid JSON." +msgstr "Los argumentos del verificador son JSON inválidos." #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "¡Tu archivo zip es inválido!" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "Comparando envíos para {0}" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "Editando datos para {0}" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "Editando datos para %s" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "Generado init.yml para %s" @@ -3313,8 +3419,8 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "Las mejores soluciones para el problema %(number)s en %(contest)s" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" -msgstr "El nombre de usuario debe contener letras, números o guiones bajos" +msgid "A username must contain letters, numbers, or underscores." +msgstr "El nombre de usuario debe contener letras, números o guiones bajos." #: judge/views/register.py:30 msgid "Preferred language" @@ -3333,15 +3439,15 @@ msgstr "La dirección de email \"%s\" ya está ocupada. Solo se permite un regis msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "Su proveedor de correo electrónico no esta permitido debido a el historial de abuso. Por favor utilice un proveedor de correo con buena reputación." -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "Registrarse" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "Fallo de autenticación" @@ -3353,7 +3459,7 @@ msgstr "Otro" msgid "Language statistics" msgstr "Estadísticas del lenguaje" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "Estado" @@ -3379,59 +3485,51 @@ msgstr "Permiso denegado." msgid "Submission of %(problem)s by %(user)s" msgstr "Envío de %(problem)s por %(user)s" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "Todos los envíos" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "Todos mis envíos" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "Todos los envíos de %s" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "Todos los envíos para %s" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "Debe pasar un problema" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "Mis envíos para %(problem)s" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "Los envíos de %(user)s para %(problem)s" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "Debe pasar un concurso" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "Mis envíos en %(contest)s" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "Envíos de %(user)s en %(contest)s" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, 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:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "Los envíos de {user} para el problema {number} en {contest}" @@ -3540,52 +3638,47 @@ msgstr "Iniciar sesión" msgid "M j, Y, G:i" msgstr "j M Y, G:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "Preparando tus datos..." -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "Descargar tus datos" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "Actualizado en el sitio" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Editar perfil" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "Token API generado para el usuario" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "Token API eliminado para el usuario" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "Códigos de scratch generados para el usuario" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Tabla de calificación" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "Datos ascendentes no válidos: %s" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" -msgstr "Latitud o longitud inválida" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." +msgstr "" #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" @@ -3610,68 +3703,64 @@ msgstr "Desconectar" msgid "Terminate" msgstr "Terminar" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" -msgstr "Ver Envíos" - -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 msgid "View submissions" msgstr "Ver envíos" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" +msgstr "" + #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 msgid "Edit user" msgstr "Editar usuario" -#: 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:80 -msgid "Rejudge" -msgstr "Rejuzgar" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "Hola, %(username)s." -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "Detener la suplantación" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "Cerrar sesión" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Iniciar sesión" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "o" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "Registrarse" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "modo de espectador" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "Este sitio funciona mejor con JavaScript activado." -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Editar" @@ -3703,39 +3792,53 @@ msgstr "publicado el {time}" msgid "posted {time}" msgstr "publicado {time}" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "Continuar leyendo..." + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "Aclaraciones" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "No se han hecho aclaraciones en este momento." -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" -msgstr "Concursos en marcha" +msgstr "Concursos en curso" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "Termina en %(countdown)s." + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "Próximos concursos" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "Comenzando a partir de %(countdown)s." + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "Corriente de comentarios" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "Problemas nuevos" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "Mis tickets abiertos" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "Nuevos tickets" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "Comentarios" @@ -3758,7 +3861,7 @@ msgstr "comentado {time}" msgid "edit %(edits)s" msgstr "editar %(edits)s" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "editado" @@ -3766,64 +3869,90 @@ msgstr "editado" msgid "Link" msgstr "Enlace" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "Responder" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "Votos" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "Ocultar" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "Este comentario ha sido oculto porque tiene demasiados votos negativos." -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "Mostrarlo de todos modos." -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "No hay comentarios por el momento." -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "Comentario nuevo" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "Cuerpo del comentario inválido." -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "¡Publicar!" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "Los comentarios están deshabilitados en esta página." -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "Respondiendo al comentario" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "editar {edits}" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "original" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "No se pudo votar: {error}" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "No se pudo ocultar el comentario." + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "actualizado" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "No se pudo editar el comentario: {error}" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "Votante" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "Puntuación" @@ -3831,6 +3960,18 @@ msgstr "Puntuación" msgid "No votes" msgstr "No hay votos" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "Copiar" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "¡Copiado!" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "Código de acceso inválido." @@ -3895,12 +4036,12 @@ msgstr "Siguiente" msgid "Export" msgstr "Exportar" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "Lista" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "Calendario" @@ -3908,7 +4049,7 @@ msgstr "Calendario" msgid "Info" msgstr "Información" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "Estadística" @@ -3933,7 +4074,7 @@ msgstr "Clonar" msgid "Leave contest" msgstr "Abandonar concurso" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "Unión virtual" @@ -3950,7 +4091,7 @@ msgstr "Unirse al concurso" msgid "Spectate contest" msgstr "Ver concurso" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3958,6 +4099,16 @@ msgstr "" msgid "Log in to participate" msgstr "Inicia sesión para participar" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "Espectador, concurso termina en %(countdown)s." + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "Participación virtual." @@ -3966,6 +4117,21 @@ msgstr "Participación virtual." msgid "Contest is over." msgstr "El concurso ha terminado." +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "¡Su tiempo se acabo! Concurso termina en %(countdown)s." + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "Usted tiene %(countdown)s restantes." + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "Concurso termina en %(countdown)s." + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "j \\d\\e F \\d\\e Y, G:i T" @@ -4096,9 +4262,9 @@ msgstr "" msgid "AC Rate" msgstr "Tasa de AC" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "Usuarios" @@ -4106,7 +4272,7 @@ msgstr "Usuarios" msgid "Editorials" msgstr "Editoriales" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "Editorial" @@ -4119,10 +4285,6 @@ msgstr "¿Usted esta seguro de que quiere unirse?" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "Al unirse a un concurso por primera vez se inicia el cronómetro, y no puede pararse." -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "oculto" - #: templates/contest/list.html:84 msgid "private" msgstr "privado" @@ -4131,38 +4293,55 @@ msgstr "privado" msgid "rated" msgstr "clasificatorio" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "%(time_limit)s ventana" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "Unir" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "Espectador" -#: templates/contest/list.html:159 -msgid "Active Contests" -msgstr "Concursos Activos" +#: templates/contest/list.html:161 +msgid "Active contests" +msgstr "Concursos activos" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Concurso" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "Concursos en Curso" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "Ventana termina en %(countdown)s" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "Termina en %(countdown)s" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "Próximos Concursos" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "Comenzando a partir de %(countdown)s" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "No hay concursos programados en este momento." -#: templates/contest/list.html:272 -msgid "Past Contests" -msgstr "Concursos Pasados" +#: templates/contest/list.html:274 +msgid "Past contests" +msgstr "Concursos pasados" #: templates/contest/media-js.html:4 msgid "Are you sure you want to leave?" @@ -4182,22 +4361,29 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "¿Estás seguro que quieres pasar el Sistema antiplagio MOSS al concurso?" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "¿Quieres borrar estos resultados del MOSS?" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "%(count)s envío" +msgstr[1] "%(count)s envíos" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "Sin envíos" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "Volver a pasar el MOSS" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "Borras los resultados del MOSS" @@ -4251,19 +4437,19 @@ msgstr "Cancelar Descalificación" msgid "Disqualify" msgstr "Descalificar" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 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:178 +#: templates/contest/ranking.html:156 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:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "Ver la participación del usuario" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "Mostrar organizaciones" @@ -4284,8 +4470,8 @@ msgid "Language AC Rate" msgstr "Tasa de AC por Lenguaje" #: templates/license.html:12 -msgid "Source:" -msgstr "Origen:" +msgid "Visit source" +msgstr "Visitar fuente" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4450,7 +4636,7 @@ msgid "There are no requests to approve." msgstr "No hay solicitudes para aprobar." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "¿Eliminar?" @@ -4463,25 +4649,13 @@ msgid "Your reason for joining:" msgstr "Su razón para unirse:" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "Solicitud" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Pendiente" +msgid "Request!" +msgstr "¡Solicitar!" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "Registro" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "Aprobado" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "Rechazado" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "Expulsar" @@ -4498,55 +4672,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "Entra un nuevo código para el problema clonado:" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "Ver YAML" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "Mostrar columnas:" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "Prefijo de salida" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "Límite de salida" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "Verificador" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "Argumentos del generador" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "Tipo" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "Archivo de entrada" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "Archivo de salida" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "¿Prueba previa?" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "¡Enviar!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "Añadir nuevo caso" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "Guardar" @@ -4558,7 +4736,7 @@ msgstr "Recuerde utilizar esta editorial **solo** cuando esté bloqueada, y **no msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "Presentar una solución oficial antes de resolver el problema usted mismo es una infracción baneable." -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "Autor:" @@ -4568,20 +4746,20 @@ msgstr[1] "Autores:" msgid "Filter by type..." msgstr "Filtrar por tipo..." -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "Problemas populares" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Categoría" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "Tipos" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "AC %%" @@ -4645,116 +4823,133 @@ msgstr "Recalificar Todo" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "Vas a recalificar %(count)d envíos." +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:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "Estás seguro que quieres recalificar %(count)d envíos?" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "Recalificar todos los envíos" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "Ver en PDF" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "Enviar solución" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "%(counter)s envío restante" msgstr[1] "%(counter)s envíos restantes" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "0 envíos restantes" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "Mis envíos" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "Mejores envíos" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "Leer editorial" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "Administrar tickets" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "Editar el problema" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "Editar casos de prueba" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "Mis tickets" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "Administrar envíos" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "Puntos:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "(parcial)" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "Límite de tiempo:" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "Límite de memoria:" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "Tipo de problema" msgstr[1] "Tipos de problema" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "Lenguajes permitidos" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "No hay jueces online para %(lang)s" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "Juez:" msgstr[1] "Jueces:" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "ninguno disponible" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "Solicitar aclaración" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "Reportar un problema" @@ -4803,8 +4998,8 @@ msgstr "Tipos de problema" msgid "Point range" msgstr "Rango de puntos" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "Ir" @@ -4840,6 +5035,54 @@ msgstr "Te quedan 0 envíos" msgid "No judge is available for this problem." msgstr "Ningún juez esta disponible para este problema." +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4849,6 +5092,50 @@ msgstr "%(key)s es una llave no válida." msgid "Your account has been successfully activated." msgstr "Su cuenta ha sido activada con éxito." +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "¡Hasta pronto!" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "Usuario o contraseña inválida." @@ -4895,7 +5182,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "Su contraseña ha sido establecida. Usted puede continuar e iniciar sesión ahora." #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "Restablecer Contraseña" @@ -4911,23 +5197,20 @@ msgstr "Nosotros te hemos enviado por correo electrónico las instrucciones para 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 "Si usted no recibe un correo electrónico, asegúrese de haber ingresado la dirección con la que se registró y revise su carpeta de correo no deseado." -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "¿Has olvidado tu contraseña de %(site_name)s? ¡No te preocupes!" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." -msgstr "Para restablecer la contraseña de tu cuenta \"%(username)s\", haz clic en el botón de abajo." +msgid "To reset the password for your account \"%(username)s\", click the link below." +msgstr "Para restablecer la contraseña de tu cuenta \"%(username)s\", haz clic en el enlace de abajo." -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "¡Nos vemos pronto! Si tienes problemas para restablecer tu correo electrónico, no dudes en escribirnos a" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" -msgstr "¡Hasta pronto!" +#: 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 "¡Nos vemos pronto! Si tienes problemas para restablecer tu contraseña, no dudes en escribirnos a %(email)s." #: templates/registration/password_reset_email.txt:1 #, python-format @@ -4956,7 +5239,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:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continuar >" @@ -4969,41 +5252,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "(de nuevo, por confirmación)" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "(seleccione la ciudad importante más cercana)" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "seleccionar en el mapa" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "Lenguaje por defecto" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "Organizaciones afiliadas" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "Notificarme sobre los próximos concursos" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "Al registrarte, estás aceptando nuestras" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "Términos y condiciones" +#: templates/registration/registration_form.html:213 +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:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "¡Registrarse!" @@ -5012,8 +5290,9 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "Para proteger tu cuenta, debes autenticarte antes de que puedas desactivar el Two Factor Authentication." #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" -msgstr "Introduzca el código de 6 dígitos generado por su aplicación o uno de sus códigos Scratch de 16 dígitos:" +#: 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 "Introduce el código de 6 dígitos generado por tu aplicación o uno de tus códigos Scratch de 16 caracteres:" #: templates/registration/totp_disable.html:41 msgid "Disable Two Factor Authentication" @@ -5044,14 +5323,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 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5342,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5360,15 @@ 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:165 +#: templates/user/edit-profile.html:164 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:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "Error al contactar con el servidor." -#: 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 "Introduce el código de 6 dígitos generado por tu aplicación o uno de tus códigos Scratch de 16 caracteres:" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5115,38 +5394,38 @@ msgstr "Estadísticas de Envíos" msgid "AC Submissions by Language" msgstr "Envíos AC por Lenguaje" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "Juez" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "En línea" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "Tiempo de actividad" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "Ping" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "Carga" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "N/A" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "No hay jueces disponibles en este momento." -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "Identificación" @@ -5179,23 +5458,27 @@ msgstr "A ocurrido un error interno durante la clasificación." msgid "Error information" msgstr "Información de error" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "¿Está seguro que quiere rejuzgar?" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "Filtrar por estatus..." -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "Filtrar por lenguaje..." -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "Filtrar envíos" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "Total:" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "Estuviste desconectado. Actualiza para mostrar las últimas actualizaciones." @@ -5261,20 +5544,24 @@ msgid "Execution Results" msgstr "Resultados de la Ejecución" #: templates/submission/status-testcases.html:51 -msgid "Batch " -msgstr "Grupo " +#, python-format +msgid "Batch #%(id)d" +msgstr "Lote #%(id)d" #: templates/submission/status-testcases.html:64 -msgid "Case" -msgstr "Caso" +#, python-format +msgid "Case #%(id)d:" +msgstr "Caso #%(id)d:" #: templates/submission/status-testcases.html:66 -msgid "Pretest" -msgstr "Prueba previa" +#, python-format +msgid "Pretest #%(id)d:" +msgstr "Prueba previa #%(id)d:" #: templates/submission/status-testcases.html:68 -msgid "Test case" -msgstr "Caso de prueba" +#, python-format +msgid "Test case #%(id)d:" +msgstr "Caso de prueba #%(id)d:" #: templates/submission/status-testcases.html:101 msgid "Your output (clipped)" @@ -5318,11 +5605,11 @@ msgstr "¡Envío abortado!" msgid "View source" msgstr "Ver fuente" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "Presione Ctrl-Enter o Comando-Enter para abortar." -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "Abortar" @@ -5332,48 +5619,48 @@ msgstr "Mío" #: templates/submission/submission-list-tabs.html:9 msgid "Best" -msgstr "El Mejor" +msgstr "El mejor" #: templates/submission/submission-list-tabs.html:12 #, python-format msgid "%(user)s's" msgstr "De %(user)s" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "Reabierto: " -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "Cerrado: " -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "Usar notificaciones de escritorio" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "Ocultar tickets cerrados" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "Solo mostrar mis tickets" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "Usuario que envía" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "Asignado" msgstr[1] "Asignados" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "Título" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "Asignados" @@ -5395,31 +5682,32 @@ msgstr "¡Gracias por abrir un ticket!" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "Por favor tenga en cuenta que este formulario es para informar problemas con una declaración del mismo y no para pedir ayuda. Si necesita ayuda para resolver un problema, pregunte en los comentarios." -#: templates/ticket/ticket.html:356 -msgid "Post" -msgstr "Publicar" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" +msgstr "No se pudo cambiar el ticket: {error}" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "Objeto asociado" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "Ninguno asignado." -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "Cerrar ticket" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "Reabrir ticket" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "Notas de asignado" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "Nada aquí." @@ -5427,141 +5715,163 @@ msgstr "Nada aquí." msgid "Rank" msgstr "Rango" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "Buscar por nombre do usuario..." -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 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:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "Esto invalidará cualquier token de API anterior." -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 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:116 -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:115 +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:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "Generando..." -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "Regenerar" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "Eliminar" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 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:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "Generar" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 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:284 -msgid "Self-description" -msgstr "Descripción propia" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" +msgstr "" + +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "Seleccione la ciudad importante más cercana" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" -msgstr "Tema editor" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "Motor matemático" +#: templates/user/edit-profile.html:299 +msgid "Math engine:" +msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "" + +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "Cambiar tu avatar" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "Cambiar tu contraseña" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" -msgstr "Autenticación en dos pasos habilitada" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" +msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "Desactivar" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" -msgstr "Códigos Scratch:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" +msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "Oculto" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" -msgstr "Autenticación en dos pasos deshabilitada" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "Activar" -#: templates/user/edit-profile.html:392 -msgid "API Token" -msgstr "Token de la API" +#: templates/user/edit-profile.html:393 +msgid "API token:" +msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" -msgstr "Claves de seguridad" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" +msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "Eliminar" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "Introduzca un nombre para esta clave" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "Añadir" -#: templates/user/edit-profile.html:435 -msgid "User-script" -msgstr "Script de usuario" +#: templates/user/edit-profile.html:436 +msgid "User-script:" +msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "Actualizar perfil" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "%(pp).1fpp" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" -msgstr "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" +msgstr "ponderado %(percent)s (%(pp)spp)" #: templates/user/prepare-data.html:64 msgid "Are you sure you want to prepare a download?" @@ -5575,31 +5885,41 @@ msgstr "Actualmente estamos preparando tus datos." msgid "Track progress" msgstr "Monitorizar progreso" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "Una vez que sus datos estén listos, encontrará un enlace de descarga en esta página." -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "Envíos" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "Preparar nueva descarga" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "Preparar descarga" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "Descargar datos preparados" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "¡Tus datos están listos!" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "Descargar datos" @@ -5663,45 +5983,41 @@ msgstr "Más" msgid "Rating history" msgstr "Historial de puntuaciones" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "año anterior" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "%(counter)s problema resuelto" msgstr[1] "%(counter)s problemas resueltos" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "Rango por puntos:" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "Puntos totales:" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "%(counter)s concurso escrito" msgstr[1] "%(counter)s concursos escritos" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "Rango por puntuación:" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "Puntuación:" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "Puntuación mínima:" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "Puntuación máxima:" @@ -5725,12 +6041,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "Ocultar problemas que ya he solucionado" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" -msgstr "%(points).1f puntos" +msgid "%(group)s (%(val)s points)" +msgstr "%(group)s (%(val)s puntos)" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "%(points)s / %(total)s" diff --git a/locale/es/LC_MESSAGES/djangojs.po b/locale/es/LC_MESSAGES/djangojs.po index 3da6094032..c330498ad3 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:44\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -17,15 +17,66 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "año pasado" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "%(cnt)d envío en total" +msgstr[1] "%(cnt)d envíos en 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 envío en el último año" +msgstr[1] "%(cnt)d envíos en el último año" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "%(cnt)d envío en %(year)d" +msgstr[1] "%(cnt)d envíos en %(year)d" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "%(cnt)d envío el %(date)s" +msgstr[1] "%(cnt)d envíos el %(date)s" + diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 8d09c132b4..0d45a76c34 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-06-27 00:59\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Catalan" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Allemand" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Grec" + +#: dmoj/settings.py:384 msgid "English" msgstr "Anglais" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Espagnol" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Français" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Croate" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Hongrois" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Japonais" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Coréen" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "Portugais Brésilien" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Roumain" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Russe" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Serbe (Latin)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Turc" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Vietnamien" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Chinois Simplifié" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "Chinois Traditionnel" @@ -97,10 +101,14 @@ msgstr "Inscription Terminée" msgid "Registration Not Allowed" msgstr "Inscription Non Autorisée" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Accueil" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "Contenu" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -132,12 +140,25 @@ msgid "Included contests" msgstr "Concours inclus" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problème" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: 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:77 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 "Rejuger" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "Réglages" @@ -162,7 +183,7 @@ msgstr "Classement" msgid "Access" msgstr "Accès" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "Justice" @@ -210,7 +231,7 @@ 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:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -232,7 +253,7 @@ msgstr "Recalculer les résultats" msgid "username" msgstr "nom d'utilisateur" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "virtuel" @@ -240,17 +261,14 @@ msgstr "virtuel" msgid "link path" msgstr "chemin du lien" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Contenu" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Résumé" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "utilisateur" @@ -258,103 +276,109 @@ msgstr "utilisateur" msgid "object" msgstr "objet" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Voir sur le site" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "Raison de la modification" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "Décrivez vos modifications apportées (optionnel)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Médias Sociaux" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Taxonomie" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Points" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Limites" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Langage" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "Histoire" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Auteurs" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "La date de publication de %d problème a été mise à jour avec succès." msgstr[1] "La date de publication de %d problèmes a été mise à jour avec succès." -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "Définir la date de publication à maintenant" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "%d problème marqué public avec succès." msgstr[1] "%d problèmes marqués publics avec succès." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Marquer les problèmes comme publics" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "%d problème marqué privé avec succès." msgstr[1] "%d problèmes marqués privés avec succès." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "problème" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Utilisateur" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "Courriel" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "Fuseau horaire" @@ -364,8 +388,8 @@ msgstr "date d'adhésion" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "%d utilisateur a des notes recalculées." msgstr[1] "%d utilisateurs ont des notes recalculées." @@ -378,8 +402,14 @@ msgid "Disallowed problems" msgstr "Problèmes non autorisés" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "Ces problèmes ne peuvent PAS être soumis dans ce langage" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "Ces problèmes ne peuvent PAS être soumis dans ce langage." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "Régénérer" #: judge/admin/runtime.py:77 msgid "Description" @@ -393,100 +423,104 @@ msgstr "Information" msgid "Capabilities" msgstr "Capacités" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Rien" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "Pas finit" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Exceptionnel" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "Non accepté" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" -msgstr "%s (spectateur)" +msgstr "%s (observateur)" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "%s (virtuel %d)" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "Verrouillé" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "Problèmes inclus" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Ces problèmes sont inclus dans ce groupe de problèmes" +msgid "These problems are included in this group of problems." +msgstr "Ces problèmes sont inclus dans ce groupe de problèmes." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "Ces problèmes sont inclus dans ce type de problèmes" +msgid "These problems are included in this type of problems." +msgstr "Ces problèmes sont inclus dans ce type de problèmes." #: judge/apps.py:8 msgid "Online Judge" @@ -500,11 +534,11 @@ msgstr "Corps du commentaire" msgid "Your part is silent, little toad." msgstr "Ton personnage est muet, le crapaud." -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "Il faut avoir résolu au moins un problème avant de pouvoir se faire entendre." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Commentaire posté" @@ -515,14 +549,14 @@ msgstr "AtCoder" #: judge/contest_format/atcoder.py:117 judge/contest_format/default.py:79 #: judge/contest_format/icpc.py:127 judge/contest_format/legacy_ioi.py:97 msgid "The maximum score submission for each problem will be used." -msgstr "" +msgstr "La soumission avec le score maximum pour chaque problème sera utilisé." #: judge/contest_format/atcoder.py:122 judge/contest_format/icpc.py:132 #, python-format msgid "Each submission before the first maximum score submission will incur a **penalty of %d minute**." msgid_plural "Each submission before the first maximum score submission will incur a **penalty of %d minutes**." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Chaque soumission avant la première soumission de score maximum entraînera une **pénalité de %d minute**." +msgstr[1] "Chaque soumission avant la première soumission de score maximum entraînera une **pénalité de %d minutes**." #: judge/contest_format/atcoder.py:127 msgid "Ties will be broken by the last score altering submission time." @@ -534,7 +568,7 @@ msgstr "Défaut" #: judge/contest_format/default.py:80 msgid "Ties will be broken by the sum of the last submission time on problems with a non-zero score." -msgstr "" +msgstr "Les égalités seront départagées par la somme des derniers temps de soumission sur les problèmes avec un score non nul." #: judge/contest_format/ecoo.py:18 msgid "ECOO" @@ -542,7 +576,7 @@ msgstr "OOCÉ" #: judge/contest_format/ecoo.py:130 msgid "The score on your **last** non-CE submission for each problem will be used." -msgstr "" +msgstr "Le score de votre **dernière** soumission non CE pour chaque problème sera utilisé." #: judge/contest_format/ecoo.py:135 #, python-format @@ -558,12 +592,12 @@ msgstr[1] "" #: judge/contest_format/ecoo.py:147 msgid "Ties will be broken by the sum of the last submission time on **all** problems." -msgstr "" +msgstr "Les égalités seront départagées par la somme des derniers temps de soumission sur **tous** les problèmes." #: judge/contest_format/ecoo.py:149 judge/contest_format/ioi.py:102 #: judge/contest_format/legacy_ioi.py:103 msgid "Ties by score will **not** be broken." -msgstr "" +msgstr "Les égalités par score ne seront **pas** départagées." #: judge/contest_format/icpc.py:19 msgid "ICPC" @@ -579,7 +613,7 @@ msgstr "IOI" #: judge/contest_format/ioi.py:96 msgid "The maximum score for each problem batch will be used." -msgstr "" +msgstr "Le score maximum pour chaque lot de problèmes sera utilisé." #: judge/contest_format/ioi.py:99 judge/contest_format/legacy_ioi.py:100 msgid "Ties will be broken by the sum of the last score altering submission time on problems with a non-zero score." @@ -589,20 +623,22 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "IOI (avant 2016)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "Les jetons d'authentification à deux facteurs doivent être de {TOTP_CODE_LENGTH} chiffres décimaux." +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "Les jetons d'authentification à deux facteurs doivent être de {count} chiffre décimal." +msgstr[1] "Les jetons d'authentification à deux facteurs doivent être de {count} chiffres décimaux." -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "Jeton d'authentification à deux facteurs invalide." -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." -msgstr "Les codes scratch doivent être 16 caractères de base32." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." +msgstr "Les codes scratch doivent être 16 caractères de Base32." -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "Code scratch invalide." @@ -618,91 +654,94 @@ 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:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "Vous ne pouvez pas faire partie de plus de {count} organisations publiques." +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "Télécharger les commentaires ?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "Télécharger les soumissions ?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "Filtrer par code de problème glob :" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "Laisser vide pour inclure toutes les soumissions" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtrer par résultat :" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "Veuillez sélectionner au moins une chose à télécharger." -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "N'importe quel juge" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Nom d'utilisateur" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Mot de passe" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "Longueur de code invalide." -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "Réponse WebAuthn invalide." -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "Aucun défi WebAuthn n'a été lancé." -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "Jeton d'authentification à deux facteurs ou code scratch invalide." -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." -msgstr "" +msgstr "Doit spécifier soit totp_token ou webauthn_response." -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 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:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "Le problème avec le code existe déjà." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 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:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "Le concours avec la clé existe déjà." #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "j N Y, G \\h i" @@ -764,9 +803,9 @@ msgstr "votes" msgid "body of comment" msgstr "corps du commentaire" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "cacher le commentaire" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "caché" #: judge/models/comment.py:48 msgid "parent" @@ -781,7 +820,7 @@ msgid "comments" msgstr "commentaires" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "Éditorial pour %s" @@ -864,29 +903,29 @@ msgid "contest name" msgstr "nom du concours" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "auteurs" #: judge/models/contest.py:71 msgid "These users will be able to edit the contest." -msgstr "Ces utilisateurs peuvent modifier le concours." +msgstr "Ces utilisateurs pourront modifier le concours." -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "conservateurs" #: judge/models/contest.py:74 msgid "These users will be able to edit the contest, but will not be listed as authors." -msgstr "Ces utilisateurs peuvent modifier le concours, mais ne sera pas listés comme auteurs." +msgstr "Ces utilisateurs pourront modifier le concours, mais ne seront pas listés comme auteurs." -#: judge/models/contest.py:77 judge/models/problem.py:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "testeurs" #: judge/models/contest.py:78 msgid "These users will be able to view the contest, but not edit it." -msgstr "Ces utilisateurs peuvent voir le concours, mais pas le modifier." +msgstr "Ces utilisateurs pourront voir le concours, mais pas le modifier." #: judge/models/contest.py:80 msgid "testers see scoreboard" @@ -906,17 +945,17 @@ msgstr "Si les testeurs peuvent voir les soumissions dans le concours." #: judge/models/contest.py:84 msgid "spectators" -msgstr "spectateurs" +msgstr "observateurs" #: judge/models/contest.py:85 msgid "These users will be able to spectate the contest, but not see the problems ahead of time." -msgstr "" +msgstr "Ces utilisateurs pourront observer le concours, mais ne pourront pas voir les problèmes à l'avance." #: judge/models/contest.py:88 judge/models/runtime.py:137 msgid "description" msgstr "description" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "problèmes" @@ -929,12 +968,12 @@ msgstr "heure de début" msgid "end time" msgstr "heure de fin" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "limite de temps" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "visible publiquement" @@ -956,7 +995,7 @@ msgstr "voir le tableau de bord du concours" #: judge/models/contest.py:101 msgid "These users will be able to view the scoreboard." -msgstr "Ces utilisateurs peuvent voir le tableau de bord." +msgstr "Ces utilisateurs pourront voir le tableau de bord." #: judge/models/contest.py:102 msgid "can see contest submissions" @@ -964,15 +1003,15 @@ msgstr "" #: judge/models/contest.py:104 msgid "These users will be able to see in-contest submissions." -msgstr "" +msgstr "Ces utilisateurs pourront voir les soumissions dans le concours." #: judge/models/contest.py:106 msgid "scoreboard visibility" msgstr "visibilité du tableau de bord" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" -msgstr "Visibilité du tableau de bord pendant toute la durée du concours" +msgid "Scoreboard visibility through the duration of the contest." +msgstr "Visibilité du tableau de bord pendant toute la durée du concours." #: judge/models/contest.py:109 msgid "no comments" @@ -986,86 +1025,86 @@ msgstr "Utiliser le système de clarification au lieu de commentaires." msgid "rating floor" msgstr "plancher de classement" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" -msgstr "Plancher de classement pour le concours" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." +msgstr "Ne pas évaluer les utilisateurs qui ont un classement plus bas." #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "plafond de classement" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" -msgstr "Plafond de classement pour le concours" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." +msgstr "Ne pas évaluer les utilisateurs qui ont un classement plus élevé." -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "évaluer tout" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "Évaluer tous les utilisateurs qui ont rejoint." -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "exclure des évaluations" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "privé à des utilisateurs spécifiques" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "participants privés" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" -msgstr "Si non vide, seuls ces utilisateurs peuvent voir le concours" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." +msgstr "Si non vide, seuls ces utilisateurs peuvent voir le concours." -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "masquer les balises de problème" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "Si les balises de problème doivent être masquées par défaut." -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "masquer les auteurs du problème" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "Si les auteurs du problème doivent être masqués par défaut." -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "exécuter uniquement les prétests" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "Si les juges ne devraient évaluer que les prétests, par opposition à tous les cas de test. Généralement coché pendant un concours, puis annulé avant de réévaluer les soumissions des utilisateurs à la fin du concours." -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "afficher les paramètres du formulaire court" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 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:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "privés aux organisations" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "organisations" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" -msgstr "Si non vide, seules ces organisations peuvent voir le concours" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." +msgstr "Si non vide, seules ces organisations peuvent voir le concours." #: judge/models/contest.py:142 msgid "limit organizations that can join" @@ -1076,24 +1115,25 @@ msgid "join organizations" msgstr "organisations qui peuvent rejoindre" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" -msgstr "Si non vide, seules ces organisations peuvent rejoindre le concours" +msgid "If non-empty, only these organizations may join the contest." +msgstr "Si non vide, seules ces organisations peuvent rejoindre le concours." #: judge/models/contest.py:146 judge/models/profile.py:143 msgid "classes" msgstr "classes" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" -msgstr "Si privé aux organisations, seules ces classes peuvent voir le concours" +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/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "image OpenGraph" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" -msgstr "Image de remplacement du logo" +msgid "logo override image" +msgstr "image de remplacement du logo" #: judge/models/contest.py:151 msgid "This image will replace the default site logo for users inside the contest." @@ -1107,7 +1147,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:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 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." @@ -1120,7 +1160,7 @@ msgstr "code d'accès" 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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "personae non gratae" @@ -1184,7 +1224,7 @@ msgstr "Modifier tous les concours" msgid "Clone contest" msgstr "Cloner concours" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS le concours" @@ -1261,7 +1301,7 @@ msgstr "données spécifiques au format du concours" #: judge/models/contest.py:568 #, python-format msgid "%(user)s spectating in %(contest)s" -msgstr "%(user)s spectateur dans %(contest)s" +msgstr "%(user)s observant dans %(contest)s" #: judge/models/contest.py:570 #, python-format @@ -1281,15 +1321,8 @@ msgstr "participation au concours" msgid "contest participations" msgstr "participations au concours" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "problème" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "points" @@ -1319,7 +1352,7 @@ msgstr "Nombre maximum de soumissions pour ce problème, ou laisser vide pour au #: judge/models/contest.py:595 msgid "Why include a problem you can't submit to?" -msgstr "" +msgstr "Pourquoi inclure un problème que vous ne pouvez pas soumettre ?" #: judge/models/contest.py:600 msgid "contest problem" @@ -1329,7 +1362,7 @@ msgstr "problème de concours" msgid "contest problems" msgstr "problèmes de concours" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "soumission" @@ -1385,6 +1418,14 @@ msgstr "résultat MOSS du concours" msgid "contest moss results" msgstr "résultats MOSS du concours" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "clé" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "valeur" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "élément de configuration" @@ -1425,7 +1466,7 @@ msgstr "titre de l'article" msgid "slug" msgstr "slug" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "visibilité publique" @@ -1445,10 +1486,6 @@ msgstr "contenu de l'article" msgid "post summary" msgstr "résumé de l'article" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "image OpenGraph" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "Modifier tous les articles" @@ -1465,337 +1502,374 @@ msgstr "article de blog" msgid "blog posts" msgstr "articles de blog" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "Caractères interdits : %(value)s" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "ID de la catégorie de problème" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "nom de la catégorie de problème" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "type de problème" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "types de problème" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "ID du groupe de problème" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "nom du groupe de problème" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "groupe de problème" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "groupes de problème" -#: judge/models/problem.py:61 -msgid "key" -msgstr "clé" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "lien" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "nom complet" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "nom court" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "Affiché sur les pages avec cette licence" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." +msgstr "Affiché sur les pages avec cette licence." -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "icône" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL de l'icône" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "URL de l'icône." -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "texte de la licence" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "licence" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "licences" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "Suivre le paramètre global" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "Toujours visible" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "Visible si problème résolu" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "Seulement les propres soumissions" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "code du problème" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" -msgstr "Un code court et unique pour le problème, utilisé dans l'url après /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" +msgstr "Un code court et unique pour le problème, utilisé dans l'URL après « /problem/ »." -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "nom du problème" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 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:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "corps du problème" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "créateurs" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." -msgstr "" +msgstr "Ces utilisateurs pourront modifier le problème et seront listés comme auteurs." -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." -msgstr "" +msgstr "Ces utilisateurs pourront modifier le problème, mais ne seront pas listés comme auteurs." -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." -msgstr "" +msgstr "Ces utilisateurs pourront voir le problème privé, mais pas le modifier." -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 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:140 +#: judge/models/problem.py:135 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:142 +#: judge/models/problem.py:137 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:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "limite de mémoire" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "La limite de mémoire pour ce problème, en kilo-octets (par exemple, 64 Mo = 65536 Ko)." +#: judge/models/problem.py:142 +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:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "court circuit" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 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:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "permet des points partiels" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "langages autorisés" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "Liste des langages de soumission autorisés." -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "géré manuellement" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 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:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "date de publication" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" -msgstr "Ne dispose pas de la capacité magique d'auto-publication pour des raisons de rétrocompatibilité" +#: judge/models/problem.py:159 +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:165 +#: judge/models/problem.py:161 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:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "La licence sous laquelle ce problème est publié." -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "résumé du problème" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "nombre d'utilisateurs" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 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:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "taux de résolution" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "autoriser l'accès complet au markdown" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "visibilité de la source de soumission" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 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:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "Voir les problèmes cachés" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "Modifier ses propres problèmes" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "Modifier tous les problèmes" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "Modifier tous les problèmes publics" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "Modifier les problèmes avec le markup complet" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Cloner problème" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "Changer le champ is_public" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "Changer le champ is_manually_managed" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "Voir les problèmes privés des organisations" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "langue" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "nom traduit" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "description traduite" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "traduction du problème" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "traductions du problème" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "problème clarifié" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "corps de la clarification" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "horodatage de clarification" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "clarification de problème" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "clarifications de problème" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "limite de ressources spécifiques à un langage" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "limites de ressources spécifiques à un langage" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "problème associé" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "date de publication" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "contenu éditorial" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "Voir les solutions cachées" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "solution" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "solutions" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "points proposés" + +#: judge/models/problem.py:569 +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 +msgid "voter" +msgstr "votant" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "date de vote" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "note" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "vote de problème" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "votes de problème" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "Vote de points par %(voter)s pour %(problem)s" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "Standard" @@ -1836,11 +1910,11 @@ msgstr "fichier zip de données" msgid "generator file" msgstr "fichier de générateur" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "longueur du préfixe de sortie" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "longueur de la limite de sortie" @@ -1848,59 +1922,67 @@ msgstr "longueur de la limite de sortie" msgid "init.yml generation feedback" msgstr "feedback sur la génération de init.yml" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "vérificateur" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "activer unicode" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "désactiver bigInteger / bigDecimal" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "arguments du vérificateur" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" -msgstr "arguments du vérificateur en tant qu'objet JSON" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." +msgstr "Arguments du vérificateur en tant qu'objet JSON." -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "position du cas" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "type de cas" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "Cas normal" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "Début de lot" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "Fin de lot" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "nom du fichier d'entrée" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "nom du fichier de sortie" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "arguments du générateur" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "valeur de points" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "cas est prétest ?" @@ -1913,12 +1995,12 @@ msgid "organization slug" msgstr "slug de l'organisation" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "Nom de l'organisation affiché dans l'URL" +msgid "Organization name shown in URLs." +msgstr "Nom de l'organisation affiché dans les URLs." #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "Affiché à côté du nom d'utilisateur lors des concours" +msgid "Displayed beside user name during contests." +msgstr "Affiché à côté du nom d'utilisateur lors des concours." #: judge/models/profile.py:47 msgid "organization description" @@ -1929,8 +2011,8 @@ msgid "administrators" msgstr "administrateurs" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "Ceux qui peuvent modifier cette organisation" +msgid "Those who can edit this organization." +msgstr "Ceux qui peuvent modifier cette organisation." #: judge/models/profile.py:50 msgid "creation date" @@ -1941,20 +2023,20 @@ msgid "is open organization?" msgstr "est une organisation ouverte ?" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "Permettre de rejoindre l'organisation" +msgid "Allow joining organization." +msgstr "Permettre de rejoindre l'organisation." #: judge/models/profile.py:53 msgid "maximum size" msgstr "taille maximum" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "Nombre maximum d'utilisateurs dans cette organisation, applicable uniquement aux organisations privées" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "Nombre maximum d'utilisateurs dans cette organisation, applicable uniquement aux organisations privées." -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "Code d'accès de l'élève" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "Code d'accès de l'élève." #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1965,11 +2047,11 @@ msgid "class membership required" msgstr "adhésion à la classe requise" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" -msgstr "si les membres sont obligés de sélectionner une classe lors de leur adhésion" +msgid "Whether members are compelled to select a class when joining." +msgstr "Si les membres sont obligés de sélectionner une classe lors de leur adhésion." #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1981,13 +2063,13 @@ 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:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "organisation" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" -msgstr "l'organisation à laquelle appartient cette classe" +msgid "The organization that this class belongs to." +msgstr "L'organisation à laquelle appartient cette classe." #: judge/models/profile.py:106 msgid "class name" @@ -1998,8 +2080,8 @@ msgid "class slug" msgstr "slug de la classe" #: judge/models/profile.py:107 -msgid "class name shown in URLs" -msgstr "nom de la classe affiché dans les URLs" +msgid "Class name shown in URLs." +msgstr "Nom de la classe affiché dans les URLs." #: judge/models/profile.py:108 msgid "class description" @@ -2009,13 +2091,9 @@ msgstr "description de la classe" msgid "is class active" msgstr "la classe est-elle active" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "code d'accès de l'élève" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" -msgstr "ceux qui peuvent approuver l'adhésion à cette classe" +msgid "Those who can approve membership to this class." +msgstr "Ceux qui peuvent approuver l'adhésion à cette classe." #: judge/models/profile.py:114 msgid "members" @@ -2026,7 +2104,7 @@ msgstr "membres" msgid "%(class)s in %(organization)s" msgstr "%(class)s dans %(organization)s" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "classe" @@ -2039,8 +2117,8 @@ msgid "self-description" msgstr "auto-description" #: judge/models/profile.py:150 -msgid "location" -msgstr "région" +msgid "time zone" +msgstr "fuseau horaire" #: judge/models/profile.py:152 msgid "preferred language" @@ -2070,8 +2148,8 @@ msgstr "Utilisateur Normal" msgid "Problem Setter" msgstr "Créateur de Problèmes" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2097,163 +2175,183 @@ msgid "User will not be ranked." msgstr "L'utilisateur ne sera pas classé." #: judge/models/profile.py:172 +msgid "banned from voting on problem point values" +msgstr "" + +#: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 msgid "user script" msgstr "script utilisateur" -#: judge/models/profile.py:173 +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "JavaScript défini par l'utilisateur pour la personnalisation du site." -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "concours en cours" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "moteur mathématique" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "le moteur de rendu utilisé pour rendre les mathématiques" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." +msgstr "Le moteur de rendu utilisé pour rendre les mathématiques." -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -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:185 +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:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -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:187 +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:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "Clé TOTP" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" -msgstr "La clé TOTP doit être vide ou base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." +msgstr "La clé TOTP doit être vide ou Base32." -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "codes scratch" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "Jeton API" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "notes internes" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "Notes pour les administrateurs concernant cet utilisateur." -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "remplacement du nom d'affichage" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" -msgstr "nom affiché à la place du nom d'utilisateur" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." +msgstr "Nom affiché à la place du nom d'utilisateur." -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "Modifier les paramètres TOTP" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "profil utilisateur" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "profils utilisateur" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "nom de l'appareil" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "clé publique" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" -msgstr "" +msgstr "Identifiant WebAuthn : %(name)s" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" -msgstr "" +msgstr "identifiant WebAuthn" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" -msgstr "" +msgstr "identifiants WebAuthn" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "état" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "En attente" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Approuvé" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Rejeté" + +#: judge/models/profile.py:372 msgid "reason" msgstr "raison" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "demande d'adhésion de l'organisation" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "demandes d'adhésion de l'organisation" @@ -2271,7 +2369,7 @@ msgstr "nom long" #: judge/models/runtime.py:23 msgid "Longer name for the language, e.g. \"Python 2\" or \"C++11\"." -msgstr "Nom plus long pour le langage, par exemple \"Python 2\" ou \"C++11\"." +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." @@ -2282,8 +2380,8 @@ msgid "common name" msgstr "nom commun" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" -msgstr "Nom commun du langage. Par exemple, le nom commun pour C++03, C++11 et C++14 serait \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." +msgstr "Nom commun du langage. Par exemple, le nom commun pour C++03, C++11 et C++14 serait « C++ »." #: judge/models/runtime.py:32 msgid "ace mode name" @@ -2291,7 +2389,7 @@ msgstr "nom du mode Ace" #: judge/models/runtime.py:33 msgid "Language ID for Ace.js editor highlighting, appended to \"mode-\" to determine the Ace JavaScript file to use, e.g., \"python\"." -msgstr "ID de langage pour la surbrillance de l'éditeur Ace.js, ajouté à \"mode-\" pour déterminer le fichier JavaScript Ace à utiliser, par exemple, \"python\"." +msgstr "ID de langage pour la surbrillance de l'éditeur Ace.js, ajouté à « mode- » pour déterminer le fichier JavaScript Ace à utiliser, par exemple, « python »." #: judge/models/runtime.py:35 msgid "pygments name" @@ -2331,7 +2429,7 @@ msgstr "extension" #: judge/models/runtime.py:46 msgid "The extension of source files, e.g., \"py\" or \"cpp\"." -msgstr "L'extension des fichiers sources, par exemple \"py\" ou \"cpp\"." +msgstr "L'extension des fichiers sources, par exemple « py » ou « cpp »." #: judge/models/runtime.py:112 msgid "languages" @@ -2362,7 +2460,7 @@ msgid "judge name" msgstr "nom du juge" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2370,8 +2468,8 @@ msgid "time of creation" msgstr "moment de création" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" -msgstr "Une clé pour authentifier ce juge" +msgid "A key to authenticate this judge." +msgstr "Une clé pour authentifier ce juge." #: judge/models/runtime.py:128 msgid "authentication key" @@ -2455,9 +2553,9 @@ msgstr "Erreur de Compilation" msgid "Internal Error" msgstr "Erreur Interne" -#: judge/models/submission.py:31 -msgid "Short circuit" -msgstr "Court circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" +msgstr "Court Circuité" #: judge/models/submission.py:32 judge/models/submission.py:45 #: judge/models/submission.py:64 @@ -2480,27 +2578,23 @@ msgstr "En cours de notation" msgid "Completed" msgstr "Terminé" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "Court Circuité" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" -msgstr "" +msgstr "Erreur Interne (erreur du serveur de jugement)" #: judge/models/submission.py:69 msgid "submission time" msgstr "date de soumission" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "temps d'exécution" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "utilisation de la mémoire" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "points accordés" @@ -2552,97 +2646,97 @@ msgstr "a été exécuté sur les prétests seulement" msgid "submission lock" msgstr "verrouillage de la soumission" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, 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:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "Abandonner toute soumission" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "Rejuger la soumission" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "Rejuger beaucoup de soumissions" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "Soumettre sans limite" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "Voir toutes les soumissions" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "Resoumettre la soumission des autres" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "Changer le statut de verrouillage de la soumission" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "soumissions" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "soumission associée" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "code source" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "Source de %(submission)s" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "source de soumission" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "sources de soumission" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "ID du cas de test" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "indicateur de statut" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "points possibles" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "numéro de lot" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" -msgstr "" +msgstr "commentaires du juge" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" -msgstr "" +msgstr "commentaires étendus du juge" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "sortie du programme" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "cas de test de la soumission" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "cas de test de la soumission" @@ -2690,10 +2784,6 @@ msgstr "ticket" msgid "tickets" msgstr "tickets" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "auteur" - #: judge/models/ticket.py:34 msgid "message body" msgstr "corps du message" @@ -2770,11 +2860,11 @@ msgstr "" #: judge/tasks/user.py:64 msgid "Preparing your submission data" -msgstr "" +msgstr "Préparation des données de vos soumissions" #: judge/tasks/user.py:95 msgid "Preparing your comment data" -msgstr "" +msgstr "Préparation des données de vos commentaires" #: judge/utils/problem_data.py:63 msgid "Empty batches not allowed." @@ -2802,7 +2892,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2825,10 +2915,6 @@ msgstr "Expiré" msgid "Error" msgstr "Erreur" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "Impossible de passer à la fois les filtres queryset et keyword" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "Ce mot de passe est trop courant." @@ -2868,7 +2954,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "Page %d d'articles" @@ -2893,7 +2979,7 @@ msgstr "Vous ne pouvez pas voter sur vos propres commentaires." msgid "You already voted." msgstr "Vous avez déjà voté." -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "Modifié à partir du site" @@ -2904,12 +2990,12 @@ msgstr "" #: judge/views/contests.py:58 judge/views/contests.py:231 #: judge/views/contests.py:234 judge/views/contests.py:439 msgid "No such contest" -msgstr "" +msgstr "Ce concours n'existe pas" #: judge/views/contests.py:59 judge/views/contests.py:232 #, python-format msgid "Could not find a contest with the key \"%s\"." -msgstr "" +msgstr "Impossible de trouver un concours avec la clé « %s »." #: judge/views/contests.py:72 msgid "Contests" @@ -2917,12 +3003,12 @@ msgstr "Concours" #: judge/views/contests.py:235 msgid "Could not find such contest." -msgstr "" +msgstr "Impossible de trouver un tel concours." #: judge/views/contests.py:238 #, python-format msgid "Access to contest \"%s\" denied" -msgstr "" +msgstr "Accès au concours « %s » refusé" #: judge/views/contests.py:283 msgid "Clone Contest" @@ -2940,7 +3026,7 @@ msgstr "Concours non en cours" #: judge/views/contests.py:354 #, python-format msgid "\"%s\" is not currently ongoing." -msgstr "\"%s\" n'est pas en cours actuellement." +msgstr "« %s » n'est pas en cours actuellement." #: judge/views/contests.py:359 msgid "Banned from joining" @@ -2961,69 +3047,65 @@ msgstr "Vous ne pouvez pas rejoindre ce concours." #: judge/views/contests.py:429 #, python-format msgid "Enter access code for \"%s\"" -msgstr "Saisissez le code d'accès pour \"%s\"" +msgstr "Saisissez le code d'accès pour « %s »" #: judge/views/contests.py:440 #, python-format msgid "You are not in contest \"%s\"." -msgstr "Vous n'êtes pas dans le concours \"%s\"." - -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "ContestCalendar requiert une année et un mois entiers" +msgstr "Vous n'êtes pas dans le concours « %s »." -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "Concours en %(month)s" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "F Y" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "Statistiques de %s" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "Classement de %s" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "???" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" -msgstr "Votre participation à %s" +msgid "Your participation in %(contest)s" +msgstr "Votre participation à %(contest)s" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" -msgstr "Participation de %s à %s" +msgid "%(user)s's participation in %(contest)s" +msgstr "La participation de %(user)s à %(contest)s" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "En direct" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Participation" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "Résultats MOSS de %s" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "Exécution du MOSS pour %s..." -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "Balise de concours : %s" @@ -3035,7 +3117,7 @@ msgstr "Erreur 404" #: judge/views/error.py:15 #, python-format msgid "Could not find page \"%s\"" -msgstr "" +msgstr "Impossible de trouver la page « %s »" #: judge/views/error.py:22 #, python-format @@ -3045,232 +3127,256 @@ msgstr "pas de droit pour %s" #: judge/views/error.py:30 #, python-format msgid "corrupt page %s" -msgstr "" +msgstr "page corrompue %s" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "Temps d'exécution" #: judge/views/organization.py:52 judge/views/organization.py:55 msgid "No such organization" -msgstr "" +msgstr "Cette organisation n'existe pas" #: judge/views/organization.py:53 #, python-format msgid "Could not find an organization with the key \"%s\"." -msgstr "" +msgstr "Impossible de trouver une organisation avec la clé « %s »." #: judge/views/organization.py:56 msgid "Could not find such organization." -msgstr "" +msgstr "Impossible de trouver une telle organisation." #: judge/views/organization.py:81 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" msgstr "Organisations" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "Membres de %s" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "Rejoindre l'organisation" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "Vous êtes déjà dans l'organisation." -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "Cette organisation n'est pas ouverte." -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "Quitter l'organisation" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." -msgstr "Vous n'êtes pas dans \"%s\"." +msgstr "Vous n'êtes pas dans « %s »." -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "Impossible de demander à rejoindre %s" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, 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:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "Demande d'adhésion à %s" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "Détails de la demande d'adhésion" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "Gestion des demandes d'adhésion à %s" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +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:303 +#: judge/views/organization.py:297 +#, 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 #, 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:304 +#: judge/views/organization.py:313 #, 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:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "Impossible de modifier l'organisation" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "Vous n'êtes pas autorisé à modifier cette organisation." -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 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:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "Impossible d'expulser cet utilisateur" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 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:377 +#: judge/views/organization.py:386 #, 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." +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:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Classe {name} dans {organization}" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Classe {name} - {organization}" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "Demande de rejoindre {name} dans {organization}" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" -msgstr "" +msgstr "Ce problème n'existe pas" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." -msgstr "" +msgstr "Impossible de trouver un problème avec le code « %s »." -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "Éditorial pour {0}" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" -msgstr "" +msgstr "Cet éditorial n'existe pas" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." -msgstr "" +msgstr "Impossible de trouver un éditorial avec le code « %s »." -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Problèmes" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "Non autorisé à voter sur ce problème." -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "Non autorisé à supprimer des votes sur ce problème." + +#: judge/views/problem.py:266 +msgid "success" +msgstr "réussi" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "Soumettre à %s" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "Vous avez soumis trop de soumissions." + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "Interdit de soumettre" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "Trop de soumissions" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 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:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "Voulez-vous que je vous bannisse ?" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "Cloner Problème" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "Problème cloné de %s" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" -msgstr "Les arguments du vérificateur doivent être un objet JSON" +msgid "Checker arguments must be a JSON object." +msgstr "Les arguments du vérificateur doivent être un objet JSON." #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" -msgstr "Les arguments du vérificateur sont des JSON invalides" +msgid "Checker arguments is invalid JSON." +msgstr "Les arguments du vérificateur sont des JSON invalides." #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "Votre fichier zip est invalide !" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "Modification des données pour {0}" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "Modification des données pour %s" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "init.yml généré pour %s" @@ -3313,8 +3419,8 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "Meilleures solutions pour le problème %(number)s dans %(contest)s" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" -msgstr "Le nom d'utilisateur doit uniquement contenir des lettres, des chiffres et des tirets bas" +msgid "A username must contain letters, numbers, or underscores." +msgstr "Le nom d'utilisateur doit uniquement contenir des lettres, des chiffres et des tirets bas." #: judge/views/register.py:30 msgid "Preferred language" @@ -3327,21 +3433,21 @@ msgstr "S'abonner à la newsletter ?" #: judge/views/register.py:44 #, python-format msgid "The email address \"%s\" is already taken. Only one registration is allowed per address." -msgstr "Le courriel \"%s\" est déjà prise. Une seule inscription est autorisée par courriel." +msgstr "Le courriel « %s » est déjà prise. Une seule inscription est autorisée par courriel." #: judge/views/register.py:50 msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "S'inscrire" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "Clé d'Activation Invalide" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "Échec d'authentification" @@ -3353,7 +3459,7 @@ msgstr "Autre" msgid "Language statistics" msgstr "Statistiques de langage" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "Statut" @@ -3379,59 +3485,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "Soumission de %(problem)s par %(user)s" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "Toutes les soumissions" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "Toutes mes soumissions" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "Toutes les soumissions par %s" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "Toutes les soumissions pour %s" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "Doit passer un problème" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "Mes soumissions pour %(problem)s" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "Soumissions de %(user)s pour %(problem)s" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "Doit passer un concours" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "Mes soumissions dans %(contest)s" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "Soumissions de %(user)s dans %(contest)s" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "Soumissions de {user} pour {problem} dans {contest}" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "Soumissions de {user} pour le problème {number} dans {contest}" @@ -3516,12 +3614,12 @@ msgstr "Effectuer l'Authentification à Deux Facteurs" #: judge/views/user.py:77 msgid "No such user" -msgstr "" +msgstr "Cet utilisateur n'existe pas" #: judge/views/user.py:77 #, python-format msgid "No user handle \"%s\"." -msgstr "Pas de nom d'utilisateur \"%s\"." +msgstr "Pas de nom d'utilisateur « %s »." #: judge/views/user.py:81 msgid "My account" @@ -3540,52 +3638,47 @@ msgstr "Entrer" msgid "M j, Y, G:i" msgstr "j M Y, G \\h i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "Préparation de vos données..." -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "Télécharger vos données" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "Mise à jour sur le site" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Modifier le profil" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "Jeton API généré pour l'utilisateur" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "Jeton API supprimé pour l'utilisateur" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "Codes scratch générés pour l'utilisateur" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Tableau de Classement" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "Vous avez été déconnecté avec succès." -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" -msgstr "Mauvaise latitude ou longitude" +#: judge/views/user.py:508 +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." #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" @@ -3610,68 +3703,64 @@ msgstr "Déconnecter" msgid "Terminate" msgstr "Terminer" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" -msgstr "Voir les Soumissions" - -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 msgid "View submissions" msgstr "Voir les soumissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" +msgstr "Voir les votes du problème" + #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 msgid "Edit user" msgstr "Modifier l'utilisateur" -#: 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:80 -msgid "Rejudge" -msgstr "Rejuger" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "Bonjour, %(username)s." -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "Arrêter d'imiter" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "Se déconnecter" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Se connecter" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "ou" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "S'inscrire" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" -msgstr "spectateur" +msgstr "en observant" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "Ce site fonctionne mieux avec JavaScript activé." -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "fièrement propulsé par **DMOJ**" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Modifier" @@ -3703,39 +3792,53 @@ msgstr "posté le {time}" msgid "posted {time}" msgstr "posté {time}" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "Clarifications" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "Aucune clarification n'a été apportée pour l'instant." -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "Concours en cours" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "Se termine dans %(countdown)s." + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "Concours à venir" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "Commence dans %(countdown)s." + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "Flux de commentaire" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "Nouveaux problèmes" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "Mes tickets ouverts" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "Nouveaux tickets" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "Commentaires" @@ -3758,7 +3861,7 @@ msgstr "commenté {time}" msgid "edit %(edits)s" msgstr "modification %(edits)s" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "modifié" @@ -3766,64 +3869,90 @@ msgstr "modifié" msgid "Link" msgstr "Lien" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "Répondre" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "Votes" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "Cacher" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "Ce commentaire est masqué en raison d'un trop grand nombre de réactions négatives." -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "Montrez-le quand même." -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "Il n'y a aucun commentaire pour le moment." -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "Nouveau commentaire" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "Corps du commentaire invalide." -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "Poster !" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "Les commentaires sont désactivés sur cette page." -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "Répondre au commentaire" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "modification {edits}" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "original" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "Impossible de voter : {error}" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "Êtes-vous sûr de vouloir cacher ce commentaire ?" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "Impossible de cacher le commentaire." + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "mis à jour" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "Impossible de mettre à jour le corps du commentaire." + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "Impossible de modifier le commentaire : {error}" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "Votant" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "Score" @@ -3831,6 +3960,18 @@ msgstr "Score" msgid "No votes" msgstr "Aucun vote" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "Cliquez pour copier" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "Copier" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "Copié !" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "Code d'accès invalide." @@ -3895,12 +4036,12 @@ msgstr "Suiv" msgid "Export" msgstr "Exporter" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "Liste" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "Calendrier" @@ -3908,7 +4049,7 @@ msgstr "Calendrier" msgid "Info" msgstr "Info" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "Statistiques" @@ -3933,13 +4074,13 @@ msgstr "Cloner" msgid "Leave contest" msgstr "Quitter le concours" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "Rejoindre virtuellement" #: templates/contest/contest-tabs.html:56 msgid "Stop spectating" -msgstr "" +msgstr "Arrêter d'observer" #: templates/contest/contest-tabs.html:67 #: templates/contest/contest-tabs.html:81 @@ -3948,9 +4089,9 @@ msgstr "Rejoindre le concours" #: templates/contest/contest-tabs.html:73 msgid "Spectate contest" -msgstr "" +msgstr "Observer le concours" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "Vous ne pouvez pas rejoindre ce concours." @@ -3958,6 +4099,16 @@ msgstr "Vous ne pouvez pas rejoindre ce concours." msgid "Log in to participate" msgstr "Connectez-vous pour participer" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "En observant, le concours se termine dans %(countdown)s." + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -3966,6 +4117,21 @@ msgstr "" msgid "Contest is over." msgstr "Concours est terminé." +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "Votre temps est écoulé ! Le concours se termine dans %(countdown)s." + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "Il vous reste %(countdown)s." + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "Le concours se termine dans %(countdown)s." + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "j F Y, G \\h i T" @@ -3997,40 +4163,40 @@ msgstr[1] "Un grand merci à %(link_testers)s pour leurs tests et leurs commenta #: templates/contest/contest.html:98 #, python-format msgid "This contest will be **rated** for **all** participants who have a rating between **%(rating_floor)d** and **%(rating_ceiling)d**, inclusive." -msgstr "" +msgstr "Ce concours sera **évalué** pour **tous** les participants qui ont un classement entre **%(rating_floor)d** et **%(rating_ceiling)d**, inclus." #: templates/contest/contest.html:100 #, python-format msgid "This contest will be **rated** for **all** participants who have a rating of at least **%(rating_floor)d**." -msgstr "" +msgstr "Ce concours sera **évalué** pour **tous** les participants qui ont un classement d'au moins **%(rating_floor)d**." #: templates/contest/contest.html:102 #, python-format msgid "This contest will be **rated** for **all** participants who have a rating of at most **%(rating_ceiling)d**." -msgstr "" +msgstr "Ce concours sera **évalué** pour **tous** les participants qui ont un classement d'au plus **%(rating_ceiling)d**." #: templates/contest/contest.html:104 msgid "This contest will be **rated** for **all** participants." -msgstr "" +msgstr "Ce concours sera **évalué** pour **tous** les participants." #: templates/contest/contest.html:108 #, python-format msgid "This contest will be **rated** for participants who submit at least once and have a rating between **%(rating_floor)d** and **%(rating_ceiling)d**, inclusive." -msgstr "" +msgstr "Ce concours sera **évalué** pour les participants qui soumettent au moins une fois et qui ont un classement entre **%(rating_floor)d** et **%(rating_ceiling)d**, inclus." #: templates/contest/contest.html:110 #, python-format msgid "This contest will be **rated** for participants who submit at least once and have a rating of at least **%(rating_floor)d**." -msgstr "" +msgstr "Ce concours sera **évalué** pour les participants qui soumettent au moins une fois et qui ont un classement d'au moins **%(rating_floor)d**." #: templates/contest/contest.html:112 #, python-format msgid "This contest will be **rated** for participants who submit at least once and have a rating of at most **%(rating_ceiling)d**." -msgstr "" +msgstr "Ce concours sera **évalué** pour les participants qui soumettent au moins une fois et qui ont un classement d'au plus **%(rating_ceiling)d**." #: templates/contest/contest.html:114 msgid "This contest will be **rated** for participants who submit at least once." -msgstr "" +msgstr "Ce concours sera **évalué** pour les participants qui soumettent au moins une fois." #: templates/contest/contest.html:118 msgid "This contest will **not** be rated." @@ -4053,11 +4219,11 @@ msgstr "" #: templates/contest/contest.html:139 msgid "The pretest system **will be used** for some or all of these problems." -msgstr "" +msgstr "Le système de prétest **sera utilisé** pour certains ou tous ces problèmes." #: templates/contest/contest.html:141 msgid "The pretest system **will not be used** for this contest." -msgstr "" +msgstr "Le système de prétest **ne sera pas utilisé** pour ce concours." #: templates/contest/contest.html:146 msgid "Some or all of these problems **have a submission limit**." @@ -4096,9 +4262,9 @@ msgstr "Un **code d'accès est nécessaire** pour rejoindre le concours." msgid "AC Rate" msgstr "Taux d'AC" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "Utilisateurs" @@ -4106,7 +4272,7 @@ msgstr "Utilisateurs" msgid "Editorials" msgstr "Éditoriaux" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "Éditorial" @@ -4119,10 +4285,6 @@ msgstr "Êtes-vous sûr de vouloir rejoindre ?" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "caché" - #: templates/contest/list.html:84 msgid "private" msgstr "privé" @@ -4131,38 +4293,55 @@ msgstr "privé" msgid "rated" msgstr "évalué" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "Fenêtre de %(time_limit)s" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "durée de %(duration)s" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "Rejoindre" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" -msgstr "" +msgstr "Observer" -#: templates/contest/list.html:159 -msgid "Active Contests" -msgstr "Concours Actifs" +#: templates/contest/list.html:161 +msgid "Active contests" +msgstr "Concours actifs" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Concours" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "Concours en Cours" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "La fenêtre se termine dans %(countdown)s" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "Se termine dans %(countdown)s" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "Concours à Venir" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "Commence dans %(countdown)s" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." -msgstr "Il n'y a aucun concours au futur à ce moment." +msgstr "Il n'y a aucun concours prévu pour le moment." -#: templates/contest/list.html:272 -msgid "Past Contests" -msgstr "Concours Passés" +#: templates/contest/list.html:274 +msgid "Past contests" +msgstr "Concours passés" #: templates/contest/media-js.html:4 msgid "Are you sure you want to leave?" @@ -4182,28 +4361,35 @@ msgid "Joining this contest will leave %(contest)s." msgstr "En rejoignant ce concours, vous quitterez %(contest)s." #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "Êtes-vous sûr de vouloir MOSS le concours ?" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "Êtes-vous sûr de vouloir supprimer les résultats MOSS ?" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "%(count)s soumission" +msgstr[1] "%(count)s soumissions" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "Aucune soumission" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "MOSS à nouveau le concours" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "Supprimer les résultats MOSS" #: templates/contest/private.html:5 msgid "This contest is private to specific users." -msgstr "" +msgstr "Ce concours est réservé à des utilisateurs spécifiques." #: templates/contest/private.html:11 msgid "Additionally, only the following organizations may access this contest:" @@ -4251,19 +4437,19 @@ msgstr "Dé-disqualifier" msgid "Disqualify" msgstr "Disqualifier" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "Êtes-vous sûr de vouloir disqualifier cette participation ?" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 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:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "Voir la participation de l'utilisateur" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "Afficher les organisations" @@ -4284,8 +4470,8 @@ msgid "Language AC Rate" msgstr "Taux d'AC du Langage" #: templates/license.html:12 -msgid "Source:" -msgstr "Source :" +msgid "Visit source" +msgstr "Visiter la source" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4293,7 +4479,7 @@ msgstr "Source :" #: templates/newsletter/subscription_update_activated.html:3 #: templates/newsletter/subscription_update_activated.html:6 msgid "Newsletter" -msgstr "" +msgstr "Newsletter" #: templates/newsletter/subscription_unsubscribe_activated.html:3 #: templates/newsletter/subscription_unsubscribe_activated.html:6 @@ -4304,22 +4490,22 @@ msgstr "activer" #: templates/newsletter/subscription_unsubscribe_activated.html:8 msgid "You have successfully been unsubscribed." -msgstr "" +msgstr "Vous avez été désabonné avec succès." #: templates/newsletter/subscription_unsubscribe_email_sent.html:3 #: templates/newsletter/subscription_unsubscribe_email_sent.html:6 #: templates/newsletter/subscription_unsubscribe_user.html:3 #: templates/newsletter/subscription_unsubscribe_user.html:6 msgid "Newsletter unsubscribe" -msgstr "" +msgstr "Désabonnement à la newsletter" #: 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 "Votre demande de désabonnement a bien été reçue. Un courriel vous a été envoyé avec un lien que vous devez suivre afin de confirmer votre désabonnement." #: templates/newsletter/subscription_unsubscribe_user.html:17 msgid "Do you want to unsubscribe from this newsletter?" -msgstr "" +msgstr "Voulez-vous vous désabonner de cette newsletter ?" #: templates/newsletter/subscription_unsubscribe_user.html:21 msgid "Unsubscribe" @@ -4330,11 +4516,11 @@ msgstr "Se désabonner" #: templates/newsletter/subscription_update_email_sent.html:3 #: templates/newsletter/subscription_update_email_sent.html:6 msgid "Newsletter update" -msgstr "" +msgstr "Mise à jour de la newsletter" #: templates/newsletter/subscription_update.html:9 msgid "Due to a technical error we were not able to submit your confirmation email. This could be because your email address is invalid." -msgstr "" +msgstr "En raison d'une erreur technique, nous n'avons pas été en mesure d'envoyer votre courriel de confirmation. Cela peut être dû au fait que votre adresse électronique n'est pas valide." #: templates/newsletter/subscription_update.html:14 msgid "Update subscription" @@ -4346,7 +4532,7 @@ msgstr "Votre abonnement a été mis à jour avec succès." #: 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 "Votre demande de mise à jour a été reçue avec succès et un courriel d'activation vous a été envoyé. Dans ce courriel, vous trouverez un lien que vous devez suivre afin de mettre à jour votre abonnement." #: templates/organization/edit.html:47 #: templates/organization/requests/pending.html:34 @@ -4450,7 +4636,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:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "Supprimer ?" @@ -4463,25 +4649,13 @@ msgid "Your reason for joining:" msgstr "Votre raison d'adhérer :" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "Demander" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "En attente" +msgid "Request!" +msgstr "Demander !" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "Journal" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "Approuvé" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "Rejeté" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "Expulser" @@ -4498,55 +4672,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:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "Voir le YAML" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "Afficher les colonnes :" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "Préfixe de sortie" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "Limite de sortie" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "Vérificateur" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "Arguments du générateur" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "Type" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "Fichier d'entrée" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "Fichier de sortie" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "Prétest ?" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "Soumettre !" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "Ajouter un nouveau cas" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4558,7 +4736,7 @@ msgstr "N'oubliez pas d'utiliser cet éditorial **uniquement** en cas de blocage msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "Soumettre une solution officielle avant de résoudre le problème soi-même est une infraction passible de bannissement." -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "Auteur :" @@ -4568,20 +4746,20 @@ msgstr[1] "Auteurs :" msgid "Filter by type..." msgstr "Filtrer par type..." -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "Problèmes populaires" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Catégorie" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "Types" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "AC %%" @@ -4645,116 +4823,133 @@ msgstr "Tout Recompter" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "Cela recomptera %(count)d soumissions." +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:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "Êtes-vous sûr de vouloir recompter %(count)d soumissions ?" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "Recompter toutes les soumissions" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "Voir en PDF" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "Soumettre solution" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "%(counter)s soumission restante" msgstr[1] "%(counter)s soumissions restantes" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "0 soumission restante" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "Mes soumissions" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "Meilleures soumissions" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "Voter sur les points du problème" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "Modifier le vote de points (%(points)d)" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "Statistiques de vote" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "Lire l'éditorial" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "Gérer les tickets" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "Modifier le problème" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "Modifier les données de test" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "Mes tickets" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "Gérer les soumissions" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "Points :" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "(partiel)" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "Limite de temps :" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "Limite de mémoire :" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "Type de problème" msgstr[1] "Types de problème" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "Langages autorisés" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "Aucun juge %(lang)s en ligne" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "Juge :" msgstr[1] "Juges :" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "aucun disponible" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "Demander une clarification" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "Reporter un problème" @@ -4803,8 +4998,8 @@ msgstr "Types de problème" msgid "Point range" msgstr "Plage de points" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "Aller" @@ -4840,6 +5035,54 @@ msgstr "Il vous reste 0 soumission" msgid "No judge is available for this problem." msgstr "Aucun juge n'est disponible pour ce problème." +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "Changer le vote" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "Dernier vote le %(date)s" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "Voter" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "Justification :" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "Voter !" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "Supprimer le vote" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "Aucun vote disponible !" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "Vote médian : %(val)s" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "Vote moyen : %(val)s" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "Nombre de votes : %(val)d" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4849,6 +5092,50 @@ msgstr "%(key)s est une clé d'activation invalide." msgid "Your account has been successfully activated." 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 "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "À bientôt !" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "Nom d'utilisateur ou mot de passe invalide." @@ -4895,7 +5182,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "Réinitialiser le Mot de Passe" @@ -4911,36 +5197,34 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "Vous avez oublié votre mot de passe sur %(site_name)s ? Ne vous inquiétez pas !" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." -msgstr "Pour réinitialiser le mot de passe de votre compte \"%(username)s\", cliquez sur le bouton ci-dessous." +msgid "To reset the password for your account \"%(username)s\", click the link below." +msgstr "Pour réinitialiser le mot de passe de votre compte « %(username)s », cliquez sur le lien ci-dessous." -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" +#: 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 "" -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" -msgstr "À bientôt !" - #: 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 "" +msgstr "Vous recevez ce courrier électronique car vous avez demandé une réinitialisation de mot de passe\n" +"pour votre compte utilisateur sur %(site_name)s." #: templates/registration/password_reset_email.txt:3 msgid "Please go to the following page and choose a new password:" -msgstr "" +msgstr "Veuillez aller à la page suivante et choisir un nouveau mot de passe :" #: templates/registration/password_reset_email.txt:7 msgid "Your username, in case you've forgotten:" -msgstr "" +msgstr "Votre nom d'utilisateur, au cas où vous l'auriez oublié :" #: templates/registration/password_reset_email.txt:9 msgid "Thanks for using our site!" @@ -4956,7 +5240,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:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continuer >" @@ -4969,41 +5253,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "(encore, pour confirmation)" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "(sélectionnez votre ville principale la plus proche)" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "choisir dans la carte" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "Langage par défaut" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "Organisations affiliées" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "Informez-moi des concours à venir" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "En vous inscrivant, vous acceptez nos" +#: templates/registration/registration_form.html:213 +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:205 -msgid "Terms & Conditions" -msgstr "Conditions générales d'utilisation" - -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "S'inscrire !" @@ -5012,8 +5291,9 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "Pour protéger votre compte, vous devez d'abord vous authentifier avant de pouvoir désactiver l'authentification à deux facteurs." #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" -msgstr "Saisissez le code à 6 chiffres généré par votre application ou l'un de vos codes scratch à 16 chiffres :" +#: 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 "Saisissez le code à 6 chiffres généré par votre application ou l'un de vos codes scratch à 16 caractères :" #: templates/registration/totp_disable.html:41 msgid "Disable Two Factor Authentication" @@ -5044,22 +5324,26 @@ msgid "Enable Two Factor Authentication" msgstr "Activer l'Authentification à Deux Facteurs" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 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 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 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." #: templates/registration/totp_enable.html:101 msgid "If you ever need more scratch codes, you can regenerate them on the edit profile tab." -msgstr "Si vous avez besoin de plus de codes scratch, vous pouvez les régénérer dans l'onglet \"Modifier le profil\"." +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 msgid "Please write these down and keep them in a secure location." msgstr "Veuillez les noter et les conserver dans un endroit sûr." @@ -5077,19 +5361,15 @@ 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:165 +#: templates/user/edit-profile.html:164 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:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "Impossible de contacter le serveur." -#: 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 "Saisissez le code à 6 chiffres généré par votre application ou l'un de vos codes scratch à 16 caractères :" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "Saisissez l'un de vos codes scratch à 16 caractères :" @@ -5115,38 +5395,38 @@ msgstr "Statistiques de Soumission" msgid "AC Submissions by Language" msgstr "Soumissions AC par Langage" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "Juge" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "Connecté" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "Temps de fonctionnement" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "Ping" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "Charge" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "N/A" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "Il n'y a pas de juges disponibles pour le moment." -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "ID" @@ -5165,37 +5445,41 @@ msgstr "Matrice de Version" #: templates/submission/internal-error-message.html:3 #, python-format msgid "An internal error occurred while grading, and the %(site_name)s administrators have been notified." -msgstr "" +msgstr "Une erreur interne s'est produite lors de la notation et les administrateurs de %(site_name)s ont été informés." #: templates/submission/internal-error-message.html:5 msgid "In the meantime, try resubmitting in a few seconds." -msgstr "" +msgstr "En attendant, essayez de soumettre à nouveau dans quelques secondes." #: templates/submission/internal-error-message.html:7 msgid "An internal error occurred while grading." -msgstr "" +msgstr "Une erreur interne s'est produite lors de la notation." #: templates/submission/internal-error-message.html:14 msgid "Error information" -msgstr "" +msgstr "Informations sur l'erreur" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "Êtes-vous sûr de vouloir rejuger ?" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "Filtrer par statut..." -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "Filtrer par langage..." -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "Filtrer les soumissions" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "Total :" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "Vous avez été déconnecté. Rafraîchissez pour afficher les dernières mises à jour." @@ -5261,20 +5545,24 @@ msgid "Execution Results" msgstr "Résultats d'Exécution" #: templates/submission/status-testcases.html:51 -msgid "Batch " -msgstr "Lot " +#, python-format +msgid "Batch #%(id)d" +msgstr "Lot #%(id)d" #: templates/submission/status-testcases.html:64 -msgid "Case" -msgstr "Cas" +#, python-format +msgid "Case #%(id)d:" +msgstr "Cas #%(id)d :" #: templates/submission/status-testcases.html:66 -msgid "Pretest" -msgstr "Prétest" +#, python-format +msgid "Pretest #%(id)d:" +msgstr "Prétest #%(id)d :" #: templates/submission/status-testcases.html:68 -msgid "Test case" -msgstr "Cas de test" +#, python-format +msgid "Test case #%(id)d:" +msgstr "Cas de test #%(id)d :" #: templates/submission/status-testcases.html:101 msgid "Your output (clipped)" @@ -5282,7 +5570,7 @@ msgstr "Votre retour (abrégé)" #: templates/submission/status-testcases.html:113 msgid "Judge feedback" -msgstr "" +msgstr "Commentaires du juge" #: templates/submission/status-testcases.html:129 msgid "Resources:" @@ -5318,11 +5606,11 @@ msgstr "Soumission abandonnée !" msgid "View source" msgstr "Voir la source" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "Appuyez sur Ctrl-Enter ou Command-Enter pour abandonner." -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "Abandonner" @@ -5339,41 +5627,41 @@ msgstr "Meilleur" msgid "%(user)s's" msgstr "De %(user)s" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "Réouvert : " -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "Fermé : " -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "Utiliser la notification de bureau" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "Masquer les tickets fermés" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "Afficher mes tickets uniquement" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "Utilisateur de dépôt" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "Destinataire" msgstr[1] "Destinataires" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "Titre" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "Destinataires" @@ -5395,31 +5683,32 @@ msgstr "Merci d'avoir ouvert un ticket !" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "Gardez à l'esprit que ce formulaire sert à signaler des problèmes liés à l'énoncé d'un problème, et non à demander de l'aide. Si vous avez besoin d'aide pour résoudre un problème, demandez plutôt dans les commentaires." -#: templates/ticket/ticket.html:356 -msgid "Post" -msgstr "Poster" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" +msgstr "Impossible de modifier le ticket : {error}" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "Objet associé" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "Personne n'est assigné." -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "Fermer le ticket" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "Rouvrir le ticket" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "Notes du destinataire" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "Rien ici." @@ -5427,141 +5716,163 @@ msgstr "Rien ici." msgid "Rank" msgstr "Rang" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "Recherche par nom..." -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 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:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "Cela invalidera tous les jetons API précédents." -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 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:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +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:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "Régénérer" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "Supprimer" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 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:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "Générer" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 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:284 -msgid "Self-description" -msgstr "Auto-description" +#: templates/user/edit-profile.html:207 +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 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +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 +msgid "Self-description:" +msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "Sélectionnez votre ville principale la plus proche" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" -msgstr "Thème de l'éditeur" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" +msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "Moteur mathématique" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "Changer votre avatar" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "Changer votre mot de passe" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" -msgstr "L'authentification à deux facteurs est activée" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" +msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "Désactiver" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "Réactiver" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" -msgstr "Codes Scratch :" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" +msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "Caché" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" -msgstr "L'authentification à deux facteurs est désactivée" +#: templates/user/edit-profile.html:377 +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 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "Activer" -#: templates/user/edit-profile.html:392 -msgid "API Token" -msgstr "Jeton API" +#: templates/user/edit-profile.html:393 +msgid "API token:" +msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" -msgstr "Clés de sécurité" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" +msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "Supprimer" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "Saisissez un nom pour cette clé" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "Ajouter" -#: templates/user/edit-profile.html:435 -msgid "User-script" -msgstr "Script utilisateur" +#: templates/user/edit-profile.html:436 +msgid "User-script:" +msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "Mettre à jour profil" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "%(pp).1fpp" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" -msgstr "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" +msgstr "pondérée %(percent)s (%(pp)spp)" #: templates/user/prepare-data.html:64 msgid "Are you sure you want to prepare a download?" @@ -5573,33 +5884,43 @@ msgstr "Nous sommes en train de préparer vos données." #: templates/user/prepare-data.html:81 msgid "Track progress" -msgstr "" +msgstr "Suivre la progression" + +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "Vous ne pouvez préparer un nouveau téléchargement de données qu'une fois tous les %(duration)s." -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "Soumissions" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" -msgstr "" +msgstr "Préparer un nouveau téléchargement" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" -msgstr "" +msgstr "Préparer le téléchargement" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" -msgstr "" +msgstr "Télécharger les données préparées" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "Vos données sont prêtes !" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "Vous devrez attendre %(countdown)s pour préparer un nouveau téléchargement de données." + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "Télécharger les données" @@ -5663,45 +5984,41 @@ msgstr "Plus" msgid "Rating history" msgstr "Historique des classements" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "année dernière" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "%(counter)s problème résolu" msgstr[1] "%(counter)s problèmes résolus" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "Rang par points :" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "Total des points :" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "%(counter)s concours écrit" msgstr[1] "%(counter)s concours écrits" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "Rang par classement :" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "Classement :" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "Classement minimum :" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "Classement maximale :" @@ -5725,12 +6042,12 @@ msgstr "Problèmes créés" msgid "Hide problems I've solved" msgstr "Masquer les problèmes que j'ai déjà résolus" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" -msgstr "%(points).1f points" +msgid "%(group)s (%(val)s points)" +msgstr "%(group)s (%(val)s points)" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "%(points)s / %(total)s" diff --git a/locale/fr/LC_MESSAGES/djangojs.po b/locale/fr/LC_MESSAGES/djangojs.po index 2210ff062b..304d1e8536 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:29\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -17,15 +17,66 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "Voter sur les points du problème" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "Impossible de supprimer le vote : %s" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "Modifier le vote de points (%s)" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "Impossible de voter : %s" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "Nombre de votes pour cette valeur de points" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "année dernière" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "%(cnt)d soumission au total" +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" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "%(cnt)d soumission en %(year)d" +msgstr[1] "%(cnt)d soumissions en %(year)d" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "%(cnt)d soumission le %(date)s" +msgstr[1] "%(cnt)d soumissions le %(date)s" + diff --git a/locale/hr/LC_MESSAGES/django.po b/locale/hr/LC_MESSAGES/django.po index 2ed3d91bdc..aa2d1de536 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-20 00:55\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Croatian\n" "Language: hr_HR\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Njemački" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Grčki" + +#: dmoj/settings.py:384 msgid "English" msgstr "Engleski" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Španjolski" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Francuski" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Hrvatski" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Mađarski" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Korejski" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Rumunjski" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Ruski" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Srpski (Latinica)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Turski" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Vijetnamski" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Pojednostavljeni Kineski" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Početna" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "Sadržaj" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -134,12 +142,25 @@ msgid "Included contests" msgstr "Uključena natjecanja" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Zadatak" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: 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:77 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 "" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "" @@ -164,7 +185,7 @@ msgstr "Bodovi" msgid "Access" msgstr "" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "Pravda" @@ -216,7 +237,7 @@ msgstr[2] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -240,7 +261,7 @@ msgstr "" msgid "username" msgstr "korisničko ime" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "virtualno" @@ -248,17 +269,14 @@ msgstr "virtualno" msgid "link path" msgstr "putanja veze" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Sadržaj" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Sažetak" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "korisnik" @@ -266,53 +284,52 @@ msgstr "korisnik" msgid "object" msgstr "" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Prikaži na stranici" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "Opišite promjene koje ste napravili (neobavezno)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Društveni Mediji" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Taksonomija" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Bodovi" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Ograničenja" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Jezik" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "Povijest" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Autori" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." @@ -320,11 +337,11 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." @@ -332,11 +349,11 @@ msgstr[0] "%d zadatak uspješno postavljen kao javno." msgstr[1] "%d zadataka uspješno postavljeno kao javni." msgstr[2] "%d zadataka uspješno postavljeno kao javni." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Označi zadatke javnima" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." @@ -344,28 +361,35 @@ msgstr[0] "%d zadatak uspješno postavljen kao privatan." msgstr[1] "%d zadataka uspješno postavljeno kao privatni." msgstr[2] "%d zadataka uspješno postavljeno kao privatni." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "zadatak" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Korisnik" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "E-mail" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "Vremenska zona" @@ -375,8 +399,8 @@ msgstr "datum registracije" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "%d korisnik je ponovno izračunao bodove." msgstr[1] "%d korisnika je ponovno izračunalo bodove." msgstr[2] "%d korisnika je ponovno izračunalo bodove." @@ -390,8 +414,14 @@ msgid "Disallowed problems" msgstr "Nedozvoljeni zadaci" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "Sljedeći zadatke NE možete riješiti u ovom jeziku" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "Sljedeći zadatke NE možete riješiti u ovom jeziku." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "" #: judge/admin/runtime.py:77 msgid "Description" @@ -405,101 +435,105 @@ msgstr "Informacije" msgid "Capabilities" msgstr "Mogućnosti" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Nepoznato" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "Nedovršeno" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Izuzetno" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "Odbijeno" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." 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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "Uključena zadaci" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Ovi zadaci su dio ove grupe zadataka" +msgid "These problems are included in this group of problems." +msgstr "Ovi zadaci su dio ove grupe zadataka." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "Ovi zadaci imaju ovaj tip zadatka" +msgid "These problems are included in this type of problems." +msgstr "Ovi zadaci imaju ovaj tip zadatka." #: judge/apps.py:8 msgid "Online Judge" @@ -513,11 +547,11 @@ msgstr "Tekst komentara" msgid "Your part is silent, little toad." msgstr "Budi tiho, mala žabice." -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "Moraš riješiti barem jedan zadatak kako bi mogao komentirati." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Objavljen komentar" @@ -604,20 +638,23 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "IOI (prije 2016)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "Token autentikacije u dva koraka mora biti duljine {TOTP_CODE_LENGTH}." +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "Pogrešan token autentikacije u dva koraka." -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -633,91 +670,95 @@ msgstr "Uključi eksperimentalne opcije" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "Ne možete biti član više od {count} javnih organizacija." +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] "" +msgstr[2] "" -#: judge/forms.py:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "Preuzmi komentare?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "Preuzmi predana rješenja?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtriraj prema rezultatu:" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "Molimo označite barem jednu stavku za preuzimanje." -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "Bilo koji evaluator" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Korisničko ime" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Lozinka" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "Pogrešan WebAuthn odgovor." -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "ID zadatka mora biti ^[a-z0-9]+$" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "Već postoji zadatak koji koristi taj ID." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "ID natjecanja mora biti ^[a-z0-9]+$" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "Već postoji natjecanje koje koristi taj ID." #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "j. N Y. G:i" @@ -779,9 +820,9 @@ msgstr "glasova" msgid "body of comment" msgstr "tekst komentara" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "sakrij komentar" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "" #: judge/models/comment.py:48 msgid "parent" @@ -796,7 +837,7 @@ msgid "comments" msgstr "komentari" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "Objašnjenje za %s" @@ -879,7 +920,7 @@ msgid "contest name" msgstr "naziv natjecanja" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "autori" @@ -887,7 +928,7 @@ msgstr "autori" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "" @@ -895,7 +936,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "" @@ -931,7 +972,7 @@ msgstr "" msgid "description" msgstr "opis" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "zadaci" @@ -944,12 +985,12 @@ msgstr "vrijeme početka" msgid "end time" msgstr "vrijeme kraja" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "vremensko ograničenje" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "javno vidljivo" @@ -986,7 +1027,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -1001,85 +1042,85 @@ msgstr "Koristite sustav za pojašnjenja umjesto komentara." msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "boduj sve" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "Boduj sve korisnike koji su se pridružili." -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "izostavi iz bodovanja" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "sakrij oznake zadataka" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "Trebaju li oznake zadataka biti zadano skrivene." -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "pokreni samo predtestiranje" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "privatno za organizacije" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "organizacije" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1091,7 +1132,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1099,15 +1140,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "OpenGraph slika" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1122,7 +1164,7 @@ msgstr "trenutni broj natjecatelja" msgid "contest summary" msgstr "sažetak natjecanja" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1135,7 +1177,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "persona non grata" @@ -1199,7 +1241,7 @@ msgstr "Uredi sva natjecanja" msgid "Clone contest" msgstr "Kloniraj natjecanje" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS natjecanje" @@ -1296,15 +1338,8 @@ msgstr "" msgid "contest participations" msgstr "" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "zadatak" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "bodovi" @@ -1344,7 +1379,7 @@ msgstr "" msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "predano rješenje" @@ -1400,6 +1435,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "vrijednost" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1440,7 +1483,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1460,10 +1503,6 @@ msgstr "" msgid "post summary" msgstr "" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "OpenGraph slika" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "" @@ -1480,337 +1519,374 @@ msgstr "" msgid "blog posts" msgstr "" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "" -#: judge/models/problem.py:67 -msgid "URL to the icon" +#: judge/models/problem.py:66 +msgid "URL to the icon." msgstr "" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "kod zadatka" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "ime zadatka" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "memorijsko ograničenje" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "Memorijsko ograničenje za ovaj zadatak, u kilobajtima (npr. 64mb = 65536 kilobajta)." +#: judge/models/problem.py:142 +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:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "dopušteno djelomično bodovanje" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "dopušteni programski jezici" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "ručno upravljano" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "datum objave" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "sažetak zadatka" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "jezik" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "" @@ -1851,11 +1927,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1863,59 +1939,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1928,11 +2012,11 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" +msgid "Organization name shown in URLs." msgstr "" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" +msgid "Displayed beside user name during contests." msgstr "" #: judge/models/profile.py:47 @@ -1944,7 +2028,7 @@ msgid "administrators" msgstr "" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" +msgid "Those who can edit this organization." msgstr "" #: judge/models/profile.py:50 @@ -1956,7 +2040,7 @@ msgid "is open organization?" msgstr "" #: judge/models/profile.py:52 -msgid "Allow joining organization" +msgid "Allow joining organization." msgstr "" #: judge/models/profile.py:53 @@ -1964,11 +2048,11 @@ msgid "maximum size" msgstr "" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" +msgid "Maximum amount of users in this organization, only applicable to private organizations." msgstr "" -#: judge/models/profile.py:56 -msgid "Student access code" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." msgstr "" #: judge/models/profile.py:60 @@ -1980,11 +2064,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1996,12 +2080,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "organizacija" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -2013,7 +2097,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2024,12 +2108,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2041,7 +2121,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2054,8 +2134,8 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" -msgstr "" +msgid "time zone" +msgstr "vremenska zona" #: judge/models/profile.py:152 msgid "preferred language" @@ -2085,8 +2165,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2112,163 +2192,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + +#: judge/models/profile.py:372 msgid "reason" msgstr "" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2297,7 +2397,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2377,7 +2477,7 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2385,7 +2485,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2470,8 +2570,8 @@ msgstr "" msgid "Internal Error" msgstr "" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2495,10 +2595,6 @@ msgstr "" msgid "Completed" msgstr "" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2507,15 +2603,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2567,97 +2663,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2705,10 +2801,6 @@ msgstr "" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "" - #: judge/models/ticket.py:34 msgid "message body" msgstr "" @@ -2817,7 +2909,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2840,10 +2932,6 @@ msgstr "" msgid "Error" msgstr "" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2886,7 +2974,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2911,7 +2999,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -2986,62 +3074,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "F Y." -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Sudjelovanje" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3065,7 +3149,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3088,63 +3172,74 @@ msgstr "" msgid "Organizations" msgstr "Organizacije" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "Zahtjev za pridruživanje %s" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +msgid "Your organization can only receive %d more member." +msgid_plural "Your organization can only receive %d more members." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: judge/views/organization.py:297 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3152,7 +3247,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3160,137 +3255,152 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "Uređivanje %s" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "Nije moguće urediti organizaciju" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "Nemate ovlasti za uređivanje ove organizacije." -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "Nemate ovlasti za izbacivanje ljudi iz ove organizacije." -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "Nije moguće izbaciti korisnika" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "Korisnik kojeg pokušavate izbaciti ne postoji!" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, 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." +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:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Zadaci" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "Previše poslanih rješenja" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3334,7 +3444,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3354,15 +3464,15 @@ msgstr "Vaša adresa e-pošte \"%s\" je već zauzeta. Dopuštena je isključivo msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "" @@ -3374,7 +3484,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "Status" @@ -3400,59 +3510,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "Predano rješenje za zadatak %(problem)s od korisnika %(user)s" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "Sva predana rješenja" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "Sva moja predana rješenja" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "Sva predana rješenja od korisnika %s" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "Sva predana rješenja za korisnika %s" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3561,51 +3663,46 @@ msgstr "Prijava" msgid "M j, Y, G:i" msgstr "j. M Y. G:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3631,13 +3728,15 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3645,54 +3744,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3724,39 +3817,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "Nastavite čitati..." + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "Komentari" @@ -3779,7 +3886,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "" @@ -3787,64 +3894,90 @@ msgstr "" msgid "Link" msgstr "" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "Glasova" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "Bodovi" @@ -3852,6 +3985,18 @@ msgstr "Bodovi" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3916,12 +4061,12 @@ msgstr "Sljedeća" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "Kalendar" @@ -3929,7 +4074,7 @@ msgstr "Kalendar" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "" @@ -3954,7 +4099,7 @@ msgstr "" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "" @@ -3971,7 +4116,7 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3979,6 +4124,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -3987,6 +4142,21 @@ msgstr "" msgid "Contest is over." msgstr "" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "j. F Y. G:i T" @@ -4120,9 +4290,9 @@ msgstr "" msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "" @@ -4130,7 +4300,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4143,10 +4313,6 @@ msgstr "" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4155,37 +4321,54 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Natjecanje" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "" #: templates/contest/media-js.html:4 @@ -4206,22 +4389,30 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4275,19 +4466,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "" @@ -4308,7 +4499,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4474,7 +4665,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "" @@ -4487,25 +4678,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" +msgid "Request!" msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4522,55 +4701,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4582,7 +4765,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "" @@ -4593,20 +4776,20 @@ msgstr[2] "" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4670,28 +4853,34 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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] "" +msgstr[2] "" -#: templates/problem/manage_submission.html:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" @@ -4699,90 +4888,103 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "Bodovi:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "Dopušteni programski jezici" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4831,8 +5033,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "" @@ -4869,6 +5071,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4878,6 +5128,52 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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[2] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4924,7 +5220,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -4940,22 +5235,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4985,7 +5277,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4998,41 +5290,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -5041,7 +5328,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5073,14 +5361,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5089,6 +5380,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5106,19 +5398,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5144,38 +5432,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "" @@ -5208,23 +5496,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5290,19 +5582,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5347,11 +5643,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5368,42 +5664,42 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5425,31 +5721,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5457,140 +5754,162 @@ msgstr "" msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5605,31 +5924,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5693,11 +6022,7 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" @@ -5705,15 +6030,15 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" @@ -5721,19 +6046,19 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "" @@ -5757,12 +6082,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/hr/LC_MESSAGES/djangojs.po b/locale/hr/LC_MESSAGES/djangojs.po index 82ed99d2de..a8ed9e17e3 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:29\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\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:207 +#: resources/common.js:195 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -25,8 +25,63 @@ msgstr[0] "%d dan %h:%m:%s" msgstr[1] "%d dana %h:%m:%s" msgstr[2] "%d dana %h:%m:%s" -#: resources/common.js:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: 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[2] "" + +#: 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[2] "" + +#: 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[2] "" + diff --git a/locale/hu/LC_MESSAGES/django.po b/locale/hu/LC_MESSAGES/django.po index 4dc28cfd66..96b5728076 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-21 00:46\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Német" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Görög" + +#: dmoj/settings.py:384 msgid "English" msgstr "Angol" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Spanyol" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Francia" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Horvát" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Koreai" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Román" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Orosz" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Szerb (Latin)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Vietnami" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Egyszerűsített Kínai" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Nyitólap" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "Tartalom" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -132,12 +140,25 @@ msgid "Included contests" msgstr "Hozzárendelt versenyek" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Feladat" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: 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:77 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 "Újratesztel" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "" @@ -162,7 +183,7 @@ msgstr "Értékelés" msgid "Access" msgstr "" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "Igazságszolgáltatás" @@ -210,7 +231,7 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -232,7 +253,7 @@ msgstr "" msgid "username" msgstr "felhasználónév" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "virtuális" @@ -240,17 +261,14 @@ msgstr "virtuális" msgid "link path" msgstr "csatolási útvonal" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Tartalom" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Összefoglalás" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "felhasználó" @@ -258,103 +276,109 @@ msgstr "felhasználó" msgid "object" msgstr "" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Nézd meg élesben" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "Ismertesd a módosításokat (opcionális)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Közösségi Média" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Rendszerezés" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Pontok" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Limitek" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Nyelv" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "Előzmények" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Szerzők" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "%d probléma sikeresen publikusnak jelölve." msgstr[1] "%d probléma sikeresen publikusnak jelölve." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Jelöld publikusnak a problémákat" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "%d probléma sikeresen privátnak jelölve." msgstr[1] "%d probléma sikeresen privátnak jelölve." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "feladat" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Felhasználó" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "Email" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "Időzóna" @@ -364,8 +388,8 @@ msgstr "csatlakozás dátuma" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "%d felhasználó pontja újraszámolva." msgstr[1] "%d felhasználó pontja újraszámolva." @@ -378,8 +402,14 @@ msgid "Disallowed problems" msgstr "Tiltott feladatok" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "Ezekre a feladatokra NEM lehet megoldást beküldeni ezen a nyelven" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "Ezekre a feladatokra NEM lehet megoldást beküldeni ezen a nyelven." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "" #: judge/admin/runtime.py:77 msgid "Description" @@ -393,100 +423,104 @@ msgstr "Információ" 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:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Semmi" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "Nincs kész" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Kivételes" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "Nem elfogadott" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "Mellékelt problémák" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Ezek a problémák tartoznak ehhez a csoporthoz" +msgid "These problems are included in this group of problems." +msgstr "Ezek a problémák tartoznak ehhez a csoporthoz." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "Ezek a problémák tartoznak ehhez a típushoz" +msgid "These problems are included in this type of problems." +msgstr "Ezek a problémák tartoznak ehhez a típushoz." #: judge/apps.py:8 msgid "Online Judge" @@ -500,11 +534,11 @@ msgstr "Hozzászólás törzse" msgid "Your part is silent, little toad." msgstr "Az útvonalad csendes, kis varangy." -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "Legalább 1 feladatot meg kell oldanod mielőtt hozzászólsz." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Elküldött hozzászólás" @@ -589,20 +623,22 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -618,91 +654,94 @@ 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:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "Nem lehetsz tagja több mint {count} nyilvános csoportnak." +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Felhasználónév" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Jelszó" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 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:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 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:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "Y. N j., G:i" @@ -764,9 +803,9 @@ msgstr "szavazatok" msgid "body of comment" msgstr "hozzászólás törzse" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "hozzászólás elrejtése" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "" #: judge/models/comment.py:48 msgid "parent" @@ -781,7 +820,7 @@ msgid "comments" msgstr "hozzászólások" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "Megoldási útmutató %s-hez" @@ -864,7 +903,7 @@ msgid "contest name" msgstr "verseny neve" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "szerzők" @@ -872,7 +911,7 @@ msgstr "szerzők" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "kurátorok" @@ -880,7 +919,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "tesztelők" @@ -916,7 +955,7 @@ msgstr "" msgid "description" msgstr "leírás" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "feladatok" @@ -929,12 +968,12 @@ msgstr "kezdés" msgid "end time" msgstr "befejezés" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "időkorlát" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "nyilvánosan látható" @@ -971,7 +1010,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -986,85 +1025,85 @@ msgstr "A pontosítási rendszer használata hozzászólások helyett." msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "összes értékelése" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "Értékelése az összes felhasználónak, aki csatlakozott." -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "kizárás a értékelésből" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "feladat címkék elrejtése" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "csak pretesztek futtatása" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "privát a csoport számára" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "csoportok" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1076,7 +1115,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1084,15 +1123,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "OpenGraph kép" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1107,7 +1147,7 @@ msgstr "az éles résztvevők száma" msgid "contest summary" msgstr "verseny összefoglaló" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1120,7 +1160,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "nemkívánatos személy" @@ -1184,7 +1224,7 @@ msgstr "Az összes verseny szerkesztése" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1281,15 +1321,8 @@ msgstr "verseny részvétel" msgid "contest participations" msgstr "verseny részvételek" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "feladat" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "pontok" @@ -1329,7 +1362,7 @@ msgstr "versenyfeladat" msgid "contest problems" msgstr "versenyfeladatok" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "feltöltés" @@ -1385,6 +1418,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "kulcs" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "érték" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "konfigurációs elem" @@ -1425,7 +1466,7 @@ msgstr "bejegyzés címe" msgid "slug" msgstr "csonk" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "láthatóság" @@ -1445,10 +1486,6 @@ msgstr "tartalom küldése" msgid "post summary" msgstr "tartalom összefoglalója" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "openGraph kép" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "Összes poszt szerkesztése" @@ -1465,337 +1502,374 @@ msgstr "blog poszt" msgid "blog posts" msgstr "blog posztok" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "feladat kategória azonosító" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "feladat kategória név" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "feladat típus" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "feladat típusok" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "feladat csoport azonosító" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "feladat csoport név" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "feladat csoport" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "feladat csoport nevek" -#: judge/models/problem.py:61 -msgid "key" -msgstr "kulcs" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "link" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "teljes név" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "rövid név" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "ikon" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL az ikonhoz" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "URL az ikonhoz." -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "licenc szöveg" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "licenc" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "licencek" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "feladat azonosító" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "feladat név" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "feladat törzs" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "szerzők" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 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:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "memória korlát" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "A feladat memória limitje kilobyte-okban (pl. 64mb = 65536 kilobyte)." +#: judge/models/problem.py:142 +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:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "részleges pontok engedélyezése" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "engedélyezett nyelvek" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "manuáisan kezelt" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "publikálás ideje" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "feladat összefoglaló" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Feladat klónozása" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "nyelv" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "lefordított név" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "lefordított leírás" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "feladat fordítás" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "feladat fordítások" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "pontosított feladat" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "pontosítás törzse" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "pontosítás időbélyege" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "nyelv specifikus erőforrás korlát" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "nyelv specifikus erőforrás korlátok" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "hozzárendelt probléma" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "publikálás dátuma" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "megoldási útmutató tartalom" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "megoldás" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "megoldások" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "Alapértelmezett" @@ -1836,11 +1910,11 @@ msgstr "adat zip fájl" msgid "generator file" msgstr "generátor fájl" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "kimeneti prefix hossza" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "kimenet hossz limitje" @@ -1848,59 +1922,67 @@ msgstr "kimenet hossz limitje" msgid "init.yml generation feedback" msgstr "init.yml generálás visszajelzése" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "checker" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "checker argumentumai" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" -msgstr "chceker argumentumai JSON objektumként" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." +msgstr "Checker argumentumai JSON objektumként." -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "feladat adathalmaz" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "eset hely" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "eset típus" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "Normál eset" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "Batch kezdete" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "Batch vége" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "bemeneti fájl név" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "kimeneti fájl név" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "generátor argumentumai" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "pont érték" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "ez az eset preteszt?" @@ -1913,12 +1995,12 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "" +msgid "Organization name shown in URLs." +msgstr "Csoport név látszik az URL-ben." #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "A felhasználóinév mellett van a versenyek alatt" +msgid "Displayed beside user name during contests." +msgstr "A felhasználóinév mellett van a versenyek alatt." #: judge/models/profile.py:47 msgid "organization description" @@ -1929,8 +2011,8 @@ msgid "administrators" msgstr "adminisztrátorok" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "Azok, akik szerkeszteni tudják ezt a csoportot" +msgid "Those who can edit this organization." +msgstr "Azok, akik szerkeszteni tudják ezt a csoportot." #: judge/models/profile.py:50 msgid "creation date" @@ -1941,20 +2023,20 @@ msgid "is open organization?" msgstr "nyílt-e a csoport?" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "A csoportba való belépés engedélyezése" +msgid "Allow joining organization." +msgstr "A csoportba való belépés engedélyezése." #: judge/models/profile.py:53 msgid "maximum size" msgstr "maximális méret" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "Maximális felhasználó szám ebben a csoportban, csak privát csoportokra érvényes" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "Maximális felhasználó szám ebben a csoportban, csak privát csoportokra érvényes." -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "Tanulói hozzáférési kódok" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "Tanulói hozzáférési kódok." #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1965,11 +2047,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1981,12 +2063,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "csoport" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1998,7 +2080,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2009,12 +2091,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "tanulói hozzáférési kódok" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2026,7 +2104,7 @@ msgstr "tagok" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2039,8 +2117,8 @@ msgid "self-description" msgstr "önleírás" #: judge/models/profile.py:150 -msgid "location" -msgstr "helyszín" +msgid "time zone" +msgstr "időzóna" #: judge/models/profile.py:152 msgid "preferred language" @@ -2070,8 +2148,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2097,163 +2175,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 +msgid "banned from voting on problem point values" +msgstr "" + +#: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 msgid "user script" msgstr "felhasználói szkript" -#: judge/models/profile.py:173 +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "Felhasználó által meghatározott JavaScript a webhely testreszabásához." -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "jelenlegi verseny" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "matek motor" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "a matek ábrákat renderelő motor" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." +msgstr "A matek ábrákat renderelő motor." -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "felhasználói profil" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "felhasználói profilok" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "kérési idő" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "állapot" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 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 +msgid "Approved" +msgstr "Jóváhagyva" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Elutasítva" + +#: judge/models/profile.py:372 msgid "reason" msgstr "ok" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "csoport belépési kérelem" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "csoport belépési kérelmek" @@ -2282,7 +2380,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2362,16 +2460,16 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" -msgstr "Szerver név, hosztnév-szerűen" +msgid "Server name, hostname-style." +msgstr "Szerver név, hosztnév-szerűen." #: judge/models/runtime.py:126 msgid "time of creation" msgstr "létrehozás dátuma" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" -msgstr "A tesztelőhöz hozzárendelt kulcs" +msgid "A key to authenticate this judge." +msgstr "A tesztelőhöz hozzárendelt kulcs." #: judge/models/runtime.py:128 msgid "authentication key" @@ -2455,8 +2553,8 @@ msgstr "Fordítási Hiba" msgid "Internal Error" msgstr "Belső Hiba" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2480,10 +2578,6 @@ msgstr "Pontozás" msgid "Completed" msgstr "" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "Belső Hiba (tesztelő szerver hiba)" @@ -2492,15 +2586,15 @@ msgstr "Belső Hiba (tesztelő szerver hiba)" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "futási idő" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "memória használat" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2552,97 +2646,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "forráskód" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "teszteset azonosító" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "tesztelési visszajelzés" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "program kimenet" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2690,10 +2784,6 @@ msgstr "hibajegy" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "" - #: judge/models/ticket.py:34 msgid "message body" msgstr "üzenet törzse" @@ -2802,7 +2892,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2825,10 +2915,6 @@ msgstr "" msgid "Error" msgstr "" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2868,7 +2954,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2893,7 +2979,7 @@ msgstr "" msgid "You already voted." msgstr "Már szavaztál." -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "Szerkesztve az oldalról" @@ -2968,62 +3054,58 @@ msgstr "Add meg a hozzáférési kódot a \"%s\"-hoz" msgid "You are not in contest \"%s\"." msgstr "Nem vagy a \"%s\" versenyben." -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "Y. F" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "???" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Részvétel" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3047,7 +3129,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3070,207 +3152,231 @@ msgstr "Nem található ilyen csoport." msgid "Organizations" msgstr "Csoportok" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "%s Tagok" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "Belépés a csoportba" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "Már benne vagy a csoportba." -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "Ez a csoport nem nyílt." -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "Csoport elhagyása" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "Nem vagy \"%s\"-ben." -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "Kérés a \"%s\"-hez való csatlakozásra" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "Belépési kérés részletei" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "%s belépési kéréseinek kezelése" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "A csoportod csak %d további tagot tud fogadni. Nem tudsz felvenni %d felhasználót." +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 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, 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:304 +#: judge/views/organization.py:313 #, 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:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "%s szerkesztése" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "Nem lehet szerkeszteni a csoportot" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "Nincs jogosultságod szerkeszteni ezt a csoportot." -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 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:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "Nem lehet kirúgni a felhasználót" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 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:377 +#: judge/views/organization.py:386 #, 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." +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:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "Nincs ilyen feladat" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "Megoldás útmutató {0}-hez" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Feladatok" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "Feltöltéstől eltiltott" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "Túl sok feltöltés" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "Feladat Klónozása" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "A zip fájlod nem érvényes!" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "init.yml generálva %s-hez" @@ -3313,7 +3419,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3333,15 +3439,15 @@ msgstr "A \"%s\" email cím már foglalt. Csak egy regisztráció engedélyezett msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "Regisztráció" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "Azonosítási hiba" @@ -3353,7 +3459,7 @@ msgstr "Egyéb" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "Státusz" @@ -3379,59 +3485,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "Összes beküldés" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "Összes beküldésem" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3540,53 +3638,48 @@ msgstr "Belépés" msgid "M j, Y, G:i" msgstr "Y. M j., G:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "Frissítve az oldalon" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Profil szerkesztése" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Ranglista" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" -msgstr "Érvénytelen szélességi vagy hosszúsági kör" - #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" msgstr "" @@ -3610,13 +3703,15 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3624,54 +3719,48 @@ msgstr "" msgid "Edit user" msgstr "Felhasználó szerkesztése" -#: 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:80 -msgid "Rejudge" -msgstr "Újratesztel" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "Heló, %(username)s." -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "Kilépés" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "vagy" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "megfigyelés" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "Az oldal JavaScript engedélyezésével működik a legjobban." -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Szerkesztés" @@ -3703,39 +3792,53 @@ msgstr "{time}-kor posztolva" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "Pontosítások" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "Nem jelentek meg pontosítások még." -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "Folyamatban lévő versenyek" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "Közelgő versenyek" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "Kommentfolyam" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "Új feladatok" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "Nyitott hibajegyeim" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "Új hibajegy" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "Hozzászólások" @@ -3758,7 +3861,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "szerkesztett" @@ -3766,64 +3869,90 @@ msgstr "szerkesztett" msgid "Link" msgstr "Link" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "Válasz" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "Szavazatok" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "Elrejtés" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "Új hozzászólás" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "Érvénytelen hozzászólás törzs." -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "Küld!" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "Pont" @@ -3831,6 +3960,18 @@ msgstr "Pont" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3895,12 +4036,12 @@ msgstr "Következő" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "Lista" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "Naptár" @@ -3908,7 +4049,7 @@ msgstr "Naptár" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "" @@ -3933,7 +4074,7 @@ msgstr "" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "Virtuális csatlakozás" @@ -3950,7 +4091,7 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3958,6 +4099,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -3966,6 +4117,21 @@ msgstr "" msgid "Contest is over." msgstr "A versenynek vége." +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "Y. F j., G:i T" @@ -4096,9 +4262,9 @@ msgstr "" msgid "AC Rate" msgstr "AC arány" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "Felhasználók" @@ -4106,7 +4272,7 @@ msgstr "Felhasználók" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "Megoldási útmutató" @@ -4119,10 +4285,6 @@ msgstr "Biztos hogy csatlakozni akarsz?" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4131,38 +4293,55 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "Csatlakozás" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "Megfigyelés" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Verseny" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "Folyamatban lévő Versenyek" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "Közelgő Versenyek" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "Jelenleg nincs ütemezett verseny." -#: templates/contest/list.html:272 -msgid "Past Contests" -msgstr "Elmúlt Versenyek" +#: templates/contest/list.html:274 +msgid "Past contests" +msgstr "Elmúlt versenyek" #: templates/contest/media-js.html:4 msgid "Are you sure you want to leave?" @@ -4182,22 +4361,29 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4251,19 +4437,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "Csoportok mutatása" @@ -4284,8 +4470,8 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" -msgstr "Forrás:" +msgid "Visit source" +msgstr "" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4450,7 +4636,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:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "Törlés?" @@ -4463,25 +4649,13 @@ msgid "Your reason for joining:" msgstr "A csatlakozás oka:" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "Kérés" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Elbírálás alatt" +msgid "Request!" +msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "Log" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "Jóváhagyva" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "Elutasítva" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "Kirúg" @@ -4498,55 +4672,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "Kimenet limit" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "Checker" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "Generátor argumentumok" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "Típus" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "Bementi fájl" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "Kimeneti fájl" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "Preteszt?" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "Beküld!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "Új eset hozzáadása" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4558,7 +4736,7 @@ msgstr "Ne feledd, hogy **csak** akkor használd a megoldási útmutatót ha ela msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "Ha hivatalos megoldást küldesz be mielőtt te magad megoldanád a feladatot az kitiltást vonhat maga után!" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "Szerző:" @@ -4568,20 +4746,20 @@ msgstr[1] "Szerzők:" msgid "Filter by type..." msgstr "Szűrés típus szerint..." -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Kategória" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "Típusok" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "AC %%" @@ -4645,116 +4823,133 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "Mutasd PDF-ként" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "Megoldás beküldése" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "%(counter)s beküldés van hátra" msgstr[1] "%(counter)s beküldés van hátra" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "0 beküldés van hátra" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "Beküldéseim" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "Legjobb beküldések" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "Megoldási útmutató olvasása" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "Hibajegyek kezelése" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "Feladat szerkesztése" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "Teszt adatok szerkesztése" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "Pontok:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "(részleges)" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "Időkorlát:" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "Memóriakorlát:" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "Feladat típus" msgstr[1] "Feladat típusok" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "Engedélyezett nyelvek" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "Nincs jelenleg online %(lang)s tesztelő" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "Tesztelő:" msgstr[1] "Tesztelők:" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "Pontosítást kérek" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "Hiba jelentése" @@ -4803,8 +4998,8 @@ msgstr "Feladat típusok" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "" @@ -4840,6 +5035,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4849,6 +5092,50 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4895,7 +5182,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -4911,22 +5197,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4956,7 +5239,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Folytatás >" @@ -4969,41 +5252,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "(újra, megerősítésként)" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "válassz a térképről" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "Alapértelmezett nyelv" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "Kapcsolódó csoportok" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "Felhasználási feltételek" - -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -5012,7 +5290,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5044,14 +5323,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5342,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5360,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5115,38 +5394,38 @@ msgstr "Beküldési Statisztikák" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "Tesztelő" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "Elérhető" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "Ping" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "Azonosító" @@ -5179,23 +5458,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5261,20 +5544,24 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" -msgstr "Eset" +#, python-format +msgid "Case #%(id)d:" +msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" -msgstr "Preteszt" +#, python-format +msgid "Pretest #%(id)d:" +msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" -msgstr "Teszt eset" +#, python-format +msgid "Test case #%(id)d:" +msgstr "" #: templates/submission/status-testcases.html:101 msgid "Your output (clipped)" @@ -5318,11 +5605,11 @@ msgstr "" msgid "View source" msgstr "Forráskód megtekintése" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "Megszakít" @@ -5339,41 +5626,41 @@ msgstr "Legjobb" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "Újranyitva: " -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "Lezárva: " -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "Asztali értesítés használata" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "Csak a saját hibajegyek mutatása" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5395,31 +5682,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5427,140 +5715,162 @@ msgstr "" msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" -msgstr "Önleírás" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" +msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "Matek motor" +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" +msgstr "" + +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5575,31 +5885,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5663,45 +5983,41 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "" @@ -5725,12 +6041,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/hu/LC_MESSAGES/djangojs.po b/locale/hu/LC_MESSAGES/djangojs.po index 13159aedcc..0d0f7c8b4c 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -17,15 +17,66 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" + +#: 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] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" +msgstr[1] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" +msgstr[1] "" + diff --git a/locale/it/LC_MESSAGES/django.po b/locale/it/LC_MESSAGES/django.po index 6f428d777e..d825e87f52 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-06-19 00:54\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Catalano" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Tedesco" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Greco" + +#: dmoj/settings.py:384 msgid "English" msgstr "Inglese" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Spagnolo" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Francese" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Croato" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Ungherese" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Giapponese" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Coreano" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Rumeno" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Russo" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Turco" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Vietnamita" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Cinese Semplificato" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "Cinese Tradizionale" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -132,12 +140,25 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "" + +#: judge/admin/contest.py:77 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 "" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "" @@ -162,7 +183,7 @@ msgstr "" msgid "Access" msgstr "" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "" @@ -210,7 +231,7 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -232,7 +253,7 @@ msgstr "" msgid "username" msgstr "" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "" @@ -240,17 +261,14 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -258,103 +276,109 @@ msgstr "" msgid "object" msgstr "" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "" @@ -364,8 +388,8 @@ msgstr "" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "" msgstr[1] "" @@ -378,7 +402,13 @@ msgid "Disallowed problems" msgstr "" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "" + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" msgstr "" #: judge/admin/runtime.py:77 @@ -393,99 +423,103 @@ msgstr "" msgid "Capabilities" msgstr "" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" +msgid "These problems are included in this group of problems." msgstr "" #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" +msgid "These problems are included in this type of problems." msgstr "" #: judge/apps.py:8 @@ -500,11 +534,11 @@ msgstr "" msgid "Your part is silent, little toad." msgstr "" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "" @@ -589,20 +623,22 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -618,91 +654,94 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "" +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "" @@ -764,8 +803,8 @@ msgstr "" msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 -msgid "hide the comment" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" msgstr "" #: judge/models/comment.py:48 @@ -781,7 +820,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "" @@ -864,7 +903,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "" @@ -872,7 +911,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "" @@ -880,7 +919,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "" @@ -916,7 +955,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -929,12 +968,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "" @@ -971,7 +1010,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -986,85 +1025,85 @@ msgstr "" msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1076,7 +1115,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1084,15 +1123,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1107,7 +1147,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1120,7 +1160,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "" @@ -1184,7 +1224,7 @@ msgstr "" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1281,15 +1321,8 @@ msgstr "" msgid "contest participations" msgstr "" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "" @@ -1329,7 +1362,7 @@ msgstr "" msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "" @@ -1385,6 +1418,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1425,7 +1466,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1445,10 +1486,6 @@ msgstr "" msgid "post summary" msgstr "" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "" @@ -1465,337 +1502,374 @@ msgstr "" msgid "blog posts" msgstr "" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "" -#: judge/models/problem.py:67 -msgid "URL to the icon" +#: judge/models/problem.py:66 +msgid "URL to the icon." msgstr "" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "" @@ -1836,11 +1910,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1848,59 +1922,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1913,11 +1995,11 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" +msgid "Organization name shown in URLs." msgstr "" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" +msgid "Displayed beside user name during contests." msgstr "" #: judge/models/profile.py:47 @@ -1929,7 +2011,7 @@ msgid "administrators" msgstr "" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" +msgid "Those who can edit this organization." msgstr "" #: judge/models/profile.py:50 @@ -1941,7 +2023,7 @@ msgid "is open organization?" msgstr "" #: judge/models/profile.py:52 -msgid "Allow joining organization" +msgid "Allow joining organization." msgstr "" #: judge/models/profile.py:53 @@ -1949,11 +2031,11 @@ msgid "maximum size" msgstr "" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" +msgid "Maximum amount of users in this organization, only applicable to private organizations." msgstr "" -#: judge/models/profile.py:56 -msgid "Student access code" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." msgstr "" #: judge/models/profile.py:60 @@ -1965,11 +2047,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1981,12 +2063,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1998,7 +2080,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2009,12 +2091,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2026,7 +2104,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2039,7 +2117,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2070,8 +2148,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2097,163 +2175,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + +#: judge/models/profile.py:372 msgid "reason" msgstr "" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2282,7 +2380,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2362,7 +2460,7 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2370,7 +2468,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2455,8 +2553,8 @@ msgstr "" msgid "Internal Error" msgstr "" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2480,10 +2578,6 @@ msgstr "" msgid "Completed" msgstr "" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2492,15 +2586,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2552,97 +2646,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2686,12 +2780,8 @@ msgstr "" msgid "ticket" msgstr "" -#: judge/models/ticket.py:26 -msgid "tickets" -msgstr "" - -#: judge/models/ticket.py:32 -msgid "poster" +#: judge/models/ticket.py:26 +msgid "tickets" msgstr "" #: judge/models/ticket.py:34 @@ -2802,7 +2892,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2825,10 +2915,6 @@ msgstr "" msgid "Error" msgstr "" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2868,7 +2954,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2893,7 +2979,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -2968,62 +3054,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3047,7 +3129,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3070,207 +3152,231 @@ msgstr "" msgid "Organizations" msgstr "" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +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 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3313,7 +3419,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3333,15 +3439,15 @@ msgstr "" msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "" @@ -3353,7 +3459,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "" @@ -3379,59 +3485,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3540,51 +3638,46 @@ msgstr "" msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3610,13 +3703,15 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3624,54 +3719,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3703,39 +3792,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "" @@ -3758,7 +3861,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "" @@ -3766,64 +3869,90 @@ msgstr "" msgid "Link" msgstr "" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "" @@ -3831,6 +3960,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3895,12 +4036,12 @@ msgstr "" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "" @@ -3908,7 +4049,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "" @@ -3933,7 +4074,7 @@ msgstr "" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "" @@ -3950,7 +4091,7 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3958,6 +4099,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -3966,6 +4117,21 @@ msgstr "" msgid "Contest is over." msgstr "" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "" @@ -4096,9 +4262,9 @@ msgstr "" msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "" @@ -4106,7 +4272,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4119,10 +4285,6 @@ msgstr "" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4131,37 +4293,54 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "" #: templates/contest/media-js.html:4 @@ -4182,22 +4361,29 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4251,19 +4437,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "" @@ -4284,7 +4470,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4450,7 +4636,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "" @@ -4463,25 +4649,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" +msgid "Request!" msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4498,55 +4672,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4558,7 +4736,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "" @@ -4568,20 +4746,20 @@ msgstr[1] "" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4645,116 +4823,133 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4803,8 +4998,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "" @@ -4840,6 +5035,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4849,6 +5092,50 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4895,7 +5182,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -4911,22 +5197,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4956,7 +5239,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4969,41 +5252,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -5012,7 +5290,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5044,14 +5323,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5342,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5360,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5115,38 +5394,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "" @@ -5179,23 +5458,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5261,19 +5544,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5318,11 +5605,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5339,41 +5626,41 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5395,31 +5682,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5427,140 +5715,162 @@ msgstr "" msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5575,31 +5885,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5663,45 +5983,41 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "" @@ -5725,12 +6041,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/it/LC_MESSAGES/djangojs.po b/locale/it/LC_MESSAGES/djangojs.po index 3f60dc04c7..e98bf77551 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -17,15 +17,66 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" + +#: 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] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" +msgstr[1] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" +msgstr[1] "" + diff --git a/locale/ja/LC_MESSAGES/django.po b/locale/ja/LC_MESSAGES/django.po index 743c5d843e..3e9b6d297a 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-06-18 00:54\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "カタロニア語" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "ドイツ語" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "ギリシャ語" + +#: dmoj/settings.py:384 msgid "English" msgstr "英語" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "スペイン語" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "フランス語" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "クロアチア語" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "ハンガリー語" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "日本語" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "韓国語" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "ポルトガル語(ブラジル)" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "ルーマニア語" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "ロシア語" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "セルビア語(ラテン)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "トルコ語" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "ベトナム語" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "簡体字中国語" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "繁体字中国語" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "登録できません" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "ホーム" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "内容" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -130,12 +138,25 @@ msgid "Included contests" msgstr "含まれているコンテスト" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "課題" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "課題" + +#: judge/admin/contest.py:77 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 "再判定" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "設定" @@ -160,7 +181,7 @@ msgstr "評価" msgid "Access" msgstr "アクセス" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "正義" @@ -204,7 +225,7 @@ msgstr[0] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -224,7 +245,7 @@ msgstr "再計算の結果" msgid "username" msgstr "利用者名" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "仮想" @@ -232,17 +253,14 @@ msgstr "仮想" msgid "link path" msgstr "リンクパス" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "内容" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "概要" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "利用者" @@ -250,100 +268,106 @@ msgstr "利用者" msgid "object" msgstr "オブジェクト" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "サイト上で表示する" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "編集の理由" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "あなたの変更を記述する(オプショナル)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "ソーシャルメディア" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "分類" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "点数" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "制限" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "言語" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "履歴" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "著者" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "%d個の課題はパブリックとして印付けられました。" -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "課題をパブリックに印付けます" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "%d個の課題はプライベートとして印付けられました。" -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "課題" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "利用者" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "電子メール" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "時間帯" @@ -353,8 +377,8 @@ msgstr "入会日" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "%d人の利用者の得点が再計算されました。" #: judge/admin/profile.py:123 @@ -366,8 +390,14 @@ msgid "Disallowed problems" msgstr "許可されていない課題" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "それらの課題は、この言語での提出は許可されていません" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "それらの課題は、この言語での提出は許可されていません。" + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "" #: judge/admin/runtime.py:77 msgid "Description" @@ -381,99 +411,103 @@ msgstr "情報" msgid "Capabilities" msgstr "機能" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "なし" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "未完了" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "例外" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "合格しなかった" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "含まれる課題" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "これらの課題は、この課題グループに含まれている" +msgid "These problems are included in this group of problems." +msgstr "これらの課題は、この課題グループに含まれている。" #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "これらの課題は、この課題タイプに含まれている" +msgid "These problems are included in this type of problems." +msgstr "これらの課題は、この課題タイプに含まれている。" #: judge/apps.py:8 msgid "Online Judge" @@ -487,11 +521,11 @@ msgstr "コメント本文" msgid "Your part is silent, little toad." msgstr "お黙り、ヒキガエル。" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "コメントを書くには、少なくとも1度は課題を解く必要があります。" +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "投稿されたコメント" @@ -574,20 +608,21 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "二要素認証のトークンは{TOTP_CODE_LENGTH}桁の数字でなければなりません。" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "二要素認証のトークンは{count}桁の数字でなければなりません。" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -603,91 +638,93 @@ msgstr "実験的な機能を有効化する" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "あなたは{count}個以上の公開組織に参加できない場合があります。" +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "結果で絞り込む:" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "利用者名" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "パスワード" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "課題のコードは ^[a-z0-9]+$ でなければなりません" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "このコードを使用している問題はすでに存在しています。" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "コンテスト id は ^[a-z0-9]+$ でなければなりません" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "同じキーを持つコンテストはすでに存在しています。" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "Y年n月j日 G:i" @@ -749,9 +786,9 @@ msgstr "投票" msgid "body of comment" msgstr "コメント本文" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "コメントを非表示にする" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "非表示" #: judge/models/comment.py:48 msgid "parent" @@ -766,7 +803,7 @@ msgid "comments" msgstr "コメント" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "%s の論説" @@ -849,7 +886,7 @@ msgid "contest name" msgstr "コンテスト名" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "著者" @@ -857,7 +894,7 @@ msgstr "著者" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "キュレーター" @@ -865,7 +902,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "テスター" @@ -901,7 +938,7 @@ msgstr "" msgid "description" msgstr "説明" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "課題" @@ -914,12 +951,12 @@ msgstr "開始時刻" msgid "end time" msgstr "終了時刻" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "時間制限" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "公開されています" @@ -956,7 +993,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -971,85 +1008,85 @@ msgstr "コメントではなく解説システムを使う。" msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "全てを評価する" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "参加している全ての利用者を評価する。" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "評価から除外する" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "プライベートな参加者" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "課題のタグを非表示にする" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "課題タグをデフォルトで非表示にするかどうか。" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "予備テストのみ実行する" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "判定器が予備テストだけを採点するか、全てのテストケースを行なうか。一般的にはコンテスト中に設定し、コンテストが終了して利用者の提出物を再判定する前に解除する。" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "組織へプライベートにする" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "組織" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1061,7 +1098,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1069,15 +1106,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "OpenGraph 画像" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1092,7 +1130,7 @@ msgstr "ライブ参加者の人数" msgid "contest summary" msgstr "コンテスト概要" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "ソーシャルメディアなどのメタ説明タグに表示されるプレーンテキスト。" @@ -1105,7 +1143,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "感謝しない人" @@ -1169,7 +1207,7 @@ msgstr "全てのコンテストを編集する" msgid "Clone contest" msgstr "コンテストをクローンする" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSSコンテスト" @@ -1266,15 +1304,8 @@ msgstr "コンテスト参加者" msgid "contest participations" msgstr "コンテスト参加者" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "課題" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "点数" @@ -1314,7 +1345,7 @@ msgstr "コンテストの課題" msgid "contest problems" msgstr "コンテストの課題" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "提出" @@ -1370,6 +1401,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "鍵" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "値" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "構成項目" @@ -1410,7 +1449,7 @@ msgstr "投稿の題目" msgid "slug" msgstr "スラグ" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "一般公開" @@ -1430,10 +1469,6 @@ msgstr "投稿内容" msgid "post summary" msgstr "投稿の概要" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "openGraph 画像" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "すべての投稿を編集する" @@ -1450,337 +1485,374 @@ msgstr "ブログ投稿" msgid "blog posts" msgstr "ブログ投稿" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "課題分類 ID" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "課題分類名" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "課題のタイプ" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "課題のタイプ" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "課題のグループ ID" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "課題のグループ名" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "課題グループ" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "課題グループ" -#: judge/models/problem.py:61 -msgid "key" -msgstr "鍵" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "リンク" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "氏名" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "短縮名" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "このライセンスの下でページに表示される" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." +msgstr "このライセンスの下でページに表示される。" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "アイコン" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "アイコンへの URL" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "アイコンへの URL。" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "ライセンス本文" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "ライセンス" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "ライセンス" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "課題のコード" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" -msgstr "問題に対する短くて唯一なコード、URL で /problem/ の後に使用される" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" +msgstr "問題に対する短くて唯一なコード、URL で /problem/ の後に使用される。" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "課題名" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "課題本文" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "作成者" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "この課題の秒単位での制限時間。小数秒(例えば1.5)はサポートされています。" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "メモリ制限" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "この課題のメモリ制限、キロバイト単位(例えば 64 mb = 65536 キロバイト)。" +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." +msgstr "この課題のメモリ制限、キロバイト単位(例えば 256 mb = 262144 キロバイト)。" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "短絡" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "部分点を許す" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "許可されている言語" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "手動で管理されている" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "発行年月日" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" -msgstr "下位互換性を保つのために自動発行する魔法のような能力は持ちません" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." +msgstr "下位互換性を保つのために自動発行する魔法のような能力は持ちません。" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "課題の概要" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "課題を複製する" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "言語" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "翻訳された名前" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "翻訳された説明" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "翻訳された課題" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "翻訳された課題" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "解説された課題" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "解説本文" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "解説のタイムスタンプ" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "言語固有のリソース制限" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "言語固有のリソース制限" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "関連する課題" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "発行日" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "編集内容" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "解答" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "解答" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "投票者" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "メモ" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "課題投票" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "課題投票" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "標準" @@ -1821,11 +1893,11 @@ msgstr "データの zip ファイル" msgid "generator file" msgstr "ジェネレータファイル" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "出力プレフィクス長" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "出力制限長" @@ -1833,59 +1905,67 @@ msgstr "出力制限長" msgid "init.yml generation feedback" msgstr "init.yml 生成のフィードバック" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "チェッカー" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "チェッカー引数" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" -msgstr "JSON オブジェクトとしてのチェッカー引数" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." +msgstr "JSON オブジェクトとしてのチェッカー引数。" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "課題データセット" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "ケースの位置" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "ケースのタイプ" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "標準のケース" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "バッチ開始" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "バッチ終了" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "入力ファイル名" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "出力ファイル名" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "ジェネレーターの引数" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "点数" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "予備テストのケースか?" @@ -1898,12 +1978,12 @@ msgid "organization slug" msgstr "組織のスラグ" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "URLに表示する組織名" +msgid "Organization name shown in URLs." +msgstr "URLに表示する組織名。" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "コンテスト中に利用者名の横に表示されます" +msgid "Displayed beside user name during contests." +msgstr "コンテスト中に利用者名の横に表示されます。" #: judge/models/profile.py:47 msgid "organization description" @@ -1914,8 +1994,8 @@ msgid "administrators" msgstr "管理者" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "この組織を編集できる人" +msgid "Those who can edit this organization." +msgstr "この組織を編集できる人。" #: judge/models/profile.py:50 msgid "creation date" @@ -1926,20 +2006,20 @@ msgid "is open organization?" msgstr "オープンな組織か?" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "組織への参加を許可する" +msgid "Allow joining organization." +msgstr "組織への参加を許可する。" #: judge/models/profile.py:53 msgid "maximum size" msgstr "最大サイズ" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "この組織の最大利用者数、プライベートな組織にのみ適用される" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "この組織の最大利用者数、プライベートな組織にのみ適用される。" -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "学生のアクセスコード" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "学生のアクセスコード。" #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1950,11 +2030,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1966,12 +2046,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "組織" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1983,7 +2063,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -1994,12 +2074,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "学生のアクセスコード" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2011,7 +2087,7 @@ msgstr "メンバー" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2024,8 +2100,8 @@ msgid "self-description" msgstr "自己紹介" #: judge/models/profile.py:150 -msgid "location" -msgstr "位置" +msgid "time zone" +msgstr "時間帯" #: judge/models/profile.py:152 msgid "preferred language" @@ -2055,8 +2131,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2082,163 +2158,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 +msgid "banned from voting on problem point values" +msgstr "" + +#: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 msgid "user script" msgstr "利用者スクリプト" -#: judge/models/profile.py:173 +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "サイトのカスタマイズするためのユーザー定義 JavaScript。" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "現在のコンテスト" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "数式エンジン" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "数式の表示に使用されるレンダリングエンジン" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." +msgstr "数式の表示に使用されるレンダリングエンジン。" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "内部メモ" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "ユーザープロフィール" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "ユーザープロフィール" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "要求時刻" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "状態" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "保留中" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "承認済" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "却下された" + +#: judge/models/profile.py:372 msgid "reason" msgstr "理由" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "組織への参加要求" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "組織への参加要求" @@ -2267,7 +2363,7 @@ msgid "common name" msgstr "一般名" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "言語の一般名。例えばC++03、C++11、C++14の一般名は\"C++\"です。" #: judge/models/runtime.py:32 @@ -2347,16 +2443,16 @@ msgid "judge name" msgstr "判定器名" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" -msgstr "サーバー名、ホスト名形式" +msgid "Server name, hostname-style." +msgstr "サーバー名、ホスト名形式。" #: judge/models/runtime.py:126 msgid "time of creation" msgstr "作成日" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" -msgstr "この判定器を認証する鍵" +msgid "A key to authenticate this judge." +msgstr "この判定器を認証する鍵。" #: judge/models/runtime.py:128 msgid "authentication key" @@ -2440,8 +2536,8 @@ msgstr "コンパイルエラー" msgid "Internal Error" msgstr "内部エラー" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "短絡" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2465,10 +2561,6 @@ msgstr "採点中" msgid "Completed" msgstr "完了" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "短絡" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "内部エラー(判定サーバエラー)" @@ -2477,15 +2569,15 @@ msgstr "内部エラー(判定サーバエラー)" msgid "submission time" msgstr "提出時刻" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "実行時間" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "メモリ使用量" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "付与された点数" @@ -2537,97 +2629,97 @@ msgstr "予備テストのみ実行された" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "提出" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "関連する提出物" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "ソースコード" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "提出ソース" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "提出ソース" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "テストケースの ID" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "状態フラグ" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "可能な点数" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "バッチ番号" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "判定のフィードバック" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "プログラムの出力" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "提出テストケース" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "提出テストケース" @@ -2675,10 +2767,6 @@ msgstr "チケット" msgid "tickets" msgstr "チケット" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "投稿者" - #: judge/models/ticket.py:34 msgid "message body" msgstr "メッセージ本文" @@ -2787,8 +2875,8 @@ msgstr "ケース #%d のバッチ開始には点数が必要です。" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" -msgstr "ケース #%d の外でバッチの終了を試みる" +msgid "Attempt to end batch outside of one in case #%d." +msgstr "ケース #%d の外でバッチの終了を試みる。" #: judge/utils/problem_data.py:154 msgid "How did you corrupt the zip path?" @@ -2810,10 +2898,6 @@ msgstr "" msgid "Error" msgstr "エラー" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "問合せセットと絞り込みキーワードの両方は渡せません" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2850,7 +2934,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "投稿のページ %d" @@ -2875,7 +2959,7 @@ msgstr "" msgid "You already voted." msgstr "あなたは既に投票しました。" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "サイトから編集された" @@ -2950,62 +3034,58 @@ msgstr "\"%s\" のアクセスコードを入力してください" msgid "You are not in contest \"%s\"." msgstr "あなたはコンテストに参加していません: \"%s\"。" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "ContestCalendarは整数の年と月が必要です" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "%(month)sのコンテスト" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "Y年n月" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "%s 順位表" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "???" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" -msgstr "あなたの %s への参加" +msgid "Your participation in %(contest)s" +msgstr "あなたの %(contest)s への参加" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" -msgstr "%s の %s への参加" +msgid "%(user)s's participation in %(contest)s" +msgstr "%(user)s の %(contest)s への参加" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "ライブ" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "参加" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "コンテストタグ: %s" @@ -3029,7 +3109,7 @@ msgstr "%s への許可がありません" msgid "corrupt page %s" msgstr "破損ページ %s" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "ランタイム" @@ -3052,205 +3132,227 @@ msgstr "このような組織を見つけることができませんでした。 msgid "Organizations" msgstr "組織" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "%s のメンバー" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "所属している組織" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "あなたは、既にこの組織にしょぞくしています。" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "この組織は公開ではありません。" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "組織から脱退する" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "あなたは \"%s\" に所属していません。" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "%s への参加を申し込む" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "参加申込みの詳細" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "%s への参加申込みを管理する" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "あなたの組織はあと%d人のメンバーしか受け入れられません。あなたは%d人の利用者を承認できません。" +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:303 +#: judge/views/organization.py:297 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "あなたは%d人の利用者を承認できません。" + +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "%d人の利用者を承認しました。" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "%d人の利用者を拒否しました。" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "%s を編集" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "組織を編集できません" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "あなたは、この組織を編集することは許可されていません。" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "あなたはこの組織から人を追い出すことを許可されていません。" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "利用者を追い出せません" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "あなたが追い出そうとしている利用者は存在しません!" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "あなたが追い出そうとしているユーザは組織内にいません: %s" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "そのような課題はありません" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "コード \"%s\" を有する課題は見つかりませんでした。" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "{0} の論説" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "そのような論説はありません" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "コード \"%s\" を有する論説は見つかりませんでした。" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "課題" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "提出が禁止された" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "提出物が多過ぎます" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "あなたは、この課題の提出制限を超えました。" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "課題を複製する" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" -msgstr "チェッカー引数は JSON オブジェクトでなければなりません" +msgid "Checker arguments must be a JSON object." +msgstr "チェッカー引数は JSON オブジェクトでなければなりません。" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" -msgstr "チェッカー引数は不正な JSON です" +msgid "Checker arguments is invalid JSON." +msgstr "チェッカー引数は不正な JSON です。" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "あなたの zip ファイルは不正です!" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "{0} への提出物の比較" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "{0} のデータの編集" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "%s のデータの編集" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "%s への生成された init.yml" @@ -3292,8 +3394,8 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "%(contest)s の課題 %(number)s への最優秀解答" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" -msgstr "利用者名は文字、数字またはアンダースコアを含めることができます" +msgid "A username must contain letters, numbers, or underscores." +msgstr "利用者名は文字、数字またはアンダースコアを含めることができます。" #: judge/views/register.py:30 msgid "Preferred language" @@ -3312,15 +3414,15 @@ msgstr "電子メールアドレス \"%s\" は既に使用されています。1 msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "あなたの電子メールプロバイダは不正利用の履歴のため許可されていません。信頼できる電子メールプロバイダを利用してください。" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "登録" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "認証の失敗" @@ -3332,7 +3434,7 @@ msgstr "その他" msgid "Language statistics" msgstr "言語の統計" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "状態" @@ -3358,59 +3460,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "%(user)s による %(problem)s への提出物" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "全ての提出物" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "私の全ての提出物" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "%s による全ての提出物" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "%s への全ての提出物" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "課題を通過しなければなりません" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "%(problem)s への私の提出物" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "%(problem)s への %(user)s による提出物" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "コンテストを通過しなければなりません" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "{contest} 中の {problem} への {user} による提出物" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "{contest} 中の課題 {number} への {user} による提出物" @@ -3519,52 +3613,47 @@ msgstr "ログイン" msgid "M j, Y, G:i" msgstr "Y年n月j日 G:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "サイトで更新された" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "プロフィールを編集する" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "リーダーボード" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "不正な上流データ: %s" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" -msgstr "悪い緯度または経度です" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." +msgstr "" #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" @@ -3589,68 +3678,64 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" -msgstr "提出物を表示する" - -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 msgid "View submissions" msgstr "提出物を表示する" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" +msgstr "" + #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 msgid "Edit user" msgstr "利用者を編集する" -#: 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:80 -msgid "Rejudge" -msgstr "再判定" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "こんにちは、%(username)s。" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "なりすましを停止する" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "ログアウト" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "ログイン" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "または" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "観戦中" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "このサイトはJavaScriptを有効にすると最適に動作します。" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "編集" @@ -3682,39 +3767,53 @@ msgstr "{time}に投稿された" msgid "posted {time}" msgstr "{time}に投稿された" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "解説" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "現時点では何も解説されていません。" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "開催中のコンテスト" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "近日開催予定のコンテスト" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "コメントストリーム" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "新しい課題" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "私のオープンチケット" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "新しいチケット" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "コメント" @@ -3737,7 +3836,7 @@ msgstr "{time}にコメントされた" msgid "edit %(edits)s" msgstr "%(edits)sを編集する" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "編集された" @@ -3745,64 +3844,90 @@ msgstr "編集された" msgid "Link" msgstr "リンク" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "返信" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "投票" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "非表示" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "現時点でコメントはありません。" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "新しいコメント" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "不正なコメント本文。" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "投稿!" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "{edits}を編集する" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "オリジナル" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "投票者" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "得点" @@ -3810,6 +3935,18 @@ msgstr "得点" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "不正なアクセスコード。" @@ -3874,12 +4011,12 @@ msgstr "次へ" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "一覧" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "カレンダー" @@ -3887,7 +4024,7 @@ msgstr "カレンダー" msgid "Info" msgstr "情報" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "統計" @@ -3912,7 +4049,7 @@ msgstr "" msgid "Leave contest" msgstr "コンテストから脱退する" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "仮想参加" @@ -3929,7 +4066,7 @@ msgstr "コンテストに参加する" msgid "Spectate contest" msgstr "コンテストを観戦する" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3937,6 +4074,16 @@ msgstr "" msgid "Log in to participate" msgstr "参加するためにログインする" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "仮想的に参加している。" @@ -3945,6 +4092,21 @@ msgstr "仮想的に参加している。" msgid "Contest is over." msgstr "コンテストは終了しました。" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "Y年n月j日 G:i T" @@ -4072,9 +4234,9 @@ msgstr "" msgid "AC Rate" msgstr "受理率" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "利用者" @@ -4082,7 +4244,7 @@ msgstr "利用者" msgid "Editorials" msgstr "論説" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "論説" @@ -4095,49 +4257,62 @@ msgstr "あなたは本当に参加したいですか?" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "コンテストに参加するとあなたのタイマーがスタートし、その後は止められなくなります。" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" -msgstr "" +msgstr "プライベート" #: templates/contest/list.html:89 msgid "rated" +msgstr "評価" + +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "%(time_limit)s 窓" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "参加する" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "観戦する" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "コンテスト" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "開催中のコンテスト" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "近日開催予定のコンテスト" +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "現在スケジュールされているコンテストはありません。" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "過去のコンテスト" #: templates/contest/media-js.html:4 @@ -4158,22 +4333,28 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "%(count)s個の提出" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4227,19 +4408,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "利用者の参加を見る" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "組織を表示する" @@ -4260,8 +4441,8 @@ msgid "Language AC Rate" msgstr "言語の受理割合" #: templates/license.html:12 -msgid "Source:" -msgstr "ソース:" +msgid "Visit source" +msgstr "" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4426,7 +4607,7 @@ msgid "There are no requests to approve." msgstr "承認するための要求がありません。" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "削除しますか?" @@ -4439,25 +4620,13 @@ msgid "Your reason for joining:" msgstr "参加するためのあなたの理由:" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "要求" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "保留中" +msgid "Request!" +msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "ログ" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "承認済" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "却下された" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "追い出す" @@ -4474,55 +4643,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "YAML を見る" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "カラムを表示:" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "出力プレフィクス" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "出力制限" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "チェッカー" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "ジェネレータの引数" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "タイプ" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "入力ファイル" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "出力ファイル" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "事前テストか?" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "提出!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "新しいケースを追加する" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4534,7 +4707,7 @@ msgstr "この論説は、つまずいた時に**限って**使用し、ここ msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "自身で課題を解く前に公式の解答を提出することは禁止されています。" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "著者:" @@ -4543,20 +4716,20 @@ msgstr[0] "著者:" msgid "Filter by type..." msgstr "タイプで絞り込む..." -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "ホットな課題" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "カテゴリ" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "タイプ" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "受理 %%" @@ -4620,113 +4793,128 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "PDF として表示する" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "解答を提出する" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "%(counter)s個の提出物が残っています" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "提出物が残っていません" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "私の提出物" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "最優秀提出物" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "論説を読む" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "チケットを管理する" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "課題を編集する" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "テストデータを編集する" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "私のチケット" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "提出物を管理する" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "点数:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "(部分点)" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "制限時間:" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "メモリ制限:" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "課題のタイプ" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "許可されている言語" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "%(lang)s はオンライン判定されません" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "判定器:" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "解説を要求する" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "問題を報告する" @@ -4775,8 +4963,8 @@ msgstr "課題のタイプ" msgid "Point range" msgstr "点数の範囲" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "実行する" @@ -4811,6 +4999,54 @@ msgstr "あなたには提出物が残っていません" msgid "No judge is available for this problem." msgstr "この課題は判定器が利用可能ではありません。" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4820,6 +5056,48 @@ msgstr "%(key)s は無効な有効化鍵です。" msgid "Your account has been successfully activated." msgstr "あなたのアカウントは正常に有効化されました。" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "不正な利用者名またはパスワードです。" @@ -4866,7 +5144,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "あなたのパスワードが設定されています。先に進んで今すぐログイン。" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "パスワードをリセットする" @@ -4882,22 +5159,19 @@ msgstr "パスワードを設定する手順をあなた宛に電子メールで 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 "もし電子メールが届かなければ、あなたが登録時に入力したアドレスを確認し、迷惑メールフォルダをチェックしてください。" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." -msgstr "" - -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4927,7 +5201,7 @@ msgstr "%(site_name)s チーム" msgid "Password reset on %(site_name)s" msgstr "%(site_name)s のパスワードをリセットする" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "続行 >" @@ -4940,41 +5214,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "(もう1度、確認のため)" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "(最寄りの大都市を選択してください)" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "地図から選ぶ" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "デフォルトの言語" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "所属組織" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "まもなく開催予定のコンテストを通知する" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "登録することで、あなたは同意することになります" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "利用規約・条件" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "登録!" @@ -4983,7 +5252,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5015,14 +5285,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5031,6 +5304,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5040,7 +5314,7 @@ msgstr "" #: templates/registration/totp_enable.html:108 msgid "Important" -msgstr "" +msgstr "重要" #: templates/registration/totp_enable.html:109 #, python-format @@ -5048,19 +5322,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5086,38 +5356,38 @@ msgstr "提出物の統計" msgid "AC Submissions by Language" msgstr "言語ごとの受理された提出物" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "判定器" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "オンライン" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "稼働時間" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "ピン" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "負荷" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "該当なし" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "現在利用できる判定器はありません。" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "ID" @@ -5150,23 +5420,27 @@ msgstr "採点中に内部エラーが発生しました。" msgid "Error information" msgstr "エラー情報" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "状態で絞り込む..." -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "言語で絞り込む..." -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "提出物を絞り込む" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "合計:" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "あなたは切断されました。最終更新を表示するためにリフレッシュして下さい。" @@ -5232,20 +5506,24 @@ msgid "Execution Results" msgstr "実行結果" #: templates/submission/status-testcases.html:51 -msgid "Batch " -msgstr "バッチ" +#, python-format +msgid "Batch #%(id)d" +msgstr "バッチ #%(id)d" #: templates/submission/status-testcases.html:64 -msgid "Case" -msgstr "ケース" +#, python-format +msgid "Case #%(id)d:" +msgstr "ケース #%(id)d:" #: templates/submission/status-testcases.html:66 -msgid "Pretest" -msgstr "事前テスト" +#, python-format +msgid "Pretest #%(id)d:" +msgstr "事前テスト #%(id)d:" #: templates/submission/status-testcases.html:68 -msgid "Test case" -msgstr "テストケース" +#, python-format +msgid "Test case #%(id)d:" +msgstr "テストケース #%(id)d:" #: templates/submission/status-testcases.html:101 msgid "Your output (clipped)" @@ -5289,11 +5567,11 @@ msgstr "提出が中断された!" msgid "View source" msgstr "ソースを表示する" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "中断する" @@ -5310,40 +5588,40 @@ msgstr "最優秀" msgid "%(user)s's" msgstr "%(user)s" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "再オープンしました: " -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "閉じられました: " -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "デスクトップ通知を利用する" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "閉じたチケットを非表示にする" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "私のチケットだけを表示する" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "利用者を埋める" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "担当者" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "題目" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "担当者" @@ -5365,31 +5643,32 @@ msgstr "チケットを開いてくれてありがとう!" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "このフォームは課題設定の問題を報告するためのものであり、助けを求めるためのものではないことを心に留めてください。課題を解くのに援助が必要な場合は、代わりにコメントで尋ねて下さい。" -#: templates/ticket/ticket.html:356 -msgid "Post" -msgstr "投稿する" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" +msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "関連するオブジェクト" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "誰も割り当てられていません。" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "チケットを閉じる" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "チケットを再度開く" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "担当者メモ" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "何もありません。" @@ -5397,141 +5676,163 @@ msgstr "何もありません。" msgid "Rank" msgstr "ランク" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "ハンドルで検索..." -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" -msgstr "自己紹介" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:278 +msgid "Self-description:" +msgstr "" + +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "最寄りの大都市を選択してください" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" -msgstr "エディタのテーマ" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "数式エンジン" +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" +msgstr "" + +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "アバターを変更する" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "パスワードを変更する" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" -msgstr "" +msgstr "非表示" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" -msgstr "利用者スクリプト" +#: templates/user/edit-profile.html:436 +msgid "User-script:" +msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "プロフィールの更新" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "%(pp).1fpp" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" -msgstr "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" +msgstr "重み%(percent)s(%(pp)spp)" #: templates/user/prepare-data.html:64 msgid "Are you sure you want to prepare a download?" @@ -5545,31 +5846,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "提出" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5631,45 +5942,41 @@ msgstr "" #: templates/user/user-about.html:112 msgid "Rating history" -msgstr "" +msgstr "評価履歴" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "%(counter)s個の課題を解いた" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "点数による順位:" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "合計点:" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "%(counter)s個のコンテストに参加した" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "評価による順位:" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "評価:" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "最小の評価:" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "最大の評価:" @@ -5693,12 +6000,12 @@ msgstr "作成された課題" msgid "Hide problems I've solved" msgstr "自分が解いた課題を非表示にする" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" -msgstr "%(points).1f 点" +msgid "%(group)s (%(val)s points)" +msgstr "%(group)s(%(val)s 点)" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "%(points)s / %(total)s" diff --git a/locale/ja/LC_MESSAGES/djangojs.po b/locale/ja/LC_MESSAGES/djangojs.po index e5a8e1472f..688b1a1fe2 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -17,14 +17,61 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" + +#: resources/user_profile.js:69 +msgid "%(cnt)d submission in the last year" +msgid_plural "%(cnt)d submissions in the last year" +msgstr[0] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" + diff --git a/locale/ko/LC_MESSAGES/django.po b/locale/ko/LC_MESSAGES/django.po index db112f90a7..24e4e892e1 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-21 00:47\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "카탈루냐어" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "독일어" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "그리스어" + +#: dmoj/settings.py:384 msgid "English" msgstr "영어" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "스페인어" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "프랑스어" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "크로아티아어" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "헝가리어" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "일본어" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "한국어" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "포르투갈어 (브라질)" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "루마니아어" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "러시아어" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "세르비아어(라틴문자)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "터키어" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "베트남어" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "중국어(간체)" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "중국어(번체)" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "메인" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "내용" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -130,12 +138,25 @@ msgid "Included contests" msgstr "포함된 대회" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "문제" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "문제" + +#: judge/admin/contest.py:77 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 "재체점" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "설정" @@ -160,7 +181,7 @@ msgstr "순위" msgid "Access" msgstr "접근" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "정의" @@ -204,7 +225,7 @@ msgstr[0] "%d개의 대회가 해제되었습니다." msgid "Unlock contest submissions" msgstr "콘테스트 답안제출 허용" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -224,7 +245,7 @@ msgstr "결과 초기화" msgid "username" msgstr "사용자 이름" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "가상" @@ -232,17 +253,14 @@ msgstr "가상" msgid "link path" msgstr "링크 경로" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "내용" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "요약" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "사용자" @@ -250,100 +268,106 @@ msgstr "사용자" msgid "object" msgstr "개체" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "사이트에서 보기" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "변경 사항을 설명하세요. (선택사항)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "SNS" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "분류" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "포인트" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "제한" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "언어" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "히스토리" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "저자" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "%d개의 문제 게시일이 성공적으로 갱신되었습니다." -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "게시일을 지금으로 하기" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "%d개의 문제가 공개로 전환되었습니다." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "공개로 설정" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "%d개의 문제가 비공개로 전환되었습니다." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "문제" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "사용자" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "이메일" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "시간대" @@ -353,8 +377,8 @@ msgstr "가입한 날짜" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "%d명의 사용자 점수가 재계산되었습니다." #: judge/admin/profile.py:123 @@ -366,8 +390,14 @@ msgid "Disallowed problems" msgstr "허가되지 않은 문제" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "이 문제는 이 언어로는 제출이 불가합니다" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "이 문제는 이 언어로는 제출이 불가합니다." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "재생성" #: judge/admin/runtime.py:77 msgid "Description" @@ -381,99 +411,103 @@ msgstr "정보" msgid "Capabilities" msgstr "기능" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "없음" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "완료되지 않음" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "예외" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "틀림" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "포함된 문제" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "이 문제들은 그룹에 포함되어 있습니다" +msgid "These problems are included in this group of problems." +msgstr "이 문제들은 그룹에 포함되어 있습니다." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "이 문제들은 이러한 문제 유형에 포함되어 있습니다" +msgid "These problems are included in this type of problems." +msgstr "이 문제들은 이러한 문제 유형에 포함되어 있습니다." #: judge/apps.py:8 msgid "Online Judge" @@ -487,11 +521,11 @@ msgstr "코멘트 본문" msgid "Your part is silent, little toad." msgstr "침묵하세요." -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "최소 1개 이상의 문제를 해결해야 합니다." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "게시된 코멘트" @@ -574,20 +608,21 @@ msgstr "동점은 점수가 0이 아닌 문제의 변경 제출 시간의 마지 msgid "IOI (pre-2016)" msgstr "IOI (pre-2016)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "2단계 인증 토큰은 십진수 {TOTP_CODE_LENGTH}자리여야 합니다." +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "2단계 인증 토큰은 십진수 {count}자리여야 합니다." -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "잘못된 이중 인증 토큰입니다." -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." -msgstr "스크래치 코드는 16 base32 문자여야 합니다." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." +msgstr "스크래치 코드는 16 Base32 문자여야 합니다." -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "유효하지 않은 접근 코드입니다." @@ -603,91 +638,93 @@ msgstr "베타 기능 활성화" msgid "You must solve at least one problem before you can update your profile." msgstr "프로필을 업데이트하고 싶다면 최소한 한 문제를 먼저 풀어야 합니다." -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "{count}개보다 많은 공개 조직에 소속될 수 없습니다." +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "주석을 다운로드하시겠습니까?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "제출물을 다운로드하시겠습니까?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "문제 코드로 필터링:" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "모든 제출물을 포함하려면 비워 둡니다" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "결과 필터링:" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "다운 받을 것을 최소 한 개 선택해주세요." -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "모든 judge" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "사용자 이름" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "비밀번호" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "잘못된 코드 길이입니다." -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "잘못된 WebAuthn 응답입니다." -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "WebAuthn 챌린지가 발행되지 않았습니다." -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "잘못된 WebAuthn 자격 증명 ID입니다." -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "잘못된 2단계 인증 토큰 또는 접근 코드입니다." -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "totp_token 또는 webauthn_response를 지정해야 합니다." -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "문제 코드는 ^[a-z0-9]+$ 이어야 합니다" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "코드에 문제가 이미 있습니다." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "대회 아이디 ^[a-z0-9]+$ 이어야 합니다" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "키가 있는 콘테스트가 이미 존재합니다." #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "Y년 n월 j일 a g시 i분" @@ -749,9 +786,9 @@ msgstr "표" msgid "body of comment" msgstr "코멘트 본문" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "코멘트 숨기기" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "숨김" #: judge/models/comment.py:48 msgid "parent" @@ -766,7 +803,7 @@ msgid "comments" msgstr "코멘트" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "%s에 대한 편집" @@ -849,7 +886,7 @@ msgid "contest name" msgstr "대회 이름" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "저자" @@ -857,7 +894,7 @@ msgstr "저자" msgid "These users will be able to edit the contest." msgstr "이 사용자들은 대회를 편집할 권한이 있습니다." -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "curators" @@ -865,7 +902,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "testers" @@ -901,7 +938,7 @@ msgstr "" msgid "description" msgstr "설명" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "문제" @@ -914,12 +951,12 @@ msgstr "시작 시각" msgid "end time" msgstr "종료 시각" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "시간 제한" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "공개" @@ -956,8 +993,8 @@ msgid "scoreboard visibility" msgstr "점수표 보이기" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" -msgstr "대회 기간 동안 스코어보드 가시성" +msgid "Scoreboard visibility through the duration of the contest." +msgstr "대회 기간 동안 스코어보드 가시성." #: judge/models/contest.py:109 msgid "no comments" @@ -971,85 +1008,85 @@ msgstr "코멘트 대신 수정 시스템을 사용하세요." msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" -msgstr "대회 랭킹 순위" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." +msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" -msgstr "콘테스트 등급 상한선" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." +msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "모든 순위" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "참가한 모든 사용자에 대한 순위." -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "순위에서 제외" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "특정 사용자에게만 비공개" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "개인 참가자" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "문제 태그 숨기기" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "문제 태그 공개 여부 기본값." -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "문제 저자 숨기기" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "문제 작성자를 기본적으로 숨겨야 하는지 여부입니다." -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "pretests만 실행" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "judge가 pretests만 채점할지, 모든 테스트 데이터를 채점할지 여부. 일반적으로 대회 종료전까지 설정 후 대회 종료 후 해제하여 모든 테스트 케이스 채점 진행." -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "짧은 형식 설정 표시" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "컨테스트 페이지에 컨테스트 설정이 포함된 섹션을 표시할지 여부입니다." -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "조직에 비공개" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "조직" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1061,7 +1098,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1069,15 +1106,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "OpenGraph 이미지" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "이미지 중첩 로고" #: judge/models/contest.py:151 @@ -1092,7 +1130,7 @@ msgstr "현재 접속되어 있는 참가자 수" msgid "contest summary" msgstr "대회 요약" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "메타 설명 태그에 표시되는 일반 텍스트(예: 소셜 미디어용)." @@ -1105,7 +1143,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "해당 인물 없음" @@ -1169,7 +1207,7 @@ msgstr "모든 콘테스트 편집" msgid "Clone contest" msgstr "콘테스트 복사" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS 콘테스트" @@ -1266,15 +1304,8 @@ msgstr "대회 참가" msgid "contest participations" msgstr "대회 참가자" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "문제" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "점수" @@ -1314,7 +1345,7 @@ msgstr "대회 문제" msgid "contest problems" msgstr "대회 문제" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "제출" @@ -1370,6 +1401,14 @@ msgstr "대회 코드 카피 체크 결과" msgid "contest moss results" msgstr "대회 코드 카피 체크 결과" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "키" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "값" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "설정 항목" @@ -1410,7 +1449,7 @@ msgstr "게시물 제목" msgid "slug" msgstr "slug" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "공개 여부" @@ -1430,10 +1469,6 @@ msgstr "게시물 내용" msgid "post summary" msgstr "게시물 요약" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "openGraph 이미지" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "모든 게시물 수정" @@ -1450,337 +1485,374 @@ msgstr "블로그 게시물" msgid "blog posts" msgstr "블로그 게시물" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "허가되지 않은 문자열: %(value)s" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "문제 범주 ID" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "문제 범주 이름" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "문제 유형" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "문제 유형" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "문제 그룹 ID" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "문제 그룹" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "문제 그룹" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "문제 그룹" -#: judge/models/problem.py:61 -msgid "key" -msgstr "키" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "링크" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "전체 이름" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "짧은 이름" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "이 라이센스에 의해 표시됨" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." +msgstr "이 라이센스에 의해 표시됨." -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "아이콘" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "아이콘 URL" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "아이콘 URL." -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "라이센스 내용" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "라이센스" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "라이센스" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "전역 설정 따르기" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "항상 보이기" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "문제가 해결됬을 경우 보이기" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "자신의 제출물만" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "문제 코드" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" -msgstr "/problem/ 뒤의 url에서 사용되는 문제에 대한 짧고 고유한 코드" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" +msgstr "/problem/ 뒤의 URL에서 사용되는 문제에 대한 짧고 고유한 코드." -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "문제 이름" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "문제 목록에 표시된 문제의 전체 이름입니다." -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "문제 본문" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "제작자" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "이러한 사용자는 문제를 편집할 수 있고 작성자로 나열됩니다." -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "이러한 사용자는 문제를 편집할 수 있고, 작성자로 나열됩니다." -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "이러한 사용자는 비공개 문제를 볼 수 있지만 편집할 수는 없습니다." -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "문제 페이지에 표시된 문제 유형입니다." -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "문제 목록의 범주 아래에 표시된 문제 그룹입니다." -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "이 문제의 시간 제한(초)입니다. 소수 자릿수 초(예: 1.5)가 지원됩니다." -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "메모리 제한" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "이 문제에 대한 메모리 제한(KB)입니다(예: 64mb = 65536KB)." +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." +msgstr "이 문제에 대한 메모리 제한(KB)입니다(예: 256mb = 262144KB)." -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "문제 완료에 대해 부여된 점수입니다. 부분적인 경우 점은 'p' 접미사로 표시됩니다." -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "부분 점수 허용" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "허용된 언어" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "허용된 제출 언어 목록입니다." -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "수동으로 관리됨" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "심사위원의 데이터 관리 허용 여부." -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "게시 날짜" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" -msgstr "이전 버전과의 호환성으로 인해 자동 게시하는 마법의 기능이 없습니다" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." +msgstr "이전 버전과의 호환성으로 인해 자동 게시하는 마법의 기능이 없습니다." -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "선택한 사용자가 이 문제를 제출하는 것을 금지합니다." -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "이 문제가 게시되는 라이선스입니다." -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "문제 요약" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "유저 수" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "문제를 해결한 사용자 수입니다." -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "정답률" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "전체 마크다운 액세스 허용" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "제출 소스 가시성" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "비공개로 설정 시, 이 조직들만 문제를 볼 수 있습니다." -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "숨겨진 문제들 보이기" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "문제 수정" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "모든 문제 수정" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "모든 공개 문제 수정" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "전체 마크업 문제 수정" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "문제 복사" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "is_public 필드 변경" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "is_manually_managed 필드 변경" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "조직에게만 공개된 문제들 보기" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "언어" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "번역된 이름" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "번역된 설명" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "문제 번역" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "문제 번역" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "수정된 문제" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "수정사항" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "수정 타임스탬프" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "특정 언어 리소스 제한" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "특정 언어 리소스 제한" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "관련된 문제" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "게시일" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "편집 내용" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "숨겨진 솔루션 보기" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "솔루션" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "솔루션" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "투표자" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "노트" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "문제 투표" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "문제 투표" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "표준" @@ -1821,11 +1893,11 @@ msgstr "채점 데이터 파일" msgid "generator file" msgstr "generator 파일" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "출력 접두사 길이" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "출력 길이 제한" @@ -1833,59 +1905,67 @@ msgstr "출력 길이 제한" msgid "init.yml generation feedback" msgstr "init.yml generation 피드백" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "검사기" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "검사기의 인자" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" -msgstr "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." +msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "채점 데이터" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "case position" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "데이터 유형" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "일반 테스트 케이스" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "Batch 시작" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "Batch 종료" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "입력 파일 이름" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "출력 파일 이름" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "생성자 인자" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "점수 값" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "케이스가 사전 테스트입니까?" @@ -1898,12 +1978,12 @@ msgid "organization slug" msgstr "그룹 URL" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "URL에 표시된 조직 이름" +msgid "Organization name shown in URLs." +msgstr "URL에 표시된 조직 이름." #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "대회 동안 사용자 이름 옆에 표시됩니다" +msgid "Displayed beside user name during contests." +msgstr "대회 동안 사용자 이름 옆에 표시됩니다." #: judge/models/profile.py:47 msgid "organization description" @@ -1914,8 +1994,8 @@ msgid "administrators" msgstr "관리자" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "이 조직을 편집할 수 있는 사람" +msgid "Those who can edit this organization." +msgstr "이 조직을 편집할 수 있는 사람." #: judge/models/profile.py:50 msgid "creation date" @@ -1926,20 +2006,20 @@ msgid "is open organization?" msgstr "공개 조직인가?" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "조직 가입 허용" +msgid "Allow joining organization." +msgstr "조직 가입 허용." #: judge/models/profile.py:53 msgid "maximum size" msgstr "최대 크기" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "이 조직의 최대 인원수(비공개 조직에만 적용)" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "" -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "학생 엑세스 코드" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "학생 엑세스 코드." #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1950,11 +2030,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1966,12 +2046,12 @@ msgid "Edit all organizations" msgstr "조직 편집" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "조직" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1983,7 +2063,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -1994,12 +2074,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2011,7 +2087,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2024,8 +2100,8 @@ msgid "self-description" msgstr "자기소개" #: judge/models/profile.py:150 -msgid "location" -msgstr "위치" +msgid "time zone" +msgstr "시간대" #: judge/models/profile.py:152 msgid "preferred language" @@ -2055,8 +2131,8 @@ msgstr "일반 유저" msgid "Problem Setter" msgstr "문제 해결사" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2082,163 +2158,183 @@ msgid "User will not be ranked." msgstr "사용자는 순위가 매겨지지 않습니다." #: judge/models/profile.py:172 +msgid "banned from voting on problem point values" +msgstr "" + +#: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 msgid "user script" msgstr "사용자 스크립트" -#: judge/models/profile.py:173 +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "사이트 수정을 위한 사용자 자바스크립트입니다." -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "현재 대회" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "수학 엔진" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "수학을 렌더링하는 데 사용되는 렌더링 엔진" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." +msgstr "수학을 렌더링하는 데 사용되는 렌더링 엔진." -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "TOTP 2FA 활성화" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" -msgstr "TOTP 기반 이중 인증 활성화 확인" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." +msgstr "TOTP 기반 이중 인증 활성화 확인." -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn 2FA 사용" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" -msgstr "WebAuthn 기반 2단계 인증을 활성화하려면 체크" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." +msgstr "WebAuthn 기반 2단계 인증을 활성화하려면 체크." -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "TOTP 키" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" -msgstr "TOTP용 32자 base32 인코딩 키" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." +msgstr "TOTP용 32자 Base32 인코딩 키." -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" -msgstr "TOTP 키는 비어 있거나 base32 이어야 합니다" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." +msgstr "TOTP 키는 비어 있거나 Base32 이어야 합니다." -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "기본 코드" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" -msgstr "기본 코드용 16 글자 base32 인코딩 코드의 JSON 배열" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." +msgstr "기본 코드용 16 글자 Base32 인코딩 코드의 JSON 배열." -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" -msgstr "기본 코드는 비어있거나 base32 코드 글자의 JSON 배열이어야 합니다" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." +msgstr "기본 코드는 비어있거나 Base32 코드 글자의 JSON 배열이어야 합니다." -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "마지막 TOPT 타임 코드" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "API 토큰" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "마지막으로 데이터를 다운로드한 시간" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "사용자 프로파일" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "사용자 프로파일" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "공개 키" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "서명 카운터" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "요청 시간" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "상태" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "보류 중" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "승인됨" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "거절됨" + +#: judge/models/profile.py:372 msgid "reason" msgstr "이유" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "조직 가입 요청" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "조직 가입 요청" @@ -2267,8 +2363,8 @@ msgid "common name" msgstr "흔한 이름" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" -msgstr "이 언어의 흔한 이름(예를 들면 C++03, C++11, C++14의 경우 C++)" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." +msgstr "이 언어의 흔한 이름(예를 들면 C++03, C++11, C++14의 경우 C++)." #: judge/models/runtime.py:32 msgid "ace mode name" @@ -2347,15 +2443,15 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" -msgstr "서버 이름" +msgid "Server name, hostname-style." +msgstr "" #: judge/models/runtime.py:126 msgid "time of creation" msgstr "생성 날짜" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2440,9 +2536,9 @@ msgstr "컴파일 에러" msgid "Internal Error" msgstr "내부 에러" -#: judge/models/submission.py:31 -msgid "Short circuit" -msgstr "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" +msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 #: judge/models/submission.py:64 @@ -2465,10 +2561,6 @@ msgstr "채점중" msgid "Completed" msgstr "완료" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2477,15 +2569,15 @@ msgstr "" msgid "submission time" msgstr "제출 시간" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "실행 시간" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "메모리 사용량" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "획득 포인트" @@ -2537,97 +2629,97 @@ msgstr "pretest에서만 채점됨" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "모든 제출 답안 보기" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "다른 사람의 제출물 다시 제출" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "제출" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "관련된 제출" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "소스 코드" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "test case ID" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "상태 flag" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "획득 가능한 포인트" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "batch number" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "채점 피드백" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "확장된 심사 피드백" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "프로그램 출력" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "제출 테스트 케이스" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "제출 테스트 케이스" @@ -2675,10 +2767,6 @@ msgstr "티켓" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "포스터" - #: judge/models/ticket.py:34 msgid "message body" msgstr "메시지 본문" @@ -2787,8 +2875,8 @@ msgstr "일괄 시작 사례 #%d에 점수가 필요합니다." #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" -msgstr "#%d의 경우 일괄 처리를 종료하려고 시도합니다" +msgid "Attempt to end batch outside of one in case #%d." +msgstr "#%d의 경우 일괄 처리를 종료하려고 시도합니다." #: judge/utils/problem_data.py:154 msgid "How did you corrupt the zip path?" @@ -2810,10 +2898,6 @@ msgstr "시간초과" msgid "Error" msgstr "오류" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "쿼리 세트와 키워드 필터를 모두 전달할 수 없습니다" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "이 비밀번호는 너무 일반적입니다." @@ -2850,7 +2934,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "게시물 %d 페이지" @@ -2875,7 +2959,7 @@ msgstr "" msgid "You already voted." msgstr "이미 투표하셨습니다." -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "사이트에서 편집" @@ -2950,62 +3034,58 @@ msgstr "\"%s\"에 대한 액세스 코드를 입력하십시오" msgid "You are not in contest \"%s\"." msgstr "현재 대회 %s에 참가중이 아닙니다." -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "%(month)s의 콘테스트" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "Y년 n월" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "%s 순위" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "???" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" -msgstr "%s에 대한 당신의 참가" +msgid "Your participation in %(contest)s" +msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" -msgstr "%s's %s에 대한 참가" +msgid "%(user)s's participation in %(contest)s" +msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "실시간" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "참여" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "%s MOSS 결과" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "대회 태그: %s" @@ -3029,7 +3109,7 @@ msgstr "%s에 대한 접근 권한이 없습니다" msgid "corrupt page %s" msgstr "손상된 페이지 %s" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "런타임" @@ -3052,205 +3132,227 @@ msgstr "그러한 조직을 찾을 수 없습니다." msgid "Organizations" msgstr "조직" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "%s 멤버" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "조직 가입" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "이미 조직에 가입되어 있습니다." -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "이 조직은 공개되어 있지 않습니다." -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "조직 탈퇴" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "%s에 있지 않습니다." -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "%s 에 가입을 신청 할 수 없습니다" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "이미 %s에 가입 신청을 했습니다." -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "%s 가입 신청" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "가입 신청 세부 사항" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "%s 가입 신청 가입" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 +#, 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 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "당신의 조직은 %d명의 회원만 더 가입이 가능합니다. %d명의 사용자 가입 승인이 불가합니다." +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "%d명의 사용자 가입 승인이 불가합니다." -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "%d명 사용자 승인." -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "%d명 거부." -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "%s 편집중" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "조직 편집이 불가합니다" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "조직을 편집할 권한이 없습니다." -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "조직 사용자를 탈퇴시킬 권한이 없습니다." -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "이 사용자를 탈퇴시킬 수 없습니다" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "탈퇴시키려는 사용자가 존재하지 않습니다." -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "삭제하려는 유저: %s 가 조직에 없습니다." -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "존재하지 않는 문제" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "%s 문제를 찾을 수 없습니다." -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "그런 사설이 없습니다" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "문제" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "제출이 너무 많습니다" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "이 문제에 허용된 제출 횟수를 초과했습니다." -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "문제 복사" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" -msgstr "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." +msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" -msgstr "검사기의 인자가 잘못된 JSON입니다" +msgid "Checker arguments is invalid JSON." +msgstr "검사기의 인자가 잘못된 JSON입니다." #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "Zip 파일이 올바르지 않습니다." -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "{0}에 대한 제출 비교" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3292,8 +3394,8 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" -msgstr "사용자 이름은 문자, 숫자, 또는 밑줄을 포함해야 합니다" +msgid "A username must contain letters, numbers, or underscores." +msgstr "사용자 이름은 문자, 숫자, 또는 밑줄을 포함해야 합니다." #: judge/views/register.py:30 msgid "Preferred language" @@ -3312,15 +3414,15 @@ msgstr "이메일 주소 %s는 사용중입니다. 하나의 주소에 대해 msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "스팸으로 인해 이 이메일 제공업체는 허용되지 않습니다. 다른 메일 주소를 사용해 주세요." -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "등록" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "인증 실패" @@ -3332,7 +3434,7 @@ msgstr "추가 사항" msgid "Language statistics" msgstr "언어 통계" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "현재 상태" @@ -3358,59 +3460,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "%(user)s의 %(problem)s 제출" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "모든 제출들" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "내 모든 제출들" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "%s의 모든 제출물" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "문제를 통과해야 합니다" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "%(problem)s에 대한 나의 제출" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "%(problem)s에 대한 %(user)s의 제출" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "대회를 통화해야한다" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "%(contest)s 에 제출한 내 답안들" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3519,52 +3613,47 @@ msgstr "로그인" msgid "M j, Y, G:i" msgstr "Y년 n월 j일 G:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "사이트에서 업데이트됨" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "프로필 수정" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "사용자에 대해 생성된 API 토큰" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "사용자를 위해 생성된 스크래치 코드" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "순위표" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "잘못된 업스트림 데이터: %s" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" -msgstr "잘못된 위도 또는 경도" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." +msgstr "" #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" @@ -3589,68 +3678,64 @@ msgstr "연결 해제" msgid "Terminate" msgstr "종료" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" -msgstr "제출물 보기" - -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 msgid "View submissions" msgstr "제출물 보기" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" +msgstr "" + #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 msgid "Edit user" msgstr "사용자 수정" -#: 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:80 -msgid "Rejudge" -msgstr "재체점" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "로그아웃" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "로그인" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "또는" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "회원 가입" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "관전" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "이 사이트는 자바 스크립트를 활성화시켜야 정상적으로 작동합니다." -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "수정" @@ -3682,39 +3767,53 @@ msgstr "{time}에 작성되었습니다" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "해설" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "현재로서는 명확한 설명이 없습니다." -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "진행중인 대회" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "진행예정 대회" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "주석 흐름" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "새로운 문제" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "코멘트" @@ -3737,7 +3836,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "%(edits)s 수정" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "수정됨" @@ -3745,64 +3844,90 @@ msgstr "수정됨" msgid "Link" msgstr "연결" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "답변" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "투표" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "숨김" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "현재 작성된 코멘트가 없습니다." -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "새 댓글" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "유효하지 않은 댓글입니다." -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "등록!" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "이 페이지에 대한 댓글 기능이 비활성화되었습니다." -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "댓글에 답글 달기" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "{edits} 작성" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "원본" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "투표자" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "점수" @@ -3810,6 +3935,18 @@ msgstr "점수" msgid "No votes" msgstr "투표자 없음" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "유효하지 않은 접근 코드입니다." @@ -3874,12 +4011,12 @@ msgstr "다음" msgid "Export" msgstr "내보내기" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "목록" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "달력" @@ -3887,7 +4024,7 @@ msgstr "달력" msgid "Info" msgstr "정보" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "통계" @@ -3912,7 +4049,7 @@ msgstr "복사" msgid "Leave contest" msgstr "대회 나가기" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "모의 참여" @@ -3929,7 +4066,7 @@ msgstr "콘테스트 참여" msgid "Spectate contest" msgstr "대회 관전" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3937,6 +4074,16 @@ msgstr "" msgid "Log in to participate" msgstr "참여하려면 로그인하세요" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "가상으로 참여합니다." @@ -3945,6 +4092,21 @@ msgstr "가상으로 참여합니다." msgid "Contest is over." msgstr "콘테스트가 종료되었습니다." +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "Y년 n월 j일 G:i T" @@ -4072,9 +4234,9 @@ msgstr "콘테스트에 참여하시려면 **참가코드가 필요합니다**." msgid "AC Rate" msgstr "정답률" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "유저" @@ -4082,7 +4244,7 @@ msgstr "유저" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4095,10 +4257,6 @@ msgstr "참여하겠습니까?" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "콘테스트에 처음 참여하실 때 타이머가 시작하고, 일시정지 할 수 없습니다." -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "숨김" - #: templates/contest/list.html:84 msgid "private" msgstr "비공개" @@ -4107,37 +4265,54 @@ msgstr "비공개" msgid "rated" msgstr "순위" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "%(time_limit)s 기간" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "참가" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "관전" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "대회 활성화" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "대회" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "진행중인 대회" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "진행예정 대회" +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "예정된 대회가 없습니다." -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "지난 대회들" #: templates/contest/media-js.html:4 @@ -4158,22 +4333,28 @@ msgid "Joining this contest will leave %(contest)s." msgstr "이 콘테스트에 참가하면 %(contest)s 를 떠나게 됩니다." #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "정말로 이 MOSS 결과를 삭제하겠습니까?" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "%(count)s개의 제출이" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "제출 없음" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4227,19 +4408,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "이 참여의 자격을 취소하시겠습니까?" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "사용자 참여 보기" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "조직들 표시" @@ -4260,8 +4441,8 @@ msgid "Language AC Rate" msgstr "언어 AC 비율" #: templates/license.html:12 -msgid "Source:" -msgstr "소스:" +msgid "Visit source" +msgstr "" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4426,7 +4607,7 @@ msgid "There are no requests to approve." msgstr "승인할 요청이 없습니다." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "삭제하시겠습니까?" @@ -4439,25 +4620,13 @@ msgid "Your reason for joining:" msgstr "가입 사유:" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "요청" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "보류 중" +msgid "Request!" +msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "승인됨" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "거절됨" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "내보내기" @@ -4474,55 +4643,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "YAML 보기" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "생성자 인자" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "사전 테스트?" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "새 케이스 추가" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4534,7 +4707,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "저자:" @@ -4543,20 +4716,20 @@ msgstr[0] "저자:" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "인기 있는 문제" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "분류" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "유형" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4620,113 +4793,128 @@ msgstr "모두 재검토" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "%(count)d 개의 제출이 재검토 될 예정입니다." +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "%(count)s개의 제출이 재검토 될 예정입니다." -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "%(count)d 개의 제출을 재검토를 원하십니까?" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "모든 제출 재검토" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "PDF로 보기" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "답안 제출" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "내 답안들" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "모범 답안" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "문제 수정" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "테스트 케이스 수정" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "시간 제한:" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "메모리 제한:" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "문제 유형" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "허용된 언어" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "채점:" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "선택 가능한 항목 없음" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "설명 요구" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "이슈 등록" @@ -4775,8 +4963,8 @@ msgstr "문제 유형" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "이동" @@ -4811,6 +4999,54 @@ msgstr "0번의 제출 횟수가 남았습니다" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4820,6 +5056,48 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4866,7 +5144,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "비밀번호 초기화" @@ -4882,22 +5159,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." -msgstr "" - -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4927,7 +5201,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "계속" @@ -4940,41 +5214,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "지도에서 고르기" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "기본 언어" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "이용 약관 & 조건" - -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "등록" @@ -4983,7 +5252,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "계정을 보호하기 위해서, 이중(2-Factor) 인증을 비활성화 하려면 먼저 인증해야 합니다." #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5015,14 +5285,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5031,6 +5304,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5048,19 +5322,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5086,38 +5356,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "채첨" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "온라인" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "운영 시간" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "핑" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "불러오기" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "없음" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "현재 이용 가능한 채점기가 없습니다." -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "아이디" @@ -5150,23 +5420,27 @@ msgstr "채점 도중 내부 에러가 발생했습니다." msgid "Error information" msgstr "에러 정보" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "상태 별로 필터링" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "언어로 필터링" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "제출 필터" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "합계:" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "연결이 끊겼습니다. 최신 업데이트를 표시하려면 새로고침하세요." @@ -5232,19 +5506,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5289,11 +5567,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5310,40 +5588,40 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " -msgstr "재개됨:" +msgstr "재개됨: " -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " -msgstr "닫힘:" +msgstr "닫힘: " -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "데스크탑 알람 사용하기" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "마감된 티켓 숨기기" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "내 티켓만 보기" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "파일링 사용자" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "인증된 사용자" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "제목" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "인증된 사용자" @@ -5365,31 +5643,32 @@ msgstr "티켓을 활성화 해주셔서 감사합니다." msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "이 양식은 도움을 요청하는 것이 아닌 문제 기술의 문제점을 보고하기 위한 것임을 명심하세요. 문제 해결에 도움이 필요하다면 댓글로 요청하세요." -#: templates/ticket/ticket.html:356 -msgid "Post" -msgstr "등록" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" +msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "관련 객체" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "할당된 사람이 없습니다." -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "티켓 마감" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "티켓 재발급" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "인증된 사용자 노트" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "표시할 것이 없습니다." @@ -5397,141 +5676,163 @@ msgstr "표시할 것이 없습니다." msgid "Rank" msgstr "순위" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "손쉽게 검색..." -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "API 토큰을 생성하거나 재생성 하겠습니까?" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "이전 API 토큰이 무효화됩니다." -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "또한 2단계 인증 없이 계정에 접근할 수 있습니다." -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "이 페이지를 나간 후에는 API 토큰을 볼 수 없습니다." -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "생성 중..." -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "재생성" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "삭제" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "API 토큰을 삭제하겠습니까?" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "생성" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "보안 키를 삭제하겠습니까?" -#: templates/user/edit-profile.html:284 -msgid "Self-description" -msgstr "자기 소개" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" +msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "가장 가까운 대도시를 선택하세요" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" -msgstr "편집기 테마" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "수학 엔진" +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" +msgstr "" + +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "아바타 변경" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "비밀번호 변경" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" -msgstr "2단계 인증이 활성화 되었습니다" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" +msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "비활성화" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "새로 고침" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" -msgstr "기본 코드:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" +msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "숨기기" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" -msgstr "2단계 인증이 비활성화 되었습니다" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "활성화" -#: templates/user/edit-profile.html:392 -msgid "API Token" -msgstr "API 토큰" +#: templates/user/edit-profile.html:393 +msgid "API token:" +msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" -msgstr "보안 키" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" +msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "삭제" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "해당 키의 이름을 입력하세요" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "추가" -#: templates/user/edit-profile.html:435 -msgid "User-script" -msgstr "사용자 스크립트" +#: templates/user/edit-profile.html:436 +msgid "User-script:" +msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "프로필 업데이트" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "%(pp).1fpp" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" -msgstr "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" +msgstr "" #: templates/user/prepare-data.html:64 msgid "Are you sure you want to prepare a download?" @@ -5545,31 +5846,41 @@ msgstr "데이터를 준비하고 있습니다." msgid "Track progress" msgstr "진행사항 추적" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "데이터가 준비되면, 이 페이지에서 다운로드 링크를 찾을 수 있습니다." -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "제출" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "새로운 다운로드 준비" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "다운로드 준비" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "준비된 데이터 다운로드" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "이제 데이터를 사용할 수 있습니다!" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "데이터 다운로드" @@ -5633,43 +5944,39 @@ msgstr "더 보기" msgid "Rating history" msgstr "등급 기록" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "지난 해" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "%(counter)s 개의 문제를 품" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "포인트 순위" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "총점" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "%(counter)s 개의 대회를 작성함" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "등급 순위" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "등급:" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "최소 등급:" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "최대 등급:" @@ -5693,12 +6000,12 @@ msgstr "인증 완료 문제" msgid "Hide problems I've solved" msgstr "풀었던 푼제 숨기기" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" -msgstr "%(points).1f 점" +msgid "%(group)s (%(val)s points)" +msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "%(points)s / %(total)s" diff --git a/locale/ko/LC_MESSAGES/djangojs.po b/locale/ko/LC_MESSAGES/djangojs.po index 56e16cc9cf..ff20d7dbb4 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -17,14 +17,61 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" + +#: resources/user_profile.js:69 +msgid "%(cnt)d submission in the last year" +msgid_plural "%(cnt)d submissions in the last year" +msgstr[0] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" + diff --git a/locale/lt/LC_MESSAGES/django.po b/locale/lt/LC_MESSAGES/django.po index 2662e4e22f..5eaaf83f60 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-20 00:55\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Lithuanian\n" "Language: lt_LT\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "" + +#: dmoj/settings.py:384 msgid "English" msgstr "" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -136,12 +144,25 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "" + +#: judge/admin/contest.py:77 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 "" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "" @@ -166,7 +187,7 @@ msgstr "" msgid "Access" msgstr "" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "" @@ -222,7 +243,7 @@ msgstr[3] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -248,7 +269,7 @@ msgstr "" msgid "username" msgstr "" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "" @@ -256,17 +277,14 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -274,53 +292,52 @@ msgstr "" msgid "object" msgstr "" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." @@ -329,11 +346,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." @@ -342,11 +359,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." @@ -355,28 +372,35 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "" @@ -386,8 +410,8 @@ msgstr "" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -402,7 +426,13 @@ msgid "Disallowed problems" msgstr "" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "" + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" msgstr "" #: judge/admin/runtime.py:77 @@ -417,101 +447,105 @@ msgstr "" msgid "Capabilities" msgstr "" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "" 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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" +msgid "These problems are included in this group of problems." msgstr "" #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" +msgid "These problems are included in this type of problems." msgstr "" #: judge/apps.py:8 @@ -526,11 +560,11 @@ msgstr "" msgid "Your part is silent, little toad." msgstr "" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "" @@ -619,20 +653,24 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -648,91 +686,96 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "" +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] "" +msgstr[2] "" +msgstr[3] "" -#: judge/forms.py:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "" @@ -794,8 +837,8 @@ msgstr "" msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 -msgid "hide the comment" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" msgstr "" #: judge/models/comment.py:48 @@ -811,7 +854,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "" @@ -894,7 +937,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "" @@ -902,7 +945,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "" @@ -910,7 +953,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "" @@ -946,7 +989,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -959,12 +1002,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "" @@ -1001,7 +1044,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -1016,85 +1059,85 @@ msgstr "" msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1106,7 +1149,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1114,15 +1157,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1137,7 +1181,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1150,7 +1194,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "" @@ -1214,7 +1258,7 @@ msgstr "" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1311,15 +1355,8 @@ msgstr "" msgid "contest participations" msgstr "" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "" @@ -1359,7 +1396,7 @@ msgstr "" msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "" @@ -1415,6 +1452,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1455,7 +1500,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1475,10 +1520,6 @@ msgstr "" msgid "post summary" msgstr "" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "" @@ -1495,337 +1536,374 @@ msgstr "" msgid "blog posts" msgstr "" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "" -#: judge/models/problem.py:67 -msgid "URL to the icon" +#: judge/models/problem.py:66 +msgid "URL to the icon." msgstr "" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "" @@ -1866,11 +1944,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1878,59 +1956,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1943,11 +2029,11 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" +msgid "Organization name shown in URLs." msgstr "" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" +msgid "Displayed beside user name during contests." msgstr "" #: judge/models/profile.py:47 @@ -1959,7 +2045,7 @@ msgid "administrators" msgstr "" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" +msgid "Those who can edit this organization." msgstr "" #: judge/models/profile.py:50 @@ -1971,7 +2057,7 @@ msgid "is open organization?" msgstr "" #: judge/models/profile.py:52 -msgid "Allow joining organization" +msgid "Allow joining organization." msgstr "" #: judge/models/profile.py:53 @@ -1979,11 +2065,11 @@ msgid "maximum size" msgstr "" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" +msgid "Maximum amount of users in this organization, only applicable to private organizations." msgstr "" -#: judge/models/profile.py:56 -msgid "Student access code" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." msgstr "" #: judge/models/profile.py:60 @@ -1995,11 +2081,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -2011,12 +2097,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -2028,7 +2114,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2039,12 +2125,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2056,7 +2138,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2069,7 +2151,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2100,8 +2182,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2127,163 +2209,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + +#: judge/models/profile.py:372 msgid "reason" msgstr "" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2312,7 +2414,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2392,7 +2494,7 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2400,7 +2502,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2485,8 +2587,8 @@ msgstr "" msgid "Internal Error" msgstr "" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2510,10 +2612,6 @@ msgstr "" msgid "Completed" msgstr "" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2522,15 +2620,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2582,97 +2680,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2720,10 +2818,6 @@ msgstr "" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "" - #: judge/models/ticket.py:34 msgid "message body" msgstr "" @@ -2832,7 +2926,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2855,10 +2949,6 @@ msgstr "" msgid "Error" msgstr "" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2904,7 +2994,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2929,7 +3019,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -3004,62 +3094,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3083,7 +3169,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3106,63 +3192,76 @@ msgstr "" msgid "Organizations" msgstr "" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 +#, 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[2] "" +msgstr[3] "" + +#: judge/views/organization.py:297 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3171,7 +3270,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3180,137 +3279,152 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:266 +msgid "success" +msgstr "" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3355,7 +3469,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3375,15 +3489,15 @@ msgstr "" msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "" @@ -3395,7 +3509,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "" @@ -3421,59 +3535,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3582,51 +3688,46 @@ msgstr "" msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3652,13 +3753,15 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3666,54 +3769,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3745,39 +3842,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "" @@ -3800,7 +3911,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "" @@ -3808,64 +3919,90 @@ msgstr "" msgid "Link" msgstr "" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "" @@ -3873,6 +4010,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3937,12 +4086,12 @@ msgstr "" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "" @@ -3950,7 +4099,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "" @@ -3975,7 +4124,7 @@ msgstr "" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "" @@ -3992,7 +4141,7 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -4000,6 +4149,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -4008,6 +4167,21 @@ msgstr "" msgid "Contest is over." msgstr "" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "" @@ -4144,9 +4318,9 @@ msgstr "" msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "" @@ -4154,7 +4328,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4167,10 +4341,6 @@ msgstr "" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4179,37 +4349,54 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "" #: templates/contest/media-js.html:4 @@ -4230,22 +4417,31 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4299,19 +4495,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "" @@ -4332,7 +4528,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4498,7 +4694,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "" @@ -4511,25 +4707,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" +msgid "Request!" msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4546,55 +4730,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4606,7 +4794,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "" @@ -4618,20 +4806,20 @@ msgstr[3] "" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4695,28 +4883,36 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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] "" +msgstr[2] "" +msgstr[3] "" -#: templates/problem/manage_submission.html:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" @@ -4725,59 +4921,72 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "" @@ -4785,16 +4994,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" @@ -4802,15 +5011,15 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4859,8 +5068,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "" @@ -4898,6 +5107,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4907,6 +5164,54 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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[2] "" +msgstr[3] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4953,7 +5258,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -4969,22 +5273,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -5014,7 +5315,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5027,41 +5328,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -5070,7 +5366,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5102,14 +5399,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5118,6 +5418,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5135,19 +5436,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5173,38 +5470,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "" @@ -5237,23 +5534,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5319,19 +5620,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5376,11 +5681,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5397,31 +5702,31 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" @@ -5429,11 +5734,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5455,31 +5760,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5487,140 +5793,162 @@ msgstr "" msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5635,31 +5963,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5723,11 +6061,7 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" @@ -5736,15 +6070,15 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" @@ -5753,19 +6087,19 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "" @@ -5789,12 +6123,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/lt/LC_MESSAGES/djangojs.po b/locale/lt/LC_MESSAGES/djangojs.po index 1c8cee57d8..b18a28b38f 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\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:207 +#: resources/common.js:195 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -26,8 +26,67 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: resources/common.js:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: 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[2] "" +msgstr[3] "" + +#: 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[2] "" +msgstr[3] "" + +#: 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[2] "" +msgstr[3] "" + diff --git a/locale/nl/LC_MESSAGES/django.po b/locale/nl/LC_MESSAGES/django.po index 4543f6fd7d..7f09a240c7 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-20 00:55\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "" + +#: dmoj/settings.py:384 msgid "English" msgstr "" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -132,12 +140,25 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "" + +#: judge/admin/contest.py:77 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 "" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "" @@ -162,7 +183,7 @@ msgstr "" msgid "Access" msgstr "" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "" @@ -210,7 +231,7 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -232,7 +253,7 @@ msgstr "" msgid "username" msgstr "" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "" @@ -240,17 +261,14 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -258,103 +276,109 @@ msgstr "" msgid "object" msgstr "" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "" @@ -364,8 +388,8 @@ msgstr "" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "" msgstr[1] "" @@ -378,7 +402,13 @@ msgid "Disallowed problems" msgstr "" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "" + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" msgstr "" #: judge/admin/runtime.py:77 @@ -393,99 +423,103 @@ msgstr "" msgid "Capabilities" msgstr "" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" +msgid "These problems are included in this group of problems." msgstr "" #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" +msgid "These problems are included in this type of problems." msgstr "" #: judge/apps.py:8 @@ -500,11 +534,11 @@ msgstr "" msgid "Your part is silent, little toad." msgstr "" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "" @@ -589,20 +623,22 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -618,91 +654,94 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "" +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "" @@ -764,8 +803,8 @@ msgstr "" msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 -msgid "hide the comment" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" msgstr "" #: judge/models/comment.py:48 @@ -781,7 +820,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "" @@ -864,7 +903,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "" @@ -872,7 +911,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "" @@ -880,7 +919,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "" @@ -916,7 +955,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -929,12 +968,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "" @@ -971,7 +1010,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -986,85 +1025,85 @@ msgstr "" msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1076,7 +1115,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1084,15 +1123,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1107,7 +1147,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1120,7 +1160,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "" @@ -1184,7 +1224,7 @@ msgstr "" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1281,15 +1321,8 @@ msgstr "" msgid "contest participations" msgstr "" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "" @@ -1329,7 +1362,7 @@ msgstr "" msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "" @@ -1385,6 +1418,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1425,7 +1466,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1445,10 +1486,6 @@ msgstr "" msgid "post summary" msgstr "" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "" @@ -1465,337 +1502,374 @@ msgstr "" msgid "blog posts" msgstr "" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "" -#: judge/models/problem.py:67 -msgid "URL to the icon" +#: judge/models/problem.py:66 +msgid "URL to the icon." msgstr "" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "" @@ -1836,11 +1910,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1848,59 +1922,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1913,11 +1995,11 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" +msgid "Organization name shown in URLs." msgstr "" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" +msgid "Displayed beside user name during contests." msgstr "" #: judge/models/profile.py:47 @@ -1929,7 +2011,7 @@ msgid "administrators" msgstr "" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" +msgid "Those who can edit this organization." msgstr "" #: judge/models/profile.py:50 @@ -1941,7 +2023,7 @@ msgid "is open organization?" msgstr "" #: judge/models/profile.py:52 -msgid "Allow joining organization" +msgid "Allow joining organization." msgstr "" #: judge/models/profile.py:53 @@ -1949,11 +2031,11 @@ msgid "maximum size" msgstr "" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" +msgid "Maximum amount of users in this organization, only applicable to private organizations." msgstr "" -#: judge/models/profile.py:56 -msgid "Student access code" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." msgstr "" #: judge/models/profile.py:60 @@ -1965,11 +2047,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1981,12 +2063,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1998,7 +2080,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2009,12 +2091,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2026,7 +2104,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2039,7 +2117,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2070,8 +2148,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2097,163 +2175,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + +#: judge/models/profile.py:372 msgid "reason" msgstr "" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2282,7 +2380,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2362,7 +2460,7 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2370,7 +2468,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2455,8 +2553,8 @@ msgstr "" msgid "Internal Error" msgstr "" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2480,10 +2578,6 @@ msgstr "" msgid "Completed" msgstr "" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2492,15 +2586,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2552,97 +2646,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2686,12 +2780,8 @@ msgstr "" msgid "ticket" msgstr "" -#: judge/models/ticket.py:26 -msgid "tickets" -msgstr "" - -#: judge/models/ticket.py:32 -msgid "poster" +#: judge/models/ticket.py:26 +msgid "tickets" msgstr "" #: judge/models/ticket.py:34 @@ -2802,7 +2892,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2825,10 +2915,6 @@ msgstr "" msgid "Error" msgstr "" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2868,7 +2954,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2893,7 +2979,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -2968,62 +3054,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3047,7 +3129,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3070,207 +3152,231 @@ msgstr "" msgid "Organizations" msgstr "" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +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 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3313,7 +3419,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3333,15 +3439,15 @@ msgstr "" msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "" @@ -3353,7 +3459,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "" @@ -3379,59 +3485,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3540,51 +3638,46 @@ msgstr "" msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3610,13 +3703,15 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3624,54 +3719,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3703,39 +3792,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "" @@ -3758,7 +3861,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "" @@ -3766,64 +3869,90 @@ msgstr "" msgid "Link" msgstr "" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "" @@ -3831,6 +3960,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3895,12 +4036,12 @@ msgstr "" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "" @@ -3908,7 +4049,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "" @@ -3933,7 +4074,7 @@ msgstr "" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "" @@ -3950,7 +4091,7 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3958,6 +4099,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -3966,6 +4117,21 @@ msgstr "" msgid "Contest is over." msgstr "" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "" @@ -4096,9 +4262,9 @@ msgstr "" msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "" @@ -4106,7 +4272,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4119,10 +4285,6 @@ msgstr "" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4131,37 +4293,54 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "" #: templates/contest/media-js.html:4 @@ -4182,22 +4361,29 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4251,19 +4437,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "" @@ -4284,7 +4470,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4450,7 +4636,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "" @@ -4463,25 +4649,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" +msgid "Request!" msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4498,55 +4672,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4558,7 +4736,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "" @@ -4568,20 +4746,20 @@ msgstr[1] "" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4645,116 +4823,133 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4803,8 +4998,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "" @@ -4840,6 +5035,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4849,6 +5092,50 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4895,7 +5182,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -4911,22 +5197,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4956,7 +5239,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4969,41 +5252,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -5012,7 +5290,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5044,14 +5323,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5342,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5360,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5115,38 +5394,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "" @@ -5179,23 +5458,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5261,19 +5544,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5318,11 +5605,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5339,41 +5626,41 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5395,31 +5682,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5427,140 +5715,162 @@ msgstr "" msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5575,31 +5885,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5663,45 +5983,41 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "" @@ -5725,12 +6041,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/nl/LC_MESSAGES/djangojs.po b/locale/nl/LC_MESSAGES/djangojs.po index ae1288843c..f673516efa 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:29\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -17,15 +17,66 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" + +#: 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] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" +msgstr[1] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" +msgstr[1] "" + diff --git a/locale/pl/LC_MESSAGES/django.po b/locale/pl/LC_MESSAGES/django.po index 877087c435..709731a22e 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-20 00:55\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -17,90 +17,98 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Kataloński" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Niemiecki" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Grecki" + +#: dmoj/settings.py:384 msgid "English" msgstr "Angielski" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Hiszpański" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Francuski" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Chorwacki" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Węgierski" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Japoński" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Koreański" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Rumuński" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Rosyjski" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Serbski (alfabet łaciński)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Turecki" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Wietnamski" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Chiński Uproszczony" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "Chiński Tradycyjny" #: dmoj/urls.py:32 msgid "Activation Successful!" -msgstr "" +msgstr "Aktywowano pomyślnie!" #: dmoj/urls.py:40 msgid "Registration Completed" -msgstr "" +msgstr "Rejestracja zakończona" #: dmoj/urls.py:44 msgid "Registration Not Allowed" -msgstr "" +msgstr "Rejestracja niedozwolona" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Strona główna" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "Zawartość" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -136,12 +144,25 @@ msgid "Included contests" msgstr "Załączniki" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problem" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: 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:77 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 "" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "Ustawienia" @@ -166,7 +187,7 @@ msgstr "Ocena" msgid "Access" msgstr "Dostęp" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "" @@ -222,7 +243,7 @@ msgstr[3] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -248,7 +269,7 @@ msgstr "" msgid "username" msgstr "nazwa użytkownika" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "" @@ -256,17 +277,14 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Zawartość" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Podsumowanie" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "użytkownik" @@ -274,53 +292,52 @@ msgstr "użytkownik" msgid "object" msgstr "obiekt" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Zobacz na stronie" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "Opisz wprowadzone zmiany (opcjonalne)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Media Społecznościowe" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Taksonomia" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Punkty" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Limity" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Język" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "Historia" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Autorzy" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." @@ -329,11 +346,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "Ustaw datę publikacji" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." @@ -342,11 +359,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Oznacz problemy jako publiczne" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." @@ -355,28 +372,35 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "problem" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Użytkownik" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "Adres e-mail" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "Strefa czasowa" @@ -386,8 +410,8 @@ msgstr "data dołączenia" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -402,7 +426,13 @@ msgid "Disallowed problems" msgstr "" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "" + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" msgstr "" #: judge/admin/runtime.py:77 @@ -417,101 +447,105 @@ msgstr "Informacje" 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:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Brak" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "Nie wykonane" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Wyjątkowe" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "Niezaakceptowane" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "" 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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Problemy te są uwzględnione w tej grupie problemów" +msgid "These problems are included in this group of problems." +msgstr "Problemy te są uwzględnione w tej grupie problemów." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" +msgid "These problems are included in this type of problems." msgstr "" #: judge/apps.py:8 @@ -526,11 +560,11 @@ msgstr "Treść komentarza" msgid "Your part is silent, little toad." msgstr "" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Opublikowane komentarze" @@ -619,20 +653,24 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "IOI (przed 2016 r.)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "Tokeny uwierzytelniania dwuskładnikowego muszą składać się z {TOTP_CODE_LENGTH} cyfr dziesiętnych." +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "Nieprawidłowy token uwierzytelniania dwuskładnikowego." -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -648,91 +686,96 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "" +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] "" +msgstr[2] "" +msgstr[3] "" -#: judge/forms.py:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "Pobrać komentarze?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "Każdy sędzia" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Nazwa użytkownika" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Hasło" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "Nieprawidłowa długość kodu." -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "" @@ -794,9 +837,9 @@ msgstr "głosów" msgid "body of comment" msgstr "treść komentarza" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "ukryj komentarz" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "" #: judge/models/comment.py:48 msgid "parent" @@ -811,7 +854,7 @@ msgid "comments" msgstr "komentarze" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "" @@ -894,7 +937,7 @@ msgid "contest name" msgstr "nazwa konkursu" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "autorzy" @@ -902,7 +945,7 @@ msgstr "autorzy" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "" @@ -910,7 +953,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "testerzy" @@ -946,7 +989,7 @@ msgstr "" msgid "description" msgstr "opis" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "problemy" @@ -959,12 +1002,12 @@ msgstr "czas rozpoczęcia" msgid "end time" msgstr "godzina zakończenia" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "limit czasowy" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "publicznie widoczny" @@ -1001,7 +1044,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -1016,85 +1059,85 @@ msgstr "" msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "oceń wszystko" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "ukryj tagi problemu" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1106,7 +1149,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1114,15 +1157,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1137,7 +1181,7 @@ msgstr "" msgid "contest summary" msgstr "podsumowanie konkursu" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1150,7 +1194,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "" @@ -1214,7 +1258,7 @@ msgstr "" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1311,15 +1355,8 @@ msgstr "" msgid "contest participations" msgstr "" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "problem" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "punkty" @@ -1359,7 +1396,7 @@ msgstr "" msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "zgłoszenie" @@ -1415,6 +1452,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "klucz" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "wartość" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1455,7 +1500,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1475,10 +1520,6 @@ msgstr "" msgid "post summary" msgstr "" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "" @@ -1495,337 +1536,374 @@ msgstr "" msgid "blog posts" msgstr "" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "klucz" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "link" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "pełna nazwa" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "krótka nazwa" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "ikona" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "Adres URL do ikony" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "Adres URL do ikony." -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "tekst licencji" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "licencja" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "licencje" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "kod problemu" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" -msgstr "Krótki, unikalny kod problemu, używany w adresie url po /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" +msgstr "Krótki, unikalny kod problemu, używany w adresie URL po /problem/" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "nazwa problemu" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 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:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "treść problemu" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "twórcy" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "limit pamięci" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "dozwolone języki" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "język" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "rozwiązanie" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "rozwiązania" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "" @@ -1866,11 +1944,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1878,59 +1956,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1943,11 +2029,11 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" +msgid "Organization name shown in URLs." msgstr "" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" +msgid "Displayed beside user name during contests." msgstr "" #: judge/models/profile.py:47 @@ -1959,7 +2045,7 @@ msgid "administrators" msgstr "" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" +msgid "Those who can edit this organization." msgstr "" #: judge/models/profile.py:50 @@ -1971,7 +2057,7 @@ msgid "is open organization?" msgstr "" #: judge/models/profile.py:52 -msgid "Allow joining organization" +msgid "Allow joining organization." msgstr "" #: judge/models/profile.py:53 @@ -1979,11 +2065,11 @@ msgid "maximum size" msgstr "" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" +msgid "Maximum amount of users in this organization, only applicable to private organizations." msgstr "" -#: judge/models/profile.py:56 -msgid "Student access code" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." msgstr "" #: judge/models/profile.py:60 @@ -1995,11 +2081,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -2011,12 +2097,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "organizacja" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -2028,7 +2114,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2039,12 +2125,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2056,7 +2138,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2069,8 +2151,8 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" -msgstr "" +msgid "time zone" +msgstr "strefa czasowa" #: judge/models/profile.py:152 msgid "preferred language" @@ -2100,8 +2182,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2127,163 +2209,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + +#: judge/models/profile.py:372 msgid "reason" msgstr "" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2312,7 +2414,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2392,7 +2494,7 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2400,7 +2502,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2485,8 +2587,8 @@ msgstr "" msgid "Internal Error" msgstr "" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2510,10 +2612,6 @@ msgstr "" msgid "Completed" msgstr "" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2522,15 +2620,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2582,97 +2680,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "zgłoszenia" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "kod źródłowy" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2720,10 +2818,6 @@ msgstr "" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "" - #: judge/models/ticket.py:34 msgid "message body" msgstr "treść wiadomości" @@ -2832,7 +2926,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2855,10 +2949,6 @@ msgstr "Upłynął limit czasu" msgid "Error" msgstr "Błąd" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2904,7 +2994,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2929,7 +3019,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -3004,62 +3094,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3083,7 +3169,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3106,63 +3192,76 @@ msgstr "" msgid "Organizations" msgstr "" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +msgid "Your organization can only receive %d more member." +msgid_plural "Your organization can only receive %d more members." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: judge/views/organization.py:297 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3171,7 +3270,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3180,137 +3279,152 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Problemy" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:266 +msgid "success" +msgstr "" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3355,7 +3469,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3375,15 +3489,15 @@ msgstr "" msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "" @@ -3395,7 +3509,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "" @@ -3421,59 +3535,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3582,51 +3688,46 @@ msgstr "Logowanie" msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3652,13 +3753,15 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3666,54 +3769,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3745,39 +3842,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "Komentarze" @@ -3800,7 +3911,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "" @@ -3808,64 +3919,90 @@ msgstr "" msgid "Link" msgstr "" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "Głosów" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "" @@ -3873,6 +4010,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3937,12 +4086,12 @@ msgstr "" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "" @@ -3950,7 +4099,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "" @@ -3975,7 +4124,7 @@ msgstr "" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "" @@ -3992,7 +4141,7 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -4000,6 +4149,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -4008,6 +4167,21 @@ msgstr "" msgid "Contest is over." msgstr "" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "" @@ -4144,9 +4318,9 @@ msgstr "" msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "" @@ -4154,7 +4328,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4167,10 +4341,6 @@ msgstr "" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4179,37 +4349,54 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Konkurs" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "" #: templates/contest/media-js.html:4 @@ -4230,22 +4417,31 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4299,19 +4495,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "" @@ -4332,7 +4528,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4498,7 +4694,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "" @@ -4511,25 +4707,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" +msgid "Request!" msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4546,55 +4730,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4606,7 +4794,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "" @@ -4618,20 +4806,20 @@ msgstr[3] "" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4695,28 +4883,36 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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] "" +msgstr[2] "" +msgstr[3] "" -#: templates/problem/manage_submission.html:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" @@ -4725,59 +4921,72 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "" @@ -4785,16 +4994,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "Dozwolone języki" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" @@ -4802,15 +5011,15 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4859,8 +5068,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "" @@ -4898,6 +5107,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4907,6 +5164,54 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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[2] "" +msgstr[3] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4953,7 +5258,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -4969,22 +5273,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -5014,7 +5315,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5027,41 +5328,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -5070,7 +5366,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5102,14 +5399,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5118,6 +5418,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5135,19 +5436,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5173,38 +5470,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "" @@ -5237,23 +5534,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5319,19 +5620,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5376,11 +5681,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5397,31 +5702,31 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" @@ -5429,11 +5734,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5455,31 +5760,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5487,140 +5793,162 @@ msgstr "" msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5635,31 +5963,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "Zgłoszenia" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5723,11 +6061,7 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" @@ -5736,15 +6070,15 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" @@ -5753,19 +6087,19 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "" @@ -5789,12 +6123,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "Ukryj problemy, które rozwiązałem" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/pl/LC_MESSAGES/djangojs.po b/locale/pl/LC_MESSAGES/djangojs.po index 161974ff86..d5f3374f19 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\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:207 +#: resources/common.js:195 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -26,8 +26,67 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "%d dni %h:%m:%s" -#: resources/common.js:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: 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[2] "" +msgstr[3] "" + +#: 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[2] "" +msgstr[3] "" + +#: 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[2] "" +msgstr[3] "" + diff --git a/locale/pt/LC_MESSAGES/django.po b/locale/pt/LC_MESSAGES/django.po index 5a9a7c9ff2..c1c80c8690 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-20 00:55\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "" + +#: dmoj/settings.py:384 msgid "English" msgstr "" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -132,12 +140,25 @@ msgid "Included contests" msgstr "" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "" + +#: judge/admin/contest.py:77 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 "" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "" @@ -162,7 +183,7 @@ msgstr "" msgid "Access" msgstr "" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "" @@ -210,7 +231,7 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -232,7 +253,7 @@ msgstr "" msgid "username" msgstr "" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "" @@ -240,17 +261,14 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "" @@ -258,103 +276,109 @@ msgstr "" msgid "object" msgstr "" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "" @@ -364,8 +388,8 @@ msgstr "" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "" msgstr[1] "" @@ -378,7 +402,13 @@ msgid "Disallowed problems" msgstr "" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "" + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" msgstr "" #: judge/admin/runtime.py:77 @@ -393,99 +423,103 @@ msgstr "" msgid "Capabilities" msgstr "" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" +msgid "These problems are included in this group of problems." msgstr "" #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" +msgid "These problems are included in this type of problems." msgstr "" #: judge/apps.py:8 @@ -500,11 +534,11 @@ msgstr "" msgid "Your part is silent, little toad." msgstr "" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "" @@ -589,20 +623,22 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -618,91 +654,94 @@ msgstr "" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "" +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "" @@ -764,8 +803,8 @@ msgstr "" msgid "body of comment" msgstr "" -#: judge/models/comment.py:47 -msgid "hide the comment" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" msgstr "" #: judge/models/comment.py:48 @@ -781,7 +820,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "" @@ -864,7 +903,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "" @@ -872,7 +911,7 @@ msgstr "" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "" @@ -880,7 +919,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "" @@ -916,7 +955,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -929,12 +968,12 @@ msgstr "" msgid "end time" msgstr "" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "" @@ -971,7 +1010,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -986,85 +1025,85 @@ msgstr "" msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1076,7 +1115,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1084,15 +1123,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1107,7 +1147,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1120,7 +1160,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "" @@ -1184,7 +1224,7 @@ msgstr "" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1281,15 +1321,8 @@ msgstr "" msgid "contest participations" msgstr "" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "" @@ -1329,7 +1362,7 @@ msgstr "" msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "" @@ -1385,6 +1418,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1425,7 +1466,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1445,10 +1486,6 @@ msgstr "" msgid "post summary" msgstr "" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "" @@ -1465,337 +1502,374 @@ msgstr "" msgid "blog posts" msgstr "" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "" -#: judge/models/problem.py:67 -msgid "URL to the icon" +#: judge/models/problem.py:66 +msgid "URL to the icon." msgstr "" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "" @@ -1836,11 +1910,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1848,59 +1922,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1913,11 +1995,11 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" +msgid "Organization name shown in URLs." msgstr "" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" +msgid "Displayed beside user name during contests." msgstr "" #: judge/models/profile.py:47 @@ -1929,7 +2011,7 @@ msgid "administrators" msgstr "" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" +msgid "Those who can edit this organization." msgstr "" #: judge/models/profile.py:50 @@ -1941,7 +2023,7 @@ msgid "is open organization?" msgstr "" #: judge/models/profile.py:52 -msgid "Allow joining organization" +msgid "Allow joining organization." msgstr "" #: judge/models/profile.py:53 @@ -1949,11 +2031,11 @@ msgid "maximum size" msgstr "" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" +msgid "Maximum amount of users in this organization, only applicable to private organizations." msgstr "" -#: judge/models/profile.py:56 -msgid "Student access code" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." msgstr "" #: judge/models/profile.py:60 @@ -1965,11 +2047,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1981,12 +2063,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1998,7 +2080,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2009,12 +2091,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2026,7 +2104,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2039,7 +2117,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2070,8 +2148,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2097,163 +2175,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + +#: judge/models/profile.py:372 msgid "reason" msgstr "" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2282,7 +2380,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2362,7 +2460,7 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2370,7 +2468,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2455,8 +2553,8 @@ msgstr "" msgid "Internal Error" msgstr "" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2480,10 +2578,6 @@ msgstr "" msgid "Completed" msgstr "" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2492,15 +2586,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2552,97 +2646,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2686,12 +2780,8 @@ msgstr "" msgid "ticket" msgstr "" -#: judge/models/ticket.py:26 -msgid "tickets" -msgstr "" - -#: judge/models/ticket.py:32 -msgid "poster" +#: judge/models/ticket.py:26 +msgid "tickets" msgstr "" #: judge/models/ticket.py:34 @@ -2802,7 +2892,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2825,10 +2915,6 @@ msgstr "" msgid "Error" msgstr "" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2868,7 +2954,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2893,7 +2979,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -2968,62 +3054,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3047,7 +3129,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3070,207 +3152,231 @@ msgstr "" msgid "Organizations" msgstr "" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +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 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" msgstr[1] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3313,7 +3419,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3333,15 +3439,15 @@ msgstr "" msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "" @@ -3353,7 +3459,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "" @@ -3379,59 +3485,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3540,51 +3638,46 @@ msgstr "" msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3610,13 +3703,15 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3624,54 +3719,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "" @@ -3703,39 +3792,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "" @@ -3758,7 +3861,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "" @@ -3766,64 +3869,90 @@ msgstr "" msgid "Link" msgstr "" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "" @@ -3831,6 +3960,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3895,12 +4036,12 @@ msgstr "" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "" @@ -3908,7 +4049,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "" @@ -3933,7 +4074,7 @@ msgstr "" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "" @@ -3950,7 +4091,7 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3958,6 +4099,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -3966,6 +4117,21 @@ msgstr "" msgid "Contest is over." msgstr "" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "" @@ -4096,9 +4262,9 @@ msgstr "" msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "" @@ -4106,7 +4272,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4119,10 +4285,6 @@ msgstr "" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4131,37 +4293,54 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "" #: templates/contest/media-js.html:4 @@ -4182,22 +4361,29 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4251,19 +4437,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "" @@ -4284,7 +4470,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4450,7 +4636,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "" @@ -4463,25 +4649,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" +msgid "Request!" msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4498,55 +4672,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4558,7 +4736,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "" @@ -4568,20 +4746,20 @@ msgstr[1] "" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4645,116 +4823,133 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4803,8 +4998,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "" @@ -4840,6 +5035,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4849,6 +5092,50 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4895,7 +5182,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -4911,22 +5197,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4956,7 +5239,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4969,41 +5252,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -5012,7 +5290,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5044,14 +5323,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5342,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5360,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5115,38 +5394,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "" @@ -5179,23 +5458,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5261,19 +5544,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5318,11 +5605,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5339,41 +5626,41 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5395,31 +5682,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5427,140 +5715,162 @@ msgstr "" msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5575,31 +5885,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5663,45 +5983,41 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "" @@ -5725,12 +6041,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/pt/LC_MESSAGES/djangojs.po b/locale/pt/LC_MESSAGES/djangojs.po index 10e71f6722..4d849f5f55 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:44\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -17,15 +17,66 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" + +#: 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] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" +msgstr[1] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" +msgstr[1] "" + diff --git a/locale/ro/LC_MESSAGES/django.po b/locale/ro/LC_MESSAGES/django.po index eaec8b1127..c692a9cb0e 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-21 00:47\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -17,73 +17,77 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Catalană" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Germană" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Greacă" + +#: dmoj/settings.py:384 msgid "English" msgstr "Engleză" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Spaniolă" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Franceză" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Croată" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Maghiară" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Japoneză" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Coreeană" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "Portugheză Braziliană" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Română" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Rusă" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Sârbă (Latină)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Turcă" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Vietnameză" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Chineză Simplificată" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" -msgstr "Chineză Tradiţională" +msgstr "Chineză Tradițională" #: dmoj/urls.py:32 msgid "Activation Successful!" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Start" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "Conținut" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -123,7 +131,7 @@ msgstr[2] "%d comentarii ascunse cu succes." #: judge/admin/comments.py:50 msgid "Unhide comments" -msgstr "Reafişează comentariile" +msgstr "Reafișează comentariile" #: judge/admin/comments.py:58 msgid "Associated page" @@ -134,12 +142,25 @@ msgid "Included contests" msgstr "Concursuri incluse" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Problemă" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: 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:77 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 "Rejurizează" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "Setări" @@ -164,9 +185,9 @@ msgstr "Rating" msgid "Access" msgstr "Acces" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" -msgstr "Justiţie" +msgstr "Justiție" #: judge/admin/contest.py:230 #, python-format @@ -216,7 +237,7 @@ msgstr[2] "" msgid "Unlock contest submissions" msgstr "Deblochează submisiile către concurs" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -240,7 +261,7 @@ msgstr "Recalculează rezultatele" msgid "username" msgstr "nume de utilizator" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "virtual" @@ -248,17 +269,14 @@ msgstr "virtual" msgid "link path" msgstr "calea link-ului" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Conţinut" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Rezumat" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "utilizator" @@ -266,53 +284,52 @@ msgstr "utilizator" msgid "object" msgstr "obiect" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Vezi pe site" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" -msgstr "Descrie modificările făcute (opţional)" +msgstr "Descrie modificările făcute (opțional)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Social Media" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Taxonomie" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Puncte" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Limite" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Limbaj" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "Istoric" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Autori" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." @@ -320,11 +337,11 @@ msgstr[0] "Data publicării pentru %d problemă a fost actualizată cu succes." msgstr[1] "Data publicării pentru %d probleme a fost actualizată cu succes." msgstr[2] "Data publicării pentru %d probleme a fost actualizată cu succes." -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "Setează data publicării la acest moment" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." @@ -332,11 +349,11 @@ msgstr[0] "%d problemă marcată ca publică cu succes." msgstr[1] "%d problemă marcată ca publică cu succes." msgstr[2] "%d probleme marcate ca publice cu succes." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Marchează probleme ca publice" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." @@ -344,28 +361,35 @@ msgstr[0] "%d problemă marcată ca privată cu succes." msgstr[1] "%d problemă marcată ca privată cu succes." msgstr[2] "%d probleme marcate ca private cu succes." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "problemă" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Utilizator" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "Email" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "Fus orar" @@ -375,10 +399,10 @@ msgstr "data alăturării" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "%d utilizator au scoruri recalculate." -msgstr[1] "%d utilizator au scoruri recalculate." +msgstr[1] "%d utilizatorii au scoruri recalculate." msgstr[2] "%d utilizatorii au scoruri recalculate." #: judge/admin/profile.py:123 @@ -390,8 +414,14 @@ msgid "Disallowed problems" msgstr "Probleme nepermise" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "Aceste probleme NU pot fi transmise în acest limbaj" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "Aceste probleme NU pot fi transmise în acest limbaj." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "Regenerează" #: judge/admin/runtime.py:77 msgid "Description" @@ -405,101 +435,105 @@ msgstr "Informație" msgid "Capabilities" msgstr "Capabilități" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Gol" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "Not done" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Excepțional" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "Neacceptate" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "%s (spectator)" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "%s (virtual %d)" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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." +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." +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 were successfully rescored." +msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d submisie a fost repunctată cu succes." -msgstr[1] "%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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "Probleme incluse" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Aceste probleme sunt incluse în acest grup de probleme" +msgid "These problems are included in this group of problems." +msgstr "Aceste probleme sunt incluse în acest grup de probleme." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "Aceste probleme sunt incluse în acest tip de probleme" +msgid "These problems are included in this type of problems." +msgstr "Aceste probleme sunt incluse în acest tip de probleme." #: judge/apps.py:8 msgid "Online Judge" @@ -513,11 +547,11 @@ msgstr "Comentariu" msgid "Your part is silent, little toad." msgstr "" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "Trebuie să rezolvi cel puțin o problemă înainte ca vocea ta să poată fi auzită." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Comentariu postat" @@ -604,20 +638,23 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "Olimpiada Internațională de Informatică (înainte de 2016)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -633,91 +670,95 @@ 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:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "" +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] "" +msgstr[2] "" -#: judge/forms.py:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "Descarci comentariile?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "Descarci submisiile?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtrează după rezultat:" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "Orice evaluator" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Nume de utilizator" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Parolă" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 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:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "O problemă cu acest cod există deja." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 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:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "Un concurs cu această cheie există deja." #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "j N Y, \\o\\r\\a G:i" @@ -779,9 +820,9 @@ msgstr "voturi" msgid "body of comment" msgstr "corpul comentariului" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "ascunde comentariul" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "ascuns" #: judge/models/comment.py:48 msgid "parent" @@ -796,7 +837,7 @@ msgid "comments" msgstr "comentarii" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "Editorial pentru %s" @@ -879,7 +920,7 @@ msgid "contest name" msgstr "nume concurs" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "autori" @@ -887,7 +928,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:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "curatori" @@ -895,7 +936,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "" @@ -931,7 +972,7 @@ 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:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "probleme" @@ -944,12 +985,12 @@ msgstr "timp de început" msgid "end time" msgstr "timp de sfârșit" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "limită de timp" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "vizibil public" @@ -986,7 +1027,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -1001,85 +1042,85 @@ msgstr "" msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." -msgstr "Evaluează toţi utilizatorii care s-au inscris." +msgstr "Evaluează toți utilizatorii care s-au înscris." -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "privat pentru organizații" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "organizații" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1091,7 +1132,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1099,16 +1140,17 @@ msgid "classes" msgstr "clase" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "Imagine OpenGraph" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" -msgstr "Imagine suprascriere logo" +msgid "logo override image" +msgstr "imagine suprascriere logo" #: judge/models/contest.py:151 msgid "This image will replace the default site logo for users inside the contest." @@ -1122,7 +1164,7 @@ msgstr "" msgid "contest summary" msgstr "rezumat concurs" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1135,7 +1177,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "persoane non-grata" @@ -1199,7 +1241,7 @@ msgstr "Editează toate concursurile" msgid "Clone contest" msgstr "Clonează concursul" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1296,15 +1338,8 @@ msgstr "participarea la concurs" msgid "contest participations" msgstr "participările la concurs" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "problemă" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "puncte" @@ -1344,7 +1379,7 @@ msgstr "problema din concurs" msgid "contest problems" msgstr "problemele din concurs" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "submisie" @@ -1400,6 +1435,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "valoare" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "element de configurare" @@ -1440,7 +1483,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1460,10 +1503,6 @@ msgstr "conținut postare" msgid "post summary" msgstr "rezumat postare" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "imagine OpenGraph" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "Editează toate postările" @@ -1480,336 +1519,373 @@ msgstr "postare pe blog" msgid "blog posts" msgstr "postări pe blog" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "tipul problemei" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "tipurile problemei" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "grupul problemei" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "grupurile problemei" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "nume complet" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "Afişat pe paginile sub această licenţă" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." +msgstr "Afișat pe paginile sub această licență." -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "pictogramă" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "Hyperlink către icon" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "Hyperlink către icon." -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "licență" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "licențe" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "Doar submisiile proprii" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "codul problemei" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "numele problemei" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "creatori" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 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:131 +#: judge/models/problem.py:127 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:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 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:140 +#: judge/models/problem.py:135 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:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "limită de memorie" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "se acordă punctaje parțiale" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "limbaje permise" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "data publicării" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "Licența sub care este publicată această problemă." -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "rezumatul problemei" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Duplică problemă" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "limbaj" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "limita de resurse specifică limbii" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "limite de resurse specifică limbii" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" -msgstr "soluţie" +msgstr "soluție" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" -msgstr "soluţii" +msgstr "soluții" + +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "votant" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "notă" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" #: judge/models/problem_data.py:23 msgid "Standard" @@ -1851,11 +1927,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1863,59 +1939,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "verificator" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "argumente verificator" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" -msgstr "argumente verificator ca obiect JSON" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." +msgstr "Argumente verificator ca obiect JSON." -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "set de date pentru problemă" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "cazul este pre-test?" @@ -1928,12 +2012,12 @@ msgid "organization slug" msgstr "slug organizație" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "Numele organizației așa cum apare in URL" +msgid "Organization name shown in URLs." +msgstr "Numele organizației așa cum apare in URL." #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "Afişat lângă numele de utilizator în timpul concursurilor" +msgid "Displayed beside user name during contests." +msgstr "Afișat lângă numele de utilizator în timpul concursurilor." #: judge/models/profile.py:47 msgid "organization description" @@ -1944,8 +2028,8 @@ msgid "administrators" msgstr "administratori" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "Cei care pot edita această organizaţie" +msgid "Those who can edit this organization." +msgstr "Cei care pot edita această organizație." #: judge/models/profile.py:50 msgid "creation date" @@ -1956,20 +2040,20 @@ msgid "is open organization?" msgstr "este o organizație deschisă?" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "Permite aderarea la organizaţie" +msgid "Allow joining organization." +msgstr "Permite aderarea la organizație." #: judge/models/profile.py:53 msgid "maximum size" msgstr "dimensiune maximă" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "Numărul maxim de utilizatori din această organizație, aplicabil numai organizațiilor private" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "Numărul maxim de utilizatori din această organizație, aplicabil numai organizațiilor private." -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "Cod de acces pentru student" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "Cod de acces pentru student." #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1980,11 +2064,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1996,12 +2080,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "organizație" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -2013,7 +2097,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2024,12 +2108,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "cod de acces pentru student" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2041,7 +2121,7 @@ msgstr "membrii" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "clasă" @@ -2054,8 +2134,8 @@ msgid "self-description" msgstr "auto-descriere" #: judge/models/profile.py:150 -msgid "location" -msgstr "" +msgid "time zone" +msgstr "fus orar" #: judge/models/profile.py:152 msgid "preferred language" @@ -2085,8 +2165,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2112,165 +2192,185 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "JavaScript definit de utilizator pentru personalizarea site-ului." -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "motor de matematică" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "profil utilizator" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "profiluri utilizatori" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "nume dispozitiv" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "stare" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Nehotărât" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Aprobat" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Respins" + +#: judge/models/profile.py:372 msgid "reason" msgstr "motiv" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" -msgstr "cerere de a se alătura organizaţiei" +msgstr "cerere de a se alătura organizației" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" -msgstr "cereri de a se alătura organizaţiei" +msgstr "cereri de a se alătura organizației" #: judge/models/runtime.py:19 msgid "short identifier" @@ -2297,7 +2397,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2377,16 +2477,16 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" -msgstr "Numele server-ului, in stil de hostname" +msgid "Server name, hostname-style." +msgstr "Numele server-ului, in stil de hostname." #: judge/models/runtime.py:126 msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" -msgstr "O cheie de autentificare pentru acest judge" +msgid "A key to authenticate this judge." +msgstr "O cheie de autentificare pentru acest judge." #: judge/models/runtime.py:128 msgid "authentication key" @@ -2418,7 +2518,7 @@ msgstr "" #: judge/models/runtime.py:136 msgid "Load for the last minute, divided by processors to be fair." -msgstr "Încărcarea in ultimul minut, împărţită la numarul de procesoare." +msgstr "Încărcarea in ultimul minut, împărțită la numărul de procesoare." #: judge/models/runtime.py:138 msgid "last connected IP" @@ -2470,9 +2570,9 @@ msgstr "Compile Error" msgid "Internal Error" msgstr "Internal Error" -#: judge/models/submission.py:31 -msgid "Short circuit" -msgstr "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" +msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 #: judge/models/submission.py:64 @@ -2495,10 +2595,6 @@ msgstr "Grading" msgid "Completed" msgstr "Completed" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "Internal Error (judging server error)" @@ -2507,15 +2603,15 @@ msgstr "Internal Error (judging server error)" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "timp de execuție" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "consum de memorie" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "puncte acordate" @@ -2567,97 +2663,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "submisii" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "testul submisiei" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "testele submisiei" @@ -2705,10 +2801,6 @@ msgstr "" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "" - #: judge/models/ticket.py:34 msgid "message body" msgstr "" @@ -2817,7 +2909,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2840,10 +2932,6 @@ msgstr "Timp limită depășit" msgid "Error" msgstr "Eroare" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "Nu se poate trece amândoua queryset şi filtrele cu cuvinte cheie" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "Această parolă este prea comună." @@ -2886,7 +2974,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "Pagina %d din Posturi" @@ -2911,7 +2999,7 @@ msgstr "" msgid "You already voted." msgstr "Ai votat deja." -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "Editat de pe site" @@ -2953,12 +3041,12 @@ msgstr "" #: judge/views/contests.py:353 msgid "Contest not ongoing" -msgstr "Concursul nu este în curs de desfăşurare" +msgstr "Concursul nu este în curs de desfășurare" #: judge/views/contests.py:354 #, python-format msgid "\"%s\" is not currently ongoing." -msgstr "Momentan, \"%s\" nu este în curs de desfăşurare." +msgstr "Momentan, \"%s\" nu este în curs de desfășurare." #: judge/views/contests.py:359 msgid "Banned from joining" @@ -2984,64 +3072,60 @@ msgstr "" #: judge/views/contests.py:440 #, python-format msgid "You are not in contest \"%s\"." -msgstr "Nu sunteţi în concursul \"%s\"." - -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" +msgstr "Nu sunteți în concursul \"%s\"." -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "Concursuri în %(month)s" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "F Y" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Participare" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3065,86 +3149,97 @@ msgstr "nicio permisiune pentru %s" msgid "corrupt page %s" msgstr "pagina corupta %s" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "Limbaje" #: judge/views/organization.py:52 judge/views/organization.py:55 msgid "No such organization" -msgstr "Nicio organizaţie de acest fel" +msgstr "Nicio organizație de acest fel" #: judge/views/organization.py:53 #, python-format msgid "Could not find an organization with the key \"%s\"." -msgstr "Nicio organizaţie găsită cu cheia \"%s\"." +msgstr "Nicio organizație găsită cu cheia \"%s\"." #: judge/views/organization.py:56 msgid "Could not find such organization." -msgstr "Nu am putut găsi organizaţii de acest fel." +msgstr "Nu am putut găsi organizații de acest fel." #: judge/views/organization.py:81 judge/views/register.py:33 #: templates/user/user-list-tabs.html:5 msgid "Organizations" -msgstr "Organizaţii" +msgstr "Organizații" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "%s Membri" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" -msgstr "Aderarea la organizaţie" +msgstr "Aderarea la organizație" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." -msgstr "Sunteţi deja în organizaţie." +msgstr "Sunteți deja în organizație." -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." -msgstr "Această organizaţie nu este deschisă." +msgstr "Această organizație nu este deschisă." -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" -msgstr "Părăsire organizaţie" +msgstr "Părăsire organizație" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." -msgstr "Nu sunteţi în \"%s\"." +msgstr "Nu sunteți în \"%s\"." -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "Cerere de adăugare la %s" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "Detalii despre cererea de adăugare" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "Gestionarea cererilor de asociere cu %s" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +msgid "Your organization can only receive %d more member." +msgid_plural "Your organization can only receive %d more members." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: judge/views/organization.py:297 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3152,7 +3247,7 @@ msgstr[0] "Aprobat %d utilizator." msgstr[1] "Aprobat %d utilizatori." msgstr[2] "Aprobat %d utilizatori." -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3160,137 +3255,152 @@ msgstr[0] "Respins %d utilizator." msgstr[1] "Respins %d utilizatori." msgstr[2] "Respins %d utilizatori." -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "Editare %s" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" -msgstr "Nu puteţi edita organizaţia" +msgstr "Nu puteți edita organizația" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." -msgstr "Nu aveţi permisiunea pentru a edita această organizaţie." +msgstr "Nu aveți permisiunea pentru a edita această organizație." -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "Nicio problemă de acest fel" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, 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:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Probleme" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." -msgstr "Ați fost declarat \"persoană neacceptată\" pentru această problemă. Sunteți exclus definitiv de la submiterea acestei probleme." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "Clonează Problema" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3321,12 +3431,12 @@ msgstr[2] "" #: judge/views/ranked_submission.py:68 judge/views/ranked_submission.py:71 #, python-format msgid "Best solutions for %s" -msgstr "Cele mai bune soluţii pentru %s" +msgstr "Cele mai bune soluții pentru %s" #: judge/views/ranked_submission.py:85 judge/views/ranked_submission.py:94 #, python-format msgid "Best solutions for %(problem)s in %(contest)s" -msgstr "Cele mai bune soluţii pentru %(problem)s în %(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 #, python-format @@ -3334,8 +3444,8 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" -msgstr "Numele de utilizator trebuie să conţină litere, numere sau caractere de subliniere" +msgid "A username must contain letters, numbers, or underscores." +msgstr "Numele de utilizator trebuie să conțină litere, numere sau caractere de subliniere." #: judge/views/register.py:30 msgid "Preferred language" @@ -3352,17 +3462,17 @@ msgstr "Adresa de email \"%s\" a fost deja folosită. O singură înregistrare e #: judge/views/register.py:50 msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." -msgstr "Furnizorul dvs. de e-mail nu este permis datorită istoriei de abuz. Vă rugăm să folosiţi un furnizor de e-mail respectabil." +msgstr "Furnizorul dvs. de e-mail nu este permis datorită istoriei de abuz. Vă rugăm să folosiți un furnizor de e-mail respectabil." -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "Înscrie-te" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "Problemă la autentificare" @@ -3374,7 +3484,7 @@ msgstr "" msgid "Language statistics" msgstr "Statistici ale limbei" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "Stare" @@ -3398,61 +3508,53 @@ msgstr "Permisiune refuzată." #: judge/views/submission.py:81 judge/views/submission.py:88 #, python-format msgid "Submission of %(problem)s by %(user)s" -msgstr "Soluţia problemei %(problem)s de %(user)s" +msgstr "Soluția problemei %(problem)s de %(user)s" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" -msgstr "Toate soluţile" +msgstr "Toate soluțiile" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" -msgstr "Toate soluţiile submise de %s" +msgstr "Toate soluțiile submise de %s" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" -msgstr "Toate soluţiile pentru %s" - -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "Trebuie să rezolvaţi o problemă" +msgstr "Toate soluțiile pentru %s" -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" -msgstr "Soluţiile lui %(user)s pentru %(problem)s" - -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "Trebuie să completaţi un concurs" +msgstr "Soluțiile lui %(user)s pentru %(problem)s" -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" -msgstr "Soluţiile lui {user} pentru {problem} în {contest}" +msgstr "Soluțiile lui {user} pentru {problem} în {contest}" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3561,52 +3663,47 @@ msgstr "Login" msgid "M j, Y, G:i" msgstr "j M Y, \\o\\r\\a G:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "Actualizat pe loc" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Editează-ți profilul" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "Informațiile trimise sunt invalide: %s" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" -msgstr "Latitudine sau longitudine nepotrivită" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." +msgstr "" #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" @@ -3631,68 +3728,64 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" -msgstr "Vezi Soluții" - -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 msgid "View submissions" msgstr "Vezi soluții" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" +msgstr "" + #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 msgid "Edit user" msgstr "Editează utilizator" -#: 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:80 -msgid "Rejudge" -msgstr "Rejurizează" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "Bună ziua, %(username)s." -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "Log out" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Autentificare" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "sau" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "Înregistrare" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "Acest site funcționează cel mai bine cu JavaScript activat." -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Modifică" @@ -3724,39 +3817,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "Concursuri in desfășurare" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "Concursuri programate" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "Comentarii" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "Probleme noi" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "Comentarii" @@ -3779,7 +3886,7 @@ msgstr "a comentat {time}" msgid "edit %(edits)s" msgstr "%(edits)s editări" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "editat" @@ -3787,64 +3894,90 @@ msgstr "editat" msgid "Link" msgstr "Link" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "Răspunde" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "Voturi" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "Ascunde" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "Acest comentariu este ascuns din cauza unui feedback negativ prea mare." -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "Afișează-l oricum." -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "Nu sunt comentarii în acest moment." -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "Comentariu nou" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "Corpul comentariului nevalid." -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "Postează!" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "Comentariile sunt dezactivate pentru această pagină." -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "Răspunde la comentariu" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "{edits} editări" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "original" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "Votant" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "Scor" @@ -3852,6 +3985,18 @@ msgstr "Scor" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "Cod de acces invalid." @@ -3916,12 +4061,12 @@ msgstr "Următor" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "Calendar" @@ -3929,7 +4074,7 @@ msgstr "Calendar" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "Stastici" @@ -3954,7 +4099,7 @@ msgstr "Clonează" msgid "Leave contest" msgstr "Părăsiți concursul" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "Alătură-te virtual" @@ -3971,7 +4116,7 @@ msgstr "Intră în concurs" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "Nu te poți alătura acestui concurs." @@ -3979,6 +4124,16 @@ msgstr "Nu te poți alătura acestui concurs." msgid "Log in to participate" msgstr "Autentifică-te pentru a putea participa" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "Participă virtual." @@ -3987,6 +4142,21 @@ msgstr "Participă virtual." msgid "Contest is over." msgstr "Concursul s-a terminat." +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "j F Y, G:i T" @@ -4120,9 +4290,9 @@ msgstr "Un **cod de acces este necesar** pentru alăturarea la concurs." msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "Utilizatori" @@ -4130,7 +4300,7 @@ msgstr "Utilizatori" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4143,10 +4313,6 @@ msgstr "Ești sigur că vrei să te alături?" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "Alăturarea la un concurs pentru prima dată pornește cronometrul, după care nu mai poate fi oprit." -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "ascuns" - #: templates/contest/list.html:84 msgid "private" msgstr "privat" @@ -4155,38 +4321,55 @@ msgstr "privat" msgid "rated" msgstr "evaluat" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "Fereastra de %(time_limit)s" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "Intră" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" -msgstr "Concursuri Active" +#: templates/contest/list.html:161 +msgid "Active contests" +msgstr "Concursuri active" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Concurs" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "Concursuri in Desfășurare" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "Concursuri Programate" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "Nu există concursuri programate în acest moment." -#: templates/contest/list.html:272 -msgid "Past Contests" -msgstr "Concursuri Terminate" +#: templates/contest/list.html:274 +msgid "Past contests" +msgstr "Concursuri terminate" #: templates/contest/media-js.html:4 msgid "Are you sure you want to leave?" @@ -4206,22 +4389,30 @@ msgid "Joining this contest will leave %(contest)s." msgstr "Alăturarea la acest concurs va duce la părăsirea %(contest)s." #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4275,19 +4466,19 @@ msgstr "Dez-descalifică" msgid "Disqualify" msgstr "Descalifică" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "Ești sigur că vrei să descalifici această participare?" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 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:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "Arată organizațiile" @@ -4308,8 +4499,8 @@ msgid "Language AC Rate" msgstr "Procent soluții corecte (AC) după limbă" #: templates/license.html:12 -msgid "Source:" -msgstr "Sursă:" +msgid "Visit source" +msgstr "" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4370,7 +4561,7 @@ msgstr "Abonamentul dumneavoastră a fost actualizat cu succes." #: 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 "Cererea dumneavoastră de actualizare a fost primită cu succes. Un email a fost trimis către dumneavoastră. Urmaţi link-ul de activare din acel email pentru a actualiza abonamentul." +msgstr "Cererea dumneavoastră de actualizare a fost primită cu succes. Un email a fost trimis către dumneavoastră. Urmați link-ul de activare din acel email pentru a actualiza abonamentul." #: templates/organization/edit.html:47 #: templates/organization/requests/pending.html:34 @@ -4392,11 +4583,11 @@ msgstr "" #: templates/organization/home.html:45 msgid "Leave organization" -msgstr "Părăsiţi organizaţia" +msgstr "Părăsiți organizația" #: templates/organization/home.html:50 msgid "Join organization" -msgstr "Alăturaţi-vă organizaţiei" +msgstr "Alăturați-vă organizației" #: templates/organization/home.html:54 msgid "Request membership" @@ -4404,7 +4595,7 @@ msgstr "Cerere de membru" #: templates/organization/home.html:60 msgid "Edit organization" -msgstr "Editează organizaţia" +msgstr "Editează organizația" #: templates/organization/home.html:65 msgid "View requests" @@ -4448,7 +4639,7 @@ msgstr "Nume de utilizator:" #: templates/organization/requests/detail.html:17 msgid "Organization:" -msgstr "Organizaţie:" +msgstr "Organizație:" #: templates/organization/requests/detail.html:25 msgid "Time:" @@ -4474,9 +4665,9 @@ msgid "There are no requests to approve." msgstr "Nu aveți cereri de aprobare." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" -msgstr "Ştergeţi?" +msgstr "Ștergeți?" #: templates/organization/requests/request.html:24 msgid "Select your class:" @@ -4487,25 +4678,13 @@ msgid "Your reason for joining:" msgstr "Motivul pentru care doriți să vă alăturați:" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "Solicitare" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Nehotărât" +msgid "Request!" +msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "Jurnal" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "Aprobat" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "Respins" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4522,55 +4701,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "Vezi YAML" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "Verificator" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "Trimiteți!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4582,7 +4765,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "Autor:" @@ -4593,20 +4776,20 @@ msgstr[2] "Autori:" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Categorie" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "Tipuri" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4670,28 +4853,34 @@ msgstr "Reevaluează Totul" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "Acest lucru va reevalua %(count)d submisii." +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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] "" +msgstr[2] "" -#: templates/problem/manage_submission.html:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "Reevaluează toate submisiile" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "Versiune PDF" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" -msgstr "Trimite soluţie" +msgstr "Trimite soluție" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" @@ -4699,90 +4888,103 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" -msgstr "Soluţiile mele" +msgstr "Soluțiile mele" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" -msgstr "Cele mai bune soluţii" +msgstr "Cele mai bune soluții" + +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "Schimbă problema" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "Puncte:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" -msgstr "(parţial)" +msgstr "(parțial)" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "Limita de timp:" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "Limita de memorie:" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "Tip de problemă" msgstr[1] "Tipuri de probleme" msgstr[2] "Tipuri de probleme" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "Limbajele acceptate" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "Nici un judge pentru %(lang)s e online" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "Raportează o problemă" @@ -4800,7 +5002,7 @@ msgstr "Căutare probleme" #: templates/problem/search-form.html:8 msgid "Search problems..." -msgstr "Căutaţi problemele..." +msgstr "Căutați problemele..." #: templates/problem/search-form.html:14 msgid "Full text search" @@ -4831,8 +5033,8 @@ msgstr "Tipuri de probleme" msgid "Point range" msgstr "Interval de puncte" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "Caută" @@ -4869,6 +5071,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "Nici un judge nu este disponibil pentru această problemă." +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4878,6 +5128,52 @@ msgstr "%(key)s este o cheie de activare invalidă." msgid "Your account has been successfully activated." msgstr "Contul a fost activat cu succes." +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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[2] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "Ne vedem în curând!" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "Nume de utilizator sau parolă invalide." @@ -4885,7 +5181,7 @@ msgstr "Nume de utilizator sau parolă invalide." #: templates/registration/login.html:53 #: templates/registration/two_factor_auth.html:92 msgid "Login!" -msgstr "Conectaţi-vă!" +msgstr "Conectați-vă!" #: templates/registration/login.html:56 msgid "Forgot your password?" @@ -4924,7 +5220,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "Parola dumneavoastră a fost setată. Acum puteți să vă logați." #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "Resetează Parola" @@ -4940,40 +5235,37 @@ msgstr "Ți-am trimis prin e-mail instrucțiunile pentru resetarea parolei. Ar t 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "Ne vedem în curând! Dacă ai probleme cu resetarea e-mailului, nu ezita să ne conectezi prin e-mail la" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" -msgstr "Ne vedem în curând!" +#: 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 "" #: 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 "Ați primit acest email pentru că aţi solicitat resetarea parolei pentru contul dumneavoastră de utilizator pe %(site_name)s." +msgstr "Ați primit acest email pentru că ați solicitat resetarea parolei pentru contul dumneavoastră de utilizator pe %(site_name)s." #: templates/registration/password_reset_email.txt:3 msgid "Please go to the following page and choose a new password:" -msgstr "Vă rugăm să accesați următoarea pagină şi să alegeţi o parolă nouă:" +msgstr "Vă rugăm să accesați următoarea pagină și să alegeți o parolă nouă:" #: templates/registration/password_reset_email.txt:7 msgid "Your username, in case you've forgotten:" -msgstr "Numele de utilizator, în cazul in care aţi uitat:" +msgstr "Numele de utilizator, în cazul in care ați uitat:" #: templates/registration/password_reset_email.txt:9 msgid "Thanks for using our site!" -msgstr "Vă mulţumim pentru utilizarea site-ului nostru!" +msgstr "Vă mulțumim pentru utilizarea site-ului nostru!" #: templates/registration/password_reset_email.txt:11 #, python-format @@ -4985,7 +5277,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:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continuă >" @@ -4998,41 +5290,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "alege de pe hartă" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "Prin înregistrare, ești de acord cu" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "Termeni și condiții" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "Înscrie-te!" @@ -5041,7 +5328,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "Pentru a îți proteja contul, trebuie mai întâi să te autentifici înainte de a putea dezactiva autentificarea în doi pași." #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5073,14 +5361,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5089,6 +5380,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5106,19 +5398,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5144,38 +5432,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "Soluții corecte (AC) după limbă" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "Evaluator" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "Conectat" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "Uptime" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "Ping" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "Încărcare" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "Niciun evaluator nu este disponibil în acest moment." -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "ID" @@ -5208,23 +5496,27 @@ msgstr "O eroare internă a apărut în timpul notării." msgid "Error information" msgstr "Informații eroare" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "Filtrează după stare..." -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "Filtrează după limbaj..." -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "Filtrează submisiile" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "Total:" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "Ai fost deconectat. Reîmprospătează pagina pentru a afișa ultimele actualizări." @@ -5290,20 +5582,24 @@ msgid "Execution Results" msgstr "Rezultate de Executare" #: templates/submission/status-testcases.html:51 -msgid "Batch " -msgstr "Lot " +#, python-format +msgid "Batch #%(id)d" +msgstr "Lot #%(id)d" #: templates/submission/status-testcases.html:64 -msgid "Case" -msgstr "Caz" +#, python-format +msgid "Case #%(id)d:" +msgstr "Cazul #%(id)d:" #: templates/submission/status-testcases.html:66 -msgid "Pretest" -msgstr "Pretest" +#, python-format +msgid "Pretest #%(id)d:" +msgstr "Pretest #%(id)d:" #: templates/submission/status-testcases.html:68 -msgid "Test case" -msgstr "Caz de test" +#, python-format +msgid "Test case #%(id)d:" +msgstr "Caz de test #%(id)d:" #: templates/submission/status-testcases.html:101 msgid "Your output (clipped)" @@ -5347,11 +5643,11 @@ msgstr "Soluția a fost anulată!" msgid "View source" msgstr "Vezi sursa" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "Apasă Ctrl-Enter sau Command-Enter pentru a anula." -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "Anuleaza" @@ -5368,42 +5664,42 @@ msgstr "Cele mai bune" msgid "%(user)s's" msgstr "Ale utilizatorului %(user)s" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "Redeschise: " -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "Închise: " -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "Titlu" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5425,31 +5721,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "Nimic aici." @@ -5457,140 +5754,162 @@ msgstr "Nimic aici." msgid "Rank" msgstr "Rang" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "Se generează..." -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "Regenerează" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "Șterge" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 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:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "Generează" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 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:284 -msgid "Self-description" -msgstr "Auto-descriere" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" +msgstr "" + +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "Selectează cel mai apropiat oraș major" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" -msgstr "Temă editor" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "Motor de matematică" +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" +msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "" + +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "Schimbați avatarul" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "Schimbați parola" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" -msgstr "Autentificarea în doi pași este activată" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" +msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "Dezactivează" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "Reîmprospătează" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "Ascuns" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "Activează" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" -msgstr "Chei de securitate" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" +msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "Adaugă" -#: templates/user/edit-profile.html:435 -msgid "User-script" -msgstr "Script de utilizator" +#: templates/user/edit-profile.html:436 +msgid "User-script:" +msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "Actualizați profilul" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5605,31 +5924,41 @@ msgstr "" msgid "Track progress" msgstr "Urmărește progresul" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "De îndată ce datele tale sunt pregătite, vei găsi un link de descărcare pe această pagină." -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "Submisii" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "Pregătește o descărcare nouă" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "Pregătește descărcarea" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "Descarcă datele pregătite" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "Datele tale sunt gata!" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "Descarcă datele" @@ -5647,11 +5976,11 @@ msgstr "Despre" #: templates/user/user-about.html:40 msgid "You have not shared any information." -msgstr "Nu aţi împărtăşit nicio informaţie." +msgstr "Nu ați împărtășit nicio informație." #: templates/user/user-about.html:42 msgid "This user has not shared any information." -msgstr "Acest utilizator nu a împărtăşit nicio informaţie." +msgstr "Acest utilizator nu a împărtășit nicio informație." #: templates/user/user-about.html:59 msgid "Sun" @@ -5693,11 +6022,7 @@ msgstr "Mai mult" msgid "Rating history" msgstr "Istoric rating" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "în ultimul an" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" @@ -5705,15 +6030,15 @@ msgstr[0] "%(counter)s problemă rezolvată" msgstr[1] "%(counter)s probleme rezolvate" msgstr[2] "%(counter)s probleme rezolvate" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "Clasament după puncte:" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "Numărul total de puncte:" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" @@ -5721,19 +6046,19 @@ msgstr[0] "%(counter)s concurs scris" msgstr[1] "%(counter)s concursuri scrise" msgstr[2] "%(counter)s concursuri scrise" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "Clasament după rating:" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "Rating:" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "Rating minim:" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "Rating maxim:" @@ -5757,12 +6082,12 @@ msgstr "Probleme create" msgid "Hide problems I've solved" msgstr "Ascunde probleme care am rezolvat" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" -msgstr "%(points).1f puncte" +msgid "%(group)s (%(val)s points)" +msgstr "%(group)s (%(val)s puncte)" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "%(points)s / %(total)s" diff --git a/locale/ro/LC_MESSAGES/djangojs.po b/locale/ro/LC_MESSAGES/djangojs.po index 225942b0d6..074c707a99 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:44\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:207 +#: resources/common.js:195 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -25,8 +25,63 @@ msgstr[0] "%d zi %h:%m:%s" msgstr[1] "%d zi %h:%m:%s" msgstr[2] "%d zile %h:%m:%s" -#: resources/common.js:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: 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[2] "" + +#: 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[2] "" + +#: 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[2] "" + diff --git a/locale/ru/LC_MESSAGES/django.po b/locale/ru/LC_MESSAGES/django.po index 4664ae0782..ca3a21de17 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-20 00:55\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Каталанский" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Немецкий" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Греческий" + +#: dmoj/settings.py:384 msgid "English" msgstr "Английский" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Испанский" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Французский" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Хорватский" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Венгерский" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Японский" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Корейский" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "Бразильский португальский" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Румынский" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Русский" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Сербский (латиница)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Турецкий" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Вьетнамский" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Упрощенный китайский" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "Традиционный китайский" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Главная" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "Содержание" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -136,12 +144,25 @@ msgid "Included contests" msgstr "Включены конкурсы" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Проблема" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "Задачи" + +#: judge/admin/contest.py:77 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 "" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "Настройки" @@ -166,7 +187,7 @@ msgstr "Рейтинг" msgid "Access" msgstr "Доступ" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "Судья" @@ -222,7 +243,7 @@ msgstr[3] "%d соревнования успешно разблокирован msgid "Unlock contest submissions" msgstr "Разблокировать решения соревнования" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -248,7 +269,7 @@ msgstr "Пересчитать результаты" msgid "username" msgstr "имя пользователя" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "виртуальный" @@ -256,17 +277,14 @@ msgstr "виртуальный" msgid "link path" msgstr "адресс ссылки" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Содержание" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Сводка" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "пользователь" @@ -274,53 +292,52 @@ msgstr "пользователь" msgid "object" msgstr "объект" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Посмотреть на сайте" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "Опишите изменения, которые вы сделали (не обязательно)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Социальные Сети" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Таксономия" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Очки" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Ограничения" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Язык" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "История" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Авторы" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." @@ -329,11 +346,11 @@ msgstr[1] "%d дат публикации успешно обновлено." msgstr[2] "%d дат публикации успешно обновлено." msgstr[3] "%d даты публикации успешно обновлены." -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "Установить дату публикации" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." @@ -342,11 +359,11 @@ msgstr[1] "%d задачи успешно сделаны публичными." msgstr[2] "%d задачи успешно сделаны публичными." msgstr[3] "%d задачи успешно сделаны публичными." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Пометить задачу как публичную" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." @@ -355,28 +372,35 @@ msgstr[1] "%d задачи успешно сдаланы приватными." msgstr[2] "%d задачи успешно сделаны приватными." msgstr[3] "%d задачи успешно сделаны приватными." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "задача" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Пользователь" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "Эл. почта" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "Часовой пояс" @@ -386,11 +410,11 @@ msgstr "дата регистрации" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "У %d пользователя пересчитаны баллы." msgstr[1] "У %d пользователей пересчитаны баллы." -msgstr[2] "У %d пользователей пересчитаны баллы." +msgstr[2] "У %d пользователей пересчитали баллы." msgstr[3] "У %d пользователей пересчитали баллы." #: judge/admin/profile.py:123 @@ -402,8 +426,14 @@ msgid "Disallowed problems" msgstr "Запрещенные задачи" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "Решения этих задач нельзя сдавать на этом языке" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "Решения этих задач нельзя сдавать на этом языке." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "" #: judge/admin/runtime.py:77 msgid "Description" @@ -417,102 +447,106 @@ msgstr "Информация" msgid "Capabilities" msgstr "Возможности" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Не указано" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "Не сделано" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Исключительный" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "Незачтенный" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." msgstr[0] "%d решение было пересчитано." msgstr[1] "%d решений были переоценены." -msgstr[2] "%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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "Включенные задачи" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Эти задачи включены в эту группу задач" +msgid "These problems are included in this group of problems." +msgstr "Эти задачи включены в эту группу задач." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "Эти задачи включены в этот тип задач" +msgid "These problems are included in this type of problems." +msgstr "Эти задачи включены в этот тип задач." #: judge/apps.py:8 msgid "Online Judge" @@ -526,11 +560,11 @@ msgstr "Содержание комментария" msgid "Your part is silent, little toad." msgstr "Твоя роль-молчание, маленькая жаба." -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "Вам нужно решить хотя бы одну задачу, чтобы оставить комментарий." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Опубликованный комментарий" @@ -619,20 +653,24 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "IOI (до 2016)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "Маркеры двухфакторной аутентификации должны содержать {TOTP_CODE_LENGTH} десятичных знаков." +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "Недействительный двухфакторный код аутентификации." -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." -msgstr "Коды Scratch должны содержать 16 символов base32." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." +msgstr "Коды Scratch должны содержать 16 символов Base32." -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "Неверный scratch-код." @@ -648,91 +686,96 @@ msgstr "Включить экспериментальные возможност msgid "You must solve at least one problem before you can update your profile." msgstr "Вы должны решить хотя бы одну проблему, прежде чем вы сможете обновить свой профиль." -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "Вы не можете состоять более чем в {count} публичных организациях." +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] "" +msgstr[2] "" +msgstr[3] "" -#: judge/forms.py:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "Загрузить комментарии?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "Загрузить решения?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "Фильтр по коду задач:" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "Оставьте пустым, чтобы включить все сданные решения" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Фильтр по результату:" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "Пожалуйста, выберите хотя бы одну вещь для загрузки." -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "Любой судья" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Имя пользователя" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Пароль" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "Неверная длина кода." -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "Недействительный WebAuthn ответ." -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "Неверный идентификатор учетных данных WebAuthn." -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "Неверный токен двухфакторной аутентификации или scratch-код." -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "Необходимо указать totp_token или webauthn_response." -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Код задачи должен быть ^[a-z0-9]+$" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "Задача с кодом уже существует." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "Идентификатор соревнования должен быть ^[a-z0-9]+$" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "Соревнование с ключом уже существует." #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "" @@ -794,9 +837,9 @@ msgstr "голоса" msgid "body of comment" msgstr "тело комментария" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "скрыть комментарий" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "" #: judge/models/comment.py:48 msgid "parent" @@ -811,7 +854,7 @@ msgid "comments" msgstr "комментарии" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "Разбор задач для %s" @@ -894,7 +937,7 @@ msgid "contest name" msgstr "название соревнования" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "авторы" @@ -902,7 +945,7 @@ msgstr "авторы" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "" @@ -910,7 +953,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "" @@ -946,7 +989,7 @@ msgstr "" msgid "description" msgstr "описание" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "задачи" @@ -959,12 +1002,12 @@ msgstr "время начала" msgid "end time" msgstr "время конца" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "ограничение по памяти" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "" @@ -1001,7 +1044,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -1016,85 +1059,85 @@ msgstr "Используйте систему кларов вместо комм msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "спрятать тэги задач" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "запустить только претесты" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "организации" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1106,7 +1149,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1114,15 +1157,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1137,7 +1181,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1150,7 +1194,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "" @@ -1214,7 +1258,7 @@ msgstr "" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1311,15 +1355,8 @@ msgstr "участие в соревновании" msgid "contest participations" msgstr "" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "задача" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "очки" @@ -1359,7 +1396,7 @@ msgstr "" msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "посылка" @@ -1415,6 +1452,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "значение" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1455,7 +1500,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1475,10 +1520,6 @@ msgstr "" msgid "post summary" msgstr "" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "" @@ -1495,337 +1536,374 @@ msgstr "" msgid "blog posts" msgstr "" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "" -#: judge/models/problem.py:67 -msgid "URL to the icon" +#: judge/models/problem.py:66 +msgid "URL to the icon." msgstr "" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "язык" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "" @@ -1866,11 +1944,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1878,59 +1956,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1943,11 +2029,11 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" +msgid "Organization name shown in URLs." msgstr "" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" +msgid "Displayed beside user name during contests." msgstr "" #: judge/models/profile.py:47 @@ -1959,7 +2045,7 @@ msgid "administrators" msgstr "" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" +msgid "Those who can edit this organization." msgstr "" #: judge/models/profile.py:50 @@ -1971,7 +2057,7 @@ msgid "is open organization?" msgstr "" #: judge/models/profile.py:52 -msgid "Allow joining organization" +msgid "Allow joining organization." msgstr "" #: judge/models/profile.py:53 @@ -1979,11 +2065,11 @@ msgid "maximum size" msgstr "" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" +msgid "Maximum amount of users in this organization, only applicable to private organizations." msgstr "" -#: judge/models/profile.py:56 -msgid "Student access code" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." msgstr "" #: judge/models/profile.py:60 @@ -1995,11 +2081,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -2011,12 +2097,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -2028,7 +2114,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2039,12 +2125,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2056,7 +2138,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2069,8 +2151,8 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" -msgstr "" +msgid "time zone" +msgstr "часовой пояс" #: judge/models/profile.py:152 msgid "preferred language" @@ -2100,8 +2182,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2127,163 +2209,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + +#: judge/models/profile.py:372 msgid "reason" msgstr "" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2312,7 +2414,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2392,7 +2494,7 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2400,7 +2502,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2485,8 +2587,8 @@ msgstr "" msgid "Internal Error" msgstr "" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2510,10 +2612,6 @@ msgstr "" msgid "Completed" msgstr "" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2522,15 +2620,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2582,97 +2680,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2720,10 +2818,6 @@ msgstr "" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "" - #: judge/models/ticket.py:34 msgid "message body" msgstr "тело сообщения" @@ -2832,7 +2926,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2855,10 +2949,6 @@ msgstr "" msgid "Error" msgstr "" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2904,7 +2994,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2929,7 +3019,7 @@ msgstr "" msgid "You already voted." msgstr "" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -3004,62 +3094,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "Онлайн" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3083,7 +3169,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3106,63 +3192,76 @@ msgstr "" msgid "Organizations" msgstr "" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +msgid "Your organization can only receive %d more member." +msgid_plural "Your organization can only receive %d more members." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: judge/views/organization.py:297 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3171,7 +3270,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3180,137 +3279,152 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Задачи" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3355,7 +3469,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3375,15 +3489,15 @@ msgstr "" msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "Зарегистрироваться" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "Ошибка авторизации" @@ -3395,7 +3509,7 @@ msgstr "" msgid "Language statistics" msgstr "Статистика языка" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "Статус" @@ -3421,59 +3535,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3582,51 +3688,46 @@ msgstr "Войти" msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3652,13 +3753,15 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3666,54 +3769,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "Bыйти" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Войти" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Редактировать" @@ -3745,39 +3842,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "Текущие соревнования" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "Предстоящие соревнования" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "" @@ -3800,7 +3911,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "отредактирован" @@ -3808,64 +3919,90 @@ msgstr "отредактирован" msgid "Link" msgstr "Ссылка" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "Ответить" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "Еще нет ни одного комментария." -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "Добавить комментарий" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "" @@ -3873,6 +4010,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3937,12 +4086,12 @@ msgstr "Следующая" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "" @@ -3950,7 +4099,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "Статистика" @@ -3975,7 +4124,7 @@ msgstr "" msgid "Leave contest" msgstr "Покинуть соревнование" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "Виртуальное участие" @@ -3992,7 +4141,7 @@ msgstr "Присоединиться к соревнованию" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -4000,6 +4149,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -4008,6 +4167,21 @@ msgstr "" msgid "Contest is over." msgstr "Соревнование завершено." +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "" @@ -4144,9 +4318,9 @@ msgstr "" msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "Пользователи" @@ -4154,7 +4328,7 @@ msgstr "Пользователи" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4167,10 +4341,6 @@ msgstr "" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4179,38 +4349,55 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "Присоединиться" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Соревнование" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "Текущие Соревнования" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "Предстоящие Соревнования" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "" -#: templates/contest/list.html:272 -msgid "Past Contests" -msgstr "Прошедшие Соревнования" +#: templates/contest/list.html:274 +msgid "Past contests" +msgstr "Прошедшие соревнования" #: templates/contest/media-js.html:4 msgid "Are you sure you want to leave?" @@ -4230,22 +4417,31 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4299,19 +4495,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "" @@ -4332,7 +4528,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4498,7 +4694,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "" @@ -4511,25 +4707,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" +msgid "Request!" msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "Лог" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4546,55 +4730,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "Тип" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "Отправить!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "Добавить новый пример" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4606,7 +4794,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "" @@ -4618,20 +4806,20 @@ msgstr[3] "" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Категория" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "Типы" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4695,28 +4883,36 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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] "" +msgstr[2] "" +msgstr[3] "" -#: templates/problem/manage_submission.html:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "Просмотр в формате PDF" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" @@ -4725,59 +4921,72 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "Редактировать задачу" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "" @@ -4785,16 +4994,16 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" @@ -4802,15 +5011,15 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4859,8 +5068,8 @@ msgstr "" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "" @@ -4898,6 +5107,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4907,6 +5164,54 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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[2] "" +msgstr[3] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4953,7 +5258,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "Сброс Пароля" @@ -4969,22 +5273,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." -msgstr "" - -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -5014,7 +5315,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Продолжить >" @@ -5027,41 +5328,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "выбрать на карте" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "Уведомлять меня о предстоящих соревнованиях" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "Условия использования" - -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "Зарегистрироваться!" @@ -5070,7 +5366,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5102,14 +5399,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5118,6 +5418,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5135,19 +5436,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5173,38 +5470,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "Онлайн" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "Время безотказной работы" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "Пинг" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "Загрузка" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "ID" @@ -5237,23 +5534,27 @@ msgstr "" msgid "Error information" msgstr "Сведения об ошибке" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5319,19 +5620,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5376,11 +5681,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5397,31 +5702,31 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" @@ -5429,11 +5734,11 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5455,31 +5760,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5487,140 +5793,162 @@ msgstr "" msgid "Rank" msgstr "" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5635,31 +5963,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5723,11 +6061,7 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" @@ -5736,15 +6070,15 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" @@ -5753,19 +6087,19 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "Рейтинг:" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "Мин рейтинг:" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "Макс рейтинг:" @@ -5789,12 +6123,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/ru/LC_MESSAGES/djangojs.po b/locale/ru/LC_MESSAGES/djangojs.po index 6d35092e47..054041da41 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:44\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:207 +#: resources/common.js:195 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -26,8 +26,67 @@ msgstr[1] "%d дней %h:%m:%s" msgstr[2] "%d дней %h:%m:%s" msgstr[3] "%d дней %h:%m:%s" -#: resources/common.js:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: 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[2] "" +msgstr[3] "" + +#: 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[2] "" +msgstr[3] "" + +#: 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[2] "" +msgstr[3] "" + diff --git a/locale/sr_Latn/LC_MESSAGES/django.po b/locale/sr_Latn/LC_MESSAGES/django.po index 3ad3a2c485..0212dd6658 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-20 00:55\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Katalonski" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Nemački" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Grčki" + +#: dmoj/settings.py:384 msgid "English" msgstr "Engleski" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Španski" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Francuski" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Hrvatski" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Mađarski" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Japanski" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Korejski" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "Brazilski Portugalski" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Rumunski" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Ruski" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Srpski (Latinica)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Turski" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Vijetnamski" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Pojednostavljeni Kineski" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "Klasični Kinezki" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Naslovna Strana" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "Sadržaj" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -134,12 +142,25 @@ msgid "Included contests" msgstr "Uključena takmičenja" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Zadatak" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: 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:77 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 "" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "Podešavanja" @@ -164,7 +185,7 @@ msgstr "Rangiranje" msgid "Access" msgstr "Pristup" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "Pravda" @@ -216,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:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -240,7 +261,7 @@ msgstr "Preračunati rezultati" msgid "username" msgstr "korisničko ime" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "virtualno" @@ -248,17 +269,14 @@ msgstr "virtualno" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Sadržaj" - #: judge/admin/interface.py:73 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:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "korisnik" @@ -266,53 +284,52 @@ msgstr "korisnik" msgid "object" msgstr "objekat" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Pogledaj na sajtu" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "Opišite promene koje ste napravili (neobavezno)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Social Media" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Taksonomija" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Poeni" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Granice" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Jezik" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "Istorija" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Autori" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." @@ -320,11 +337,11 @@ msgstr[0] "%d datum objavljivanja zadatka uspešno ažuriran." msgstr[1] "%d datum objavljivanja zadataka uspešno ažuriran." msgstr[2] "%d datum objavljivanja zadataka uspešno ažuriran." -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "Podesi datum objavljivanja na današnji dan" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." @@ -332,11 +349,11 @@ msgstr[0] "%d zadatak je uspešno označen kao javni." msgstr[1] "%d zadaci su uspešno označeni kao javni." msgstr[2] "%d zadaci su uspešno označeni kao javni." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Obeleži zadatak kao javni" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." @@ -344,28 +361,35 @@ msgstr[0] "%d zadatak je uspešno označen kao privatni." msgstr[1] "%d zadaci su uspešno označeni kao privatni." msgstr[2] "%d zadaci su uspešno označeni kao privatni." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "zadatak" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Korisnik" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "Email" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "Vremenska zona" @@ -375,8 +399,8 @@ msgstr "datum pridruženja" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "%d korisnikov rezultat je preračunat." msgstr[1] "%d korisnikovi rezultati su preračunati." msgstr[2] "%d korisnikovi rezultati su preračunati." @@ -390,8 +414,14 @@ msgid "Disallowed problems" msgstr "Ne dozvoljeni zadaci" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "Nije dozvoljeno predati ove zadatke na ovom jeziku" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "Nije dozvoljeno predati ove zadatke na ovom jeziku." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "" #: judge/admin/runtime.py:77 msgid "Description" @@ -405,101 +435,105 @@ msgstr "Informacija" msgid "Capabilities" msgstr "Sposobnosti" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Nijedan" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "Nije urađeno" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Izuzetno" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "Nije prihvaćeno" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +msgid "%d submission was successfully rescored." msgid_plural "%d submissions were successfully rescored." 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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "Uključeni zadaci" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Ovi zadaci su uključeni u ovu grupu zadataka" +msgid "These problems are included in this group of problems." +msgstr "Ovi zadaci su uključeni u ovu grupu zadataka." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "Ovi zadaci su uključeni u ovaj tip zadataka" +msgid "These problems are included in this type of problems." +msgstr "Ovi zadaci su uključeni u ovaj tip zadataka." #: judge/apps.py:8 msgid "Online Judge" @@ -513,11 +547,11 @@ msgstr "Sastav komentara" msgid "Your part is silent, little toad." msgstr "Trenutno ste ućutkani, skrati jezičinu." -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "Morate da rešite bar jedan zadatak pre što možete da komentarišete." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Komentar ostavljen" @@ -604,20 +638,23 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "IOI (pre-2016)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "Token za dvofaktornu autentifikaciju mora biti {TOTP_CODE_LENGTH} decimalna broja." +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "Nevažeći token za dvofaktornu autentifikaciju." -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." -msgstr "Scratch kod mora biti 16 base32 karaktera." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." +msgstr "Scratch kod mora biti 16 Base32 karaktera." -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "Nevažeći scratch kod." @@ -633,91 +670,95 @@ 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:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "Ne možete biti član više od {count} javne organizacije." +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] "" +msgstr[2] "" -#: judge/forms.py:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "Download komentare?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "Download rešenja?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "Filtriraj po glob kodu zadatka:" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "Ostavi prazno da uključiš sva rešenja" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtriraj po rezultatima:" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "Izaberite barem jednu stvar za download." -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "Bilo koji sudija" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Korisničko Ime" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Lozinka" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "Nevažeća dužina koda." -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "Nevažeći WebAuthn odgovor." -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "Nevažeći WebAuthn credential ID." -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "Nevažeći token za dvofaktornu autentifikaciju ili scratch kod." -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Kod zadatka mora biti ^[a-z0-9]+$" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "Zadatak sa tim kodom več postoji." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 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:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "Takmičenje sa tim ključem već postoji." #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "j. N Y. \\у H:i" @@ -779,9 +820,9 @@ msgstr "glasovi" msgid "body of comment" msgstr "body komentara" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "sakrij komentar" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "sakriveno" #: judge/models/comment.py:48 msgid "parent" @@ -796,7 +837,7 @@ msgid "comments" msgstr "komentari" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "Uvodnik za %s" @@ -879,7 +920,7 @@ msgid "contest name" msgstr "ime takmičenja" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "autori" @@ -887,7 +928,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:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "kustos" @@ -895,7 +936,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "testeri" @@ -931,7 +972,7 @@ msgstr "" msgid "description" msgstr "opis" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "zadaci" @@ -944,12 +985,12 @@ msgstr "vreme početka" msgid "end time" msgstr "vreme kraja" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "vremensko ograničenje" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "vidljivo za javnost" @@ -986,8 +1027,8 @@ msgid "scoreboard visibility" msgstr "vidljivost rezultata svih učesnika" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" -msgstr "Vidljivost rezultata svih učesnika tokom takmičenja" +msgid "Scoreboard visibility through the duration of the contest." +msgstr "Vidljivost rezultata svih učesnika tokom takmičenja." #: judge/models/contest.py:109 msgid "no comments" @@ -1001,85 +1042,85 @@ msgstr "Koristi clarification sistem umesto komentara." msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" -msgstr "Minimalni nivo za takmičenje" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." +msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" -msgstr "Maksimalni nivo za takmičenje" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." +msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "oceni sve" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "Oceni sve korisnike koji su se uklučili." -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "odstrani iz rangiranja" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "privatno za specijalne korisnike" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "privatni takmičari" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "sakrij oznake zadataka" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "Dali oznake zadataka treba biti nevidljive po defaultu." -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "sakrij autore zadatka" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "organizacije" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1091,7 +1132,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1099,15 +1140,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "OpenGraph slika" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1122,7 +1164,7 @@ msgstr "broj aktivnih učesnika" msgid "contest summary" msgstr "kratak opis takmičenja" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1135,7 +1177,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "personae non gratae" @@ -1199,7 +1241,7 @@ msgstr "" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS takmičenje" @@ -1296,15 +1338,8 @@ msgstr "" msgid "contest participations" msgstr "učesnici takmičenja" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "zadatak" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "poeni" @@ -1344,7 +1379,7 @@ msgstr "zadatak na takmičenju" msgid "contest problems" msgstr "zadaci na takmičenju" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "predaja" @@ -1400,6 +1435,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "ključ" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1440,7 +1483,7 @@ msgstr "" msgid "slug" msgstr "puž" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1460,10 +1503,6 @@ msgstr "objavi sadržaj" msgid "post summary" msgstr "objavi kratak opis" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "openGraph slika" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "Edituj sve objave" @@ -1480,337 +1519,374 @@ msgstr "blog objava" msgid "blog posts" msgstr "blog objave" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "Nedozvoljeni karakteri: %(value)s" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "ID kategorije zadatka" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "ime kategorije zadatka" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "tip zadatka" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "tipovi zadataka" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "ID grupe zadataka" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "ime grupe zadataka" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "grupa zadataka" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "grupe zadataka" -#: judge/models/problem.py:61 -msgid "key" -msgstr "ključ" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "link" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "puno ime" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "kratko ime" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "Prikazano na stranicama pod ovom licencom" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." +msgstr "Prikazano na stranicama pod ovom licencom." -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "ikona" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL za ikonu" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "URL za ikonu." -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "tekst licence" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "licenca" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "licence" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "Prati globalno podešavanje" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "Uvek dostupno" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "Dostupno ako je zadatak rešen" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "Samo svoja rešenja" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "kod zadatka" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" -msgstr "Kratak, jedinstveni kod za zadatak, koji se koristi u url-u posle /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" +msgstr "Kratak, jedinstveni kod za zadatak, koji se koristi u URL-u posle /problem/" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "ime zadatka" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 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:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "sadržaj zadatka" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "kreatori" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 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:131 +#: judge/models/problem.py:127 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:135 +#: judge/models/problem.py:131 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:137 +#: judge/models/problem.py:133 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:140 +#: judge/models/problem.py:135 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:142 +#: judge/models/problem.py:137 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:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "ograničenje memorije" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "Memorijsko ograničenje za ovaj zadatak, u kilobytes (npr. 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +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:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 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:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "dozvoljava dodeljivanje delimičnih poena" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "dozvoljeni jezici" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "Lista dozvoljenih jezika za rešenja." -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "broj korisnika" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "Vidi sakrivene zadatke" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "jezik" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "prevedeno ime" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "preveden opis" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "prevod zadatka" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "prevodi zadatka" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "datum objave" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "rešenje" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "rešenja" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "" @@ -1851,11 +1927,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1863,59 +1939,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "Početak batch-a" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "Kraj batch-a" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "ime ulaznog fajla" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "ime izlaznog fajla" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "vrednost poena" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1928,12 +2012,12 @@ msgid "organization slug" msgstr "puž organizacije" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "Ime organizacije prikazano u URL-u" +msgid "Organization name shown in URLs." +msgstr "Ime organizacije prikazano u URL-u." #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "Prikazano pored imena korisnika tokom takmičenja" +msgid "Displayed beside user name during contests." +msgstr "Prikazano pored imena korisnika tokom takmičenja." #: judge/models/profile.py:47 msgid "organization description" @@ -1944,8 +2028,8 @@ msgid "administrators" msgstr "administratori" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "Oni koji mogu da edit-uju ovu organizaciju" +msgid "Those who can edit this organization." +msgstr "Oni koji mogu da edit-uju ovu organizaciju." #: judge/models/profile.py:50 msgid "creation date" @@ -1956,20 +2040,20 @@ msgid "is open organization?" msgstr "je otvorena organizacija?" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "Dozvoli pridruživanje organizaciji" +msgid "Allow joining organization." +msgstr "Dozvoli pridruživanje organizaciji." #: judge/models/profile.py:53 msgid "maximum size" msgstr "maksimalna veličina" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "Maksimalan broj korisnika u ovoj organizaciji, primenljiv samo na privatne organizacije" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "Maksimalan broj korisnika u ovoj organizaciji, primenljiv samo na privatne organizacije." -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "Pristupni kod studenta" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "Pristupni kod studenta." #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1980,11 +2064,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1996,12 +2080,12 @@ 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:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "organizacija" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -2013,7 +2097,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2024,12 +2108,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "pristupni kod studenta" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2041,7 +2121,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2054,8 +2134,8 @@ msgid "self-description" msgstr "samo-opis" #: judge/models/profile.py:150 -msgid "location" -msgstr "lokacija" +msgid "time zone" +msgstr "vremenska zona" #: judge/models/profile.py:152 msgid "preferred language" @@ -2085,8 +2165,8 @@ msgstr "Običan Korisnik" msgid "Problem Setter" msgstr "Pisac Zadatka" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2112,163 +2192,183 @@ msgid "User will not be ranked." msgstr "Korisnik neće biti rangiran." #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "takmičenje u toku" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "math engine" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "API token" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "interne beleške" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "profil korisnika" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "ime uređaja" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "status" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Odbijeno" + +#: judge/models/profile.py:372 msgid "reason" msgstr "razlog" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2297,7 +2397,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "" #: judge/models/runtime.py:32 @@ -2377,7 +2477,7 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2385,7 +2485,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2470,8 +2570,8 @@ msgstr "Greška u Kompajliranju" msgid "Internal Error" msgstr "Interna Greška" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2495,10 +2595,6 @@ msgstr "" msgid "Completed" msgstr "Završeno" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2507,15 +2603,15 @@ msgstr "" msgid "submission time" msgstr "" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "" @@ -2567,97 +2663,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "statusna zastava" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2705,10 +2801,6 @@ msgstr "" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "" - #: judge/models/ticket.py:34 msgid "message body" msgstr "" @@ -2817,7 +2909,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2840,10 +2932,6 @@ msgstr "Istek vremena" msgid "Error" msgstr "Greška" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2886,7 +2974,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2911,7 +2999,7 @@ msgstr "" msgid "You already voted." msgstr "Već ste glasali." -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -2986,62 +3074,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "F Y." -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Učestvovanje" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "Oznaka takmičenja: %s" @@ -3065,7 +3149,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "" @@ -3088,63 +3172,74 @@ msgstr "" msgid "Organizations" msgstr "Organizacije" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "" +msgid "Your organization can only receive %d more member." +msgid_plural "Your organization can only receive %d more members." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: judge/views/organization.py:297 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." @@ -3152,7 +3247,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." @@ -3160,137 +3255,152 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Zadaci" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3334,7 +3444,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3354,15 +3464,15 @@ msgstr "" msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "" @@ -3374,7 +3484,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "" @@ -3400,59 +3510,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "Sva rešenja" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "Sva moja rešenja" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "Sva rešenja od %s" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "Sva rešenja za %s" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "Moja rešenja za %(problem)s" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "%(user)sa rešenja za %(problem)s" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "Moja rešenja u %(contest)s" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "" @@ -3561,51 +3663,46 @@ msgstr "" msgid "M j, Y, G:i" msgstr "j. M Y. \\у H:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "Skini vaše podatke" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3631,68 +3728,64 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" -msgstr "Vidi Rešenja" - -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 msgid "View submissions" msgstr "Vidi rešenja" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" +msgstr "" + #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "Zdravo, %(username)s." -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "ili" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Edit-uj" @@ -3724,39 +3817,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "Novi zadaci" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "Komentari" @@ -3779,7 +3886,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "" @@ -3787,64 +3894,90 @@ msgstr "" msgid "Link" msgstr "" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "Glasovi" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "Rezultat" @@ -3852,6 +3985,18 @@ msgstr "Rezultat" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3916,12 +4061,12 @@ msgstr "" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "" @@ -3929,7 +4074,7 @@ msgstr "" msgid "Info" msgstr "" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "" @@ -3954,7 +4099,7 @@ msgstr "" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "" @@ -3971,7 +4116,7 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3979,6 +4124,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" @@ -3987,6 +4142,21 @@ msgstr "" msgid "Contest is over." msgstr "" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "j. F Y. \\у H:i T" @@ -4120,9 +4290,9 @@ msgstr "" msgid "AC Rate" msgstr "" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "" @@ -4130,7 +4300,7 @@ msgstr "" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4143,10 +4313,6 @@ msgstr "" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "sakriveno" - #: templates/contest/list.html:84 msgid "private" msgstr "privatno" @@ -4155,37 +4321,54 @@ msgstr "privatno" msgid "rated" msgstr "rangirano" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "Pridruži se" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" -msgstr "Aktivna Takmičenja" +#: templates/contest/list.html:161 +msgid "Active contests" +msgstr "Aktivna takmičenja" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Takmičenje" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "Nema zakazanih takmičenja u ovom trenutku." -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "" #: templates/contest/media-js.html:4 @@ -4206,22 +4389,30 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4275,19 +4466,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "Pokaži organizacije" @@ -4308,7 +4499,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4474,7 +4665,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "" @@ -4487,25 +4678,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" +msgid "Request!" msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "Odbijeno" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "" @@ -4522,55 +4701,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "Pogledaj YAML" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "Tip" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "Predaj!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4582,7 +4765,7 @@ msgstr "" msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "Autor:" @@ -4593,20 +4776,20 @@ msgstr[2] "" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "Popularni zadaci" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Kategorija" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "" @@ -4670,28 +4853,34 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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] "" +msgstr[2] "" -#: templates/problem/manage_submission.html:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" @@ -4699,90 +4888,103 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "Poeni:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "Dozvoljeni jezici" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "Sudija:" msgstr[1] "" msgstr[2] "Sudije:" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4831,8 +5033,8 @@ msgstr "Tipovi zadatka" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "Idi" @@ -4869,6 +5071,54 @@ msgstr "" msgid "No judge is available for this problem." msgstr "" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4878,6 +5128,52 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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[2] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4924,7 +5220,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -4940,22 +5235,19 @@ msgstr "" 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 "" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." -msgstr "" - -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4985,7 +5277,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4998,41 +5290,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -5041,7 +5328,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5073,14 +5361,17 @@ msgid "Enable Two Factor Authentication" msgstr "Omogući Dvofaktornu Autentifikaciju" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5089,6 +5380,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5106,19 +5398,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5144,38 +5432,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "Sudija" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "ID" @@ -5208,23 +5496,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5290,19 +5582,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " +#, python-format +msgid "Batch #%(id)d" msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" +#, python-format +msgid "Case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" +#, python-format +msgid "Pretest #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5347,11 +5643,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "" @@ -5368,42 +5664,42 @@ msgstr "" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5425,31 +5721,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5457,140 +5754,162 @@ msgstr "" msgid "Rank" msgstr "Rang" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" -msgstr "Samo-opis" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" +msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" -msgstr "Dvofaktorna autentifikacija je uključena" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" +msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "Sakriveno" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" -msgstr "Dvofaktorna autentifikacija je isključena" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "Uključi" -#: templates/user/edit-profile.html:392 -msgid "API Token" -msgstr "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" +msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "Izbriši" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "Dodaj" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5605,31 +5924,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5693,11 +6022,7 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" @@ -5705,15 +6030,15 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" @@ -5721,19 +6046,19 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "Rangiranje:" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "Min. rangiranje:" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "Max rangiranje:" @@ -5757,12 +6082,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" +msgid "%(group)s (%(val)s points)" msgstr "" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/sr_Latn/LC_MESSAGES/djangojs.po b/locale/sr_Latn/LC_MESSAGES/djangojs.po index d398c52806..2180270dad 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-28 00:26\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:44\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:207 +#: resources/common.js:195 msgctxt "time format with day" msgid "%d day %h:%m:%s" msgid_plural "%d days %h:%m:%s" @@ -25,8 +25,63 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: resources/common.js:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: 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[2] "" + +#: 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[2] "" + +#: 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[2] "" + diff --git a/locale/tr/LC_MESSAGES/django.po b/locale/tr/LC_MESSAGES/django.po index 84f4502033..5faa19e16d 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-21 00:47\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Katalanca" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Almanca" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Yunanca" + +#: dmoj/settings.py:384 msgid "English" msgstr "İngilizce" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "İspanyolca" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Fransızca" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Hırvatça" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Macarca" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Japonca" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Korece" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "Brezilya Portekizcesi" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Rumence" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Rusça" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Sırpça (Latin)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Türkçe" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Vietnamca" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Basitleştirilmiş Çince" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "Geleneksel Çince" @@ -97,10 +101,14 @@ msgstr "" msgid "Registration Not Allowed" msgstr "" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Ana sayfa" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "İçerik" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -132,12 +140,25 @@ msgid "Included contests" msgstr "Yarışmalar" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: 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:77 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 "Yeniden değerlendir" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "Ayarlar" @@ -162,7 +183,7 @@ msgstr "Derecelendirme" msgid "Access" msgstr "Erişim" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "Demir yumruk" @@ -210,7 +231,7 @@ msgstr[1] "" msgid "Unlock contest submissions" msgstr "" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -232,7 +253,7 @@ msgstr "" msgid "username" msgstr "kullanıcı adı" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "sanal" @@ -240,17 +261,14 @@ msgstr "sanal" msgid "link path" msgstr "link ucu" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "İçerik" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Özet" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "kullanıcı" @@ -258,103 +276,109 @@ msgstr "kullanıcı" msgid "object" msgstr "" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Sitede görüntüle" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "Yaptığın değişiklikleri özetle (isteğe bağlı)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Sosyal Medya" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Tasnif" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Puanlar" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Sınırlar" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Dil" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "Geçmiş" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Yazarlar" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "" msgstr[1] "" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "%d problem herkese açık olarak işaretlendi." msgstr[1] "%d problem herkese açık olarak işaretlendi." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Problemleri herkese aç" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "%d problem gizli olarak işaretlendi." msgstr[1] "%d problem gizli olarak işaretlendi." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Kullanıcı" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "E-posta" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "Saat dilimi" @@ -364,8 +388,8 @@ msgstr "kayıt tarihi" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "%d kullanıcının puanları yeniden hesaplandı." msgstr[1] "%d kullanıcının puanları yeniden hesaplandı." @@ -378,8 +402,14 @@ msgid "Disallowed problems" msgstr "Yasaklı problemler" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "Bu problemler için bu dilde çözüm gönderilemez" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "Bu problemler için bu dilde çözüm gönderilemez." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "" #: judge/admin/runtime.py:77 msgid "Description" @@ -393,100 +423,104 @@ msgstr "Bilgi" msgid "Capabilities" msgstr "Desteklenenler" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Hiç" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "Bitmemiş" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Sıra dışı" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "Kabul edilmemiş" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "Problemler" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Bu problemler bu problem grubunun içindedir" +msgid "These problems are included in this group of problems." +msgstr "Bu problemler bu problem grubunun içindedir." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "Bu problemler bu problem tipinin içindedir" +msgid "These problems are included in this type of problems." +msgstr "Bu problemler bu problem tipinin içindedir." #: judge/apps.py:8 msgid "Online Judge" @@ -500,11 +534,11 @@ msgstr "Yorum" msgid "Your part is silent, little toad." msgstr "Senin rolün sessiz, küçük kurbağa." -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "Sesini duyurabilmen için bir problem çözmüş olman gerekiyor." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Gönderilmiş yorum" @@ -589,20 +623,22 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" +msgstr[1] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -618,91 +654,94 @@ msgstr "Deneysel özellikleri aç" msgid "You must solve at least one problem before you can update your profile." msgstr "" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "{count} açık organizasyondan daha fazlasına üye olamazsın." +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Kullanıcı Adı" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Şifre" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 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:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 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:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "j M Y, H:i" @@ -764,9 +803,9 @@ msgstr "oy" msgid "body of comment" msgstr "yorum metni" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "yorumu gizle" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "" #: judge/models/comment.py:48 msgid "parent" @@ -781,7 +820,7 @@ msgid "comments" msgstr "yorumlar" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "%s problemi için editorial" @@ -864,7 +903,7 @@ msgid "contest name" msgstr "yarışma adı" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "yazarlar" @@ -872,7 +911,7 @@ msgstr "yazarlar" msgid "These users will be able to edit the contest." msgstr "" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "küratörler" @@ -880,7 +919,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "testçiler" @@ -916,7 +955,7 @@ msgstr "" msgid "description" msgstr "tanım" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "problemler" @@ -929,12 +968,12 @@ msgstr "başlangıç" msgid "end time" msgstr "bitiş" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "zaman sınırı" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "herkese açık" @@ -971,7 +1010,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -986,85 +1025,85 @@ msgstr "Yorumlar yerine açıklama sistemini kullanın." msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "herkesi derecelendir" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "Katılan tüm kullanıcıları derecelendir." -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "derecelendirme dışı kullanıcılar" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "problem etiketlerini gizle" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "Problem etiketleri varsayılan olarak gizli olmalı mı?" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "yalnızca ön testleri çalıştır" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "Judge'lar yalnızca ön testleri mi çalıştırmalı? Bu seçenek genellikle yarışma sırasında açılır, yarışma bittiğinde kapatılır ve çözümler yeniden puanlanır." -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "organizasyonlara özel" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "organizasyonlar" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1076,7 +1115,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1084,15 +1123,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "OpenGraph resmi" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1107,7 +1147,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:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 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." @@ -1120,7 +1160,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "istenmeyen kişiler" @@ -1184,7 +1224,7 @@ msgstr "Tüm yarışmaları düzenle" msgid "Clone contest" msgstr "" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1281,15 +1321,8 @@ msgstr "yarışma katılımı" msgid "contest participations" msgstr "yarışma katılımları" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "puan" @@ -1329,7 +1362,7 @@ msgstr "yarışma problemi" msgid "contest problems" msgstr "yarışma problemleri" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "çözüm" @@ -1385,6 +1418,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "anahtar" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "değer" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "ayar öğesi" @@ -1425,7 +1466,7 @@ msgstr "gönderi başlığı" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "halka açık mı?" @@ -1445,10 +1486,6 @@ msgstr "gönderi içeriği" msgid "post summary" msgstr "gönderi özeti" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "openGraph resmi" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "Tüm gönderileri düzenle" @@ -1465,337 +1502,374 @@ msgstr "blog gönderisi" msgid "blog posts" msgstr "blog gönderileri" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "problem kategori ID'si" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "problem kategorisi adı" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "problem tipi" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "problem tipleri" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "problem grup ID'si" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "problem grubu adı" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "problem grubu" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "problem grupları" -#: judge/models/problem.py:61 -msgid "key" -msgstr "anahtar" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "tam ad" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "kısa ad" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "Bu lisans altındaki sayfalarda gösterilir" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." +msgstr "Bu lisans altındaki sayfalarda gösterilir." -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "ikon" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "ikon URL'si" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "Ikon URL'si." -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "lisans metni" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "lisans" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "lisanslar" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "problem kodu" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "problem adı" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "problem içeriği" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "yaratıcılar" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 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:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "bellek sınırı" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "Bu problem için kilobayt cinsinden hafıza sınırı. (örn. 64MB = 65536 KB)" +#: judge/models/problem.py:142 +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:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "kısa devre" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "kısmi puanlama yapılabilir" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "izin verilen diller" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "elle yönetilir" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "yayınlama tarihi" -#: judge/models/problem.py:163 -msgid "Doesn't have 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:159 +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:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "problem özeti" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Soruyu çoğalt" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "dil" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "çevrilmiş ad" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "çevrilmiş tanım" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "problem çevirisi" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "problem çevirileri" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "açıklık getirilmiş problem" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "açıklama içeriği" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "açıklama zaman damgası (timestamp)" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "dile özel kaynak sınırı" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "dile özel kaynak sınırları" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "ilgili problem" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "yayın tarihi" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "problem analizi içeriği" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "çözüm" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "çözümler" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "not" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "problem oyu" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "problem oyları" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "Standart" @@ -1836,11 +1910,11 @@ msgstr "data zip dosyası" msgid "generator file" msgstr "generator dosyası" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "çıktı öneki uzunluğu" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "çıktı sınır uzunluğu" @@ -1848,59 +1922,67 @@ msgstr "çıktı sınır uzunluğu" msgid "init.yml generation feedback" msgstr "init.yml oluşturma mesajı" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "checker değişkenleri" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" -msgstr "checker değişkenleri, JSON nesnesi olarak" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." +msgstr "Checker değişkenleri, JSON nesnesi olarak." -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "test konumu" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "test tipi" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "Normal test" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "Küme başlangıcı" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "Küme sonu" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "girdi dosya adı" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "çıktı dosya adı" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "generator değişkenleri" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "puan değeri" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "ön test mi?" @@ -1913,12 +1995,12 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "Organizasyon adı URL'de görünür" +msgid "Organization name shown in URLs." +msgstr "Organizasyon adı URL'de görünür." #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "Yarışmalar sırasında kullanıcı adının yanında gösterilir" +msgid "Displayed beside user name during contests." +msgstr "Yarışmalar sırasında kullanıcı adının yanında gösterilir." #: judge/models/profile.py:47 msgid "organization description" @@ -1929,8 +2011,8 @@ msgid "administrators" msgstr "adminler" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "Bu organizasyonu düzenleme yetkisi olanlar" +msgid "Those who can edit this organization." +msgstr "Bu organizasyonu düzenleme yetkisi olanlar." #: judge/models/profile.py:50 msgid "creation date" @@ -1941,20 +2023,20 @@ msgid "is open organization?" msgstr "açık organizasyon mu?" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "Organizasyona katılmaya izin ver" +msgid "Allow joining organization." +msgstr "Organizasyona katılmaya izin ver." #: judge/models/profile.py:53 msgid "maximum size" msgstr "maksimum boyut" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "Bu organizasyondaki maksimum üye sayısı. Sadece özel organizasyonlar için geçerlidir" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "Bu organizasyondaki maksimum üye sayısı. Sadece özel organizasyonlar için geçerlidir." -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "Öğrenci erişim kodu" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "Öğrenci erişim kodu." #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1965,11 +2047,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1981,12 +2063,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "organizasyon" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1998,7 +2080,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -2009,12 +2091,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "öğrenci erişim kodu" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2026,7 +2104,7 @@ msgstr "üyeler" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2039,8 +2117,8 @@ msgid "self-description" msgstr "hakkında" #: judge/models/profile.py:150 -msgid "location" -msgstr "konum" +msgid "time zone" +msgstr "saat dilimi" #: judge/models/profile.py:152 msgid "preferred language" @@ -2070,8 +2148,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2097,163 +2175,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 +msgid "banned from voting on problem point values" +msgstr "" + +#: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 msgid "user script" msgstr "userscript" -#: judge/models/profile.py:173 +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "Site düzenlemesi için kullanıcı tanımlı JavaScript." -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "şu anki yarışma" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "matematik motoru" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "matematiksel ifadeleri gösteren program" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." +msgstr "Matematiksel ifadeleri gösteren program." -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." msgstr "" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "kullanıcı profili" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "kullanıcı profilleri" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "istek zamanı" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "durum" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Beklemede" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Onaylandı" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Geri çevrildi" + +#: judge/models/profile.py:372 msgid "reason" msgstr "sebep" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "organizasyona katılma isteği" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "organizasyona katılma istekleri" @@ -2282,7 +2380,7 @@ msgid "common name" msgstr "genel ad" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "Dilin genel adı. Örneğin C++03, C++11 ve C++14'ün genel adı \"C++\" olmalıdır." #: judge/models/runtime.py:32 @@ -2362,16 +2460,16 @@ msgid "judge name" msgstr "" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" -msgstr "Server adı, hostname şeklinde" +msgid "Server name, hostname-style." +msgstr "Server adı, hostname şeklinde." #: judge/models/runtime.py:126 msgid "time of creation" msgstr "oluşturulma zamanı" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" -msgstr "Bu judge'ın kimliğini doğrulamak için bir anahtar" +msgid "A key to authenticate this judge." +msgstr "Bu judge'ın kimliğini doğrulamak için bir anahtar." #: judge/models/runtime.py:128 msgid "authentication key" @@ -2455,9 +2553,9 @@ msgstr "Derleme Hatası" msgid "Internal Error" msgstr "İç Hata" -#: judge/models/submission.py:31 -msgid "Short circuit" -msgstr "Kısa devre" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" +msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 #: judge/models/submission.py:64 @@ -2480,10 +2578,6 @@ msgstr "Puanlanıyor" msgid "Completed" msgstr "Tamamlandı" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "İç Hata (judge sunucusu hatası)" @@ -2492,15 +2586,15 @@ msgstr "İç Hata (judge sunucusu hatası)" msgid "submission time" msgstr "çözüm süresi" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "çalışma süresi" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "bellek kullanımı" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "verilen puan" @@ -2552,97 +2646,97 @@ msgstr "sadece ön testlerde çalıştı" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "çözümler" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "ilişkili çözüm gönderisi" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "kaynak kodu" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "test ID" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "durum kodu" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "alınabilecek puan" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "küme #" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "program çıktısı" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "çözüm testi" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "çözüm testleri" @@ -2690,10 +2784,6 @@ msgstr "bilet" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "gönderen" - #: judge/models/ticket.py:34 msgid "message body" msgstr "mesaj içeriği" @@ -2802,8 +2892,8 @@ msgstr "Küme başlangıç testi #%d puan değerine sahip olmalıdır." #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" -msgstr "Test #%d bir kümenin içinde değil, ancak küme bitişini işaret ediyor" +msgid "Attempt to end batch outside of one in case #%d." +msgstr "Test #%d bir kümenin içinde değil, ancak küme bitişini işaret ediyor." #: judge/utils/problem_data.py:154 msgid "How did you corrupt the zip path?" @@ -2825,10 +2915,6 @@ msgstr "" msgid "Error" msgstr "" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "Queryset ve keyword filtreleri aynı anda verilemez" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "" @@ -2868,7 +2954,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "Sayfa %d" @@ -2893,7 +2979,7 @@ msgstr "" msgid "You already voted." msgstr "Zaten oy verdin." -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "Site aracılığıyla düzenlendi" @@ -2968,62 +3054,58 @@ msgstr "\"%s\" için erişim kodunu gir" msgid "You are not in contest \"%s\"." msgstr "\"%s\" yarışmasında değilsin." -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "%(month)s ayındaki yarışmalar" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "%s - Sıralama" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "???" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" -msgstr "\"%s\" yarışmasına katılımın" +msgid "Your participation in %(contest)s" +msgstr "\"%(contest)s\" yarışmasına katılımın" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" -msgstr "%s adlı kullanıcının \"%s\" yarışmasına katılımı" +msgid "%(user)s's participation in %(contest)s" +msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "Canlı" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Katılım" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "Yarışma etiketi: %s" @@ -3047,7 +3129,7 @@ msgstr "%s için erişim izni yok" msgid "corrupt page %s" msgstr "bozuk sayfa \"%s\"" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "Dil sürümleri" @@ -3070,207 +3152,231 @@ msgstr "Böyle bir organizasyon bulunamadı." msgid "Organizations" msgstr "Organizasyonlar" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "%s üye" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "Organizasyona katılım" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "Bu organizasyonda zaten varsın." -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "Bu organizasyon açık değil." -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "Organizasyondan çık" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "\"%s\" içinde değilsin." -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "%s'ye katılma isteği" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "Katılma isteği detayı" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "%s - Katılım isteklerini yönet" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "Organizasyon yalnızca %d üye daha alabilir. %d üyenin katılımını onaylayamazsın." +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 +#, python-format +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "" +msgstr[1] "" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, 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:304 +#: judge/views/organization.py:313 #, 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:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "%s düzenleniyor" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "Bu organizasyon düzenlenemiyor" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "Bu organizasyonu düzenleme yetkisine sahip değilsin." -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "Üyeleri bu organizasyondan atma yetkisine sahip değilsin." -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "Bu üyeyi atamazsın" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "Atmaya çalıştığın üye bulunamıyor!" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +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:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "Böyle bir problem yok :(" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "\"%s\" anahtarına sahip problem bulunamadı." -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "{0} - Problem analizi" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "Böyle bir problem analizi yok :(" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Problemler" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "Çözüm gönderme engellendi" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "Çok fazla çözüm gönderisi" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 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:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "Soruyu Çoğalt" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" -msgstr "Checker değişkenleri JSON nesnesi olarak verilmelidir" +msgid "Checker arguments must be a JSON object." +msgstr "Checker değişkenleri JSON nesnesi olarak verilmelidir." #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" -msgstr "Checker değişkeni olarak geçersiz JSON verdin" +msgid "Checker arguments is invalid JSON." +msgstr "Checker değişkeni olarak geçersiz JSON verdin." #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "Zip dosyan geçersiz!" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "Çözümleri karşılaştır - {0}" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "Verileri düzenle - {0}" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "%s için verileri düzenle" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "%s için init.yml oluşturuldu" @@ -3313,8 +3419,8 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "Problem %(number)s için en iyi çözümler - %(contest)s" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" -msgstr "Kullanıcı adı harfler, rakamlar veya alt çizgilerden oluşmalıdır" +msgid "A username must contain letters, numbers, or underscores." +msgstr "Kullanıcı adı harfler, rakamlar veya alt çizgilerden oluşmalıdır." #: judge/views/register.py:30 msgid "Preferred language" @@ -3333,15 +3439,15 @@ msgstr "\"%s\" zaten kullanımda. E-posta adresleri yalnızca bir kez kullanıla msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "E-posta sağlayıcın geçmişte yaşanan suistimallerden dolayı geçersizdir. Lütfen bilinen bir e-posta sağlayıcısı kullan." -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "Kaydol" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "Kimlik doğrulama hatası" @@ -3353,7 +3459,7 @@ msgstr "Diğer" msgid "Language statistics" msgstr "Dil istatistikleri" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "Durum" @@ -3379,59 +3485,51 @@ msgstr "" 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:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "Tüm çözümler" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "Tüm çözümlerim" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "%s'nin tüm çözümleri" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "%s için tüm çözümler" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "Bir problem tanımlanmalı" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "%(problem)s için çözümlerim" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, 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:592 -msgid "Must pass a contest" -msgstr "Bir yarışma tanımlanmalı" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, 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:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, 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}" @@ -3540,52 +3638,47 @@ msgstr "Giriş" msgid "M j, Y, G:i" msgstr "j M Y, G:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "Sitede güncellendi" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Profili düzenle" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Sıralama" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "Gelen veri geçersiz: %s" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" -msgstr "Hatalı enlem veya boylam" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." +msgstr "" #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" @@ -3610,68 +3703,64 @@ msgstr "" msgid "Terminate" msgstr "" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" -msgstr "" - -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 msgid "View submissions" msgstr "Gönderileri görüntüle" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" +msgstr "" + #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 msgid "Edit user" msgstr "Kullanıcı düzenle" -#: 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:80 -msgid "Rejudge" -msgstr "Yeniden değerlendir" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "Merhaba, %(username)s." -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "Çıkış yap" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Giriş yap" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "ya da" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "izleniyor" -#: templates/base.html:263 +#: templates/base.html:259 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:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Düzenle" @@ -3703,39 +3792,53 @@ msgstr "{time}" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "Açıklamalar" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "Henüz bir açıklama yapılmadı." -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "Devam eden yarışmalar" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "Gelecek yarışmalar" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "Son yorumlar" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "Yeni problemler" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "Açık biletlerim" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "Yeni biletler" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "Yorumlar" @@ -3758,7 +3861,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "düzenleme %(edits)s" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "düzenlendi" @@ -3766,64 +3869,90 @@ msgstr "düzenlendi" msgid "Link" msgstr "" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "Yanıtla" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "Gizle" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "Şu anda hiç yorum yok." -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "Yeni yorum" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "Yorum metninde hata!" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "Yayınla!" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "düzenleme {edits}" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "orijinal" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "Puan" @@ -3831,6 +3960,18 @@ msgstr "Puan" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "Hatalı erişim kodu!" @@ -3895,12 +4036,12 @@ msgstr "Sonraki" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "Liste" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "Takvim" @@ -3908,7 +4049,7 @@ msgstr "Takvim" msgid "Info" msgstr "Hakkında" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "İstatistikler" @@ -3933,7 +4074,7 @@ msgstr "" msgid "Leave contest" msgstr "Yarışmadan ayrıl" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "Sanal katılım" @@ -3950,7 +4091,7 @@ msgstr "Yarışmaya katıl" msgid "Spectate contest" msgstr "Yarışmayı izle" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "" @@ -3958,6 +4099,16 @@ msgstr "" msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "Sanal olarak katılınıyor." @@ -3966,6 +4117,21 @@ msgstr "Sanal olarak katılınıyor." msgid "Contest is over." msgstr "Yarışma sona erdi." +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "" @@ -4096,9 +4262,9 @@ msgstr "" msgid "AC Rate" msgstr "AC Oranı" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "Kullanıcılar" @@ -4106,7 +4272,7 @@ msgstr "Kullanıcılar" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "Problem analizi" @@ -4119,10 +4285,6 @@ msgstr "Katılmak istediğine emin misin?" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "Bir yarışmaya ilk defa katılmak süreni başlatır, süren başladıktan sonra durdurulamaz." -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "" - #: templates/contest/list.html:84 msgid "private" msgstr "" @@ -4131,38 +4293,55 @@ msgstr "" msgid "rated" msgstr "" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "Süre sınırı %(time_limit)s" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "Katıl" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "İzle" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Yarışma" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "Devam Eden Yarışmalar" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "Gelecek Yarışmalar" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "Şu anda planlanmış yarışma bulunmuyor." -#: templates/contest/list.html:272 -msgid "Past Contests" -msgstr "Eski Yarışmalar" +#: templates/contest/list.html:274 +msgid "Past contests" +msgstr "Eski yarışmalar" #: templates/contest/media-js.html:4 msgid "Are you sure you want to leave?" @@ -4182,22 +4361,29 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" +msgstr[1] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4251,19 +4437,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "Kullanıcı katılımını göster" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "Organizasyonları göster" @@ -4284,8 +4470,8 @@ msgid "Language AC Rate" msgstr "Dil AC Oranı" #: templates/license.html:12 -msgid "Source:" -msgstr "Kaynak:" +msgid "Visit source" +msgstr "" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4450,7 +4636,7 @@ msgid "There are no requests to approve." msgstr "Onaylanacak istek yok." #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "Sil?" @@ -4463,25 +4649,13 @@ msgid "Your reason for joining:" msgstr "Katılma sebebin:" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "İstek" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Beklemede" +msgid "Request!" +msgstr "" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "Onaylandı" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "Geri çevrildi" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "At" @@ -4498,55 +4672,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "YAML'i görüntüle" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "Sütunları göster:" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "Çıktı öneki" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "Çıktı sınırı" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "Generator değişkenleri" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "Tip" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "Girdi dosyası" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "Çıktı dosyası" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "Ön test?" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "Gönder!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "Yeni test ekle" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4558,7 +4736,7 @@ msgstr "Bu problem analizini **yalnızca** takıldığın yerlerde kullanmalıs msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "Problemi çözmeden resmi çözümü kopyalayıp yapıştırmak engellenmene neden olabilir." -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "Yazar:" @@ -4568,20 +4746,20 @@ msgstr[1] "Yazarlar:" msgid "Filter by type..." msgstr "Tipe göre filtrele..." -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "Popüler problemler" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Kategori" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "Tipler" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "AC %%" @@ -4645,116 +4823,133 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" +msgstr[1] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "PDF olarak göster" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "Çözüm yolla" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "%(counter)s gönderi kaldı" msgstr[1] "%(counter)s gönderi kaldı" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "0 çözüm kaldı" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "Benim çözümlerim" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "En iyi çözümler" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "Problem analizine git" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "Biletleri yönet" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "Soruyu düzenle" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "Test verisini düzenle" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "Puan:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "(kısmi)" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "Zaman sınırı:" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "Bellek sınırı:" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "Soru tipi" msgstr[1] "Soru tipleri" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "İzin verilen diller" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "%(lang)s için çevrimiçi judge yok" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "" msgstr[1] "" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "Açıklama talebi" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "Bir sorun bildir" @@ -4803,8 +4998,8 @@ msgstr "Problem tipleri" msgid "Point range" msgstr "Puan aralığı" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "Git" @@ -4840,6 +5035,54 @@ msgstr "Geriye 0 çözümün kaldı" msgid "No judge is available for this problem." msgstr "Bu problem için herhangi bir judge mevcut değil." +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4849,6 +5092,50 @@ msgstr "Geçersiz aktivasyon kodu: %(key)s." msgid "Your account has been successfully activated." msgstr "Hesabın başarıyla aktifleştirildi." +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" +msgstr[1] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "Kullanıcı adı veya şifre yanlış." @@ -4895,7 +5182,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "Şifren oluşturuldu. Şimdi giriş yapabilirsin." #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "Şifreyi Sıfırla" @@ -4911,22 +5197,19 @@ msgstr "Şifreni belirlemen için sana yapman gerekenleri içeren bir e-posta g 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 "Eğer bir e-posta almadıysan, kaydolduğun e-posta adresini girdiğinden emin ol ve spam klasörünü kontrol et." -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4956,7 +5239,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:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Devam et >" @@ -4969,41 +5252,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "(onaylamak için lütfen tekrar gir)" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "(sana en yakın büyük şehri seç)" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "haritadan seç" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "Varsayılan dil" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "Organizasyon üyelikleri" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "Gelecek yarışmalar hakkında beni bilgilendir" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "Kayıt olmakla birlikte şunları kabul edersin:" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "Şartlar & Koşullar" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "Kaydol!" @@ -5012,7 +5290,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "" #: templates/registration/totp_disable.html:41 @@ -5044,14 +5323,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5342,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5360,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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 "" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5115,38 +5394,38 @@ msgstr "Çözüm İstatistikleri" msgid "AC Submissions by Language" msgstr "Dillere Göre AC Alan Çözümler" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "Çalışma süresi" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "Yükle" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "Şu an mevcut hiçbir judge bulunmuyor." -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "" @@ -5179,23 +5458,27 @@ msgstr "Değerlendirme sırasında bir hata oluştu." msgid "Error information" msgstr "Hata bilgisi" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "Duruma göre filtrele..." -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "Dile göre filtrele..." -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "Çözümleri filtrele" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "Bağlantın koptu. Son güncellemeleri görmek için sayfayı yenile." @@ -5261,20 +5544,24 @@ msgid "Execution Results" msgstr "Sonuçlar" #: templates/submission/status-testcases.html:51 -msgid "Batch " -msgstr "Küme " +#, python-format +msgid "Batch #%(id)d" +msgstr "Küme #%(id)d" #: templates/submission/status-testcases.html:64 -msgid "Case" -msgstr "Test" +#, python-format +msgid "Case #%(id)d:" +msgstr "Test #%(id)d:" #: templates/submission/status-testcases.html:66 -msgid "Pretest" -msgstr "Ön test" +#, python-format +msgid "Pretest #%(id)d:" +msgstr "Ön test #%(id)d:" #: templates/submission/status-testcases.html:68 -msgid "Test case" -msgstr "Test" +#, python-format +msgid "Test case #%(id)d:" +msgstr "Test #%(id)d:" #: templates/submission/status-testcases.html:101 msgid "Your output (clipped)" @@ -5318,11 +5605,11 @@ msgstr "Çözüm iptal edildi!" msgid "View source" msgstr "Kaynağı görüntüle" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "İptal et" @@ -5339,41 +5626,41 @@ msgstr "En iyi" msgid "%(user)s's" msgstr "%(user)s" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "Yeniden açıldı: " -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "Kapatıldı: " -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "Masaüstü bildirimlerini kullan" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "Sadece benim biletlerimi göster" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "Dolduran kullanıcı" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" msgstr[1] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "Başlık" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "Sorumlular" @@ -5395,31 +5682,32 @@ msgstr "Bilet oluşturduğunuz için teşekkürler!" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "Lütfen bu formun problem metni hakkındaki sorunları belirtmek için olduğunu dikkate al. Bu form yardım istemek için değildir. Yardıma ihtiyacın varsa, sorunu yorumlarda sormayı deneyebilirsin." -#: templates/ticket/ticket.html:356 -msgid "Post" -msgstr "Gönderi" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" +msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "İlişkili nesne" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "Kimse atanmamış." -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "Bileti kapat" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "Bileti yeniden aç" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "Sorumlu notları" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "Burada hiçbir şey yok :(" @@ -5427,141 +5715,163 @@ msgstr "Burada hiçbir şey yok :(" msgid "Rank" msgstr "Sıralama" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "Kullanıcı adı ile ara..." -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" -msgstr "Künye" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" +msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "En yakın büyük şehri seç" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" -msgstr "Editör teması" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" +msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "Matematik motoru" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "Profil fotoğrafı değiştir" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "Şifre değiştir" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 -msgid "API Token" +#: templates/user/edit-profile.html:393 +msgid "API token:" msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 -msgid "User-script" -msgstr "Userscript" +#: templates/user/edit-profile.html:436 +msgid "User-script:" +msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "Profilini güncelle" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "%(pp).1fpp" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" -msgstr "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" +msgstr "ağırlık %(percent)s (%(pp)spp)" #: templates/user/prepare-data.html:64 msgid "Are you sure you want to prepare a download?" @@ -5575,31 +5885,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5663,45 +5983,41 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "Puan sırası:" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "Toplam puan:" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "" msgstr[1] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "Derece sırası:" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "En düşük derece:" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "En yüksek derece:" @@ -5725,12 +6041,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "Çözdüğüm soruları gizle" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" -msgstr "%(points).1f puan" +msgid "%(group)s (%(val)s points)" +msgstr "%(group)s (%(val)s puan)" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "%(points)s/%(total)s" diff --git a/locale/tr/LC_MESSAGES/djangojs.po b/locale/tr/LC_MESSAGES/djangojs.po index 1645be9936..9d6c4360bc 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:44\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -17,15 +17,66 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" +msgstr[1] "" + +#: 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] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" +msgstr[1] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" +msgstr[1] "" + diff --git a/locale/vi/LC_MESSAGES/django.po b/locale/vi/LC_MESSAGES/django.po index 87265c7ec5..3929a0f8a1 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-07-04 01:02\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "Tiếng Catalan" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "Tiếng Đức" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "Tiếng Hy Lạp" + +#: dmoj/settings.py:384 msgid "English" msgstr "Tiếng Anh" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "Tiếng Tây Ban Nha" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "Tiếng Pháp" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "Tiếng Croatia" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "Tiếng Hung-ga-ri" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "Tiếng Nhật Bản" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "Tiếng Hàn Quốc" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "Tiếng Braxin-Bồ Đào Nha" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "Tiếng Romania" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "Tiếng Nga" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "Tiếng Séc-bi (Latin)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "Tiếng Thổ Nhĩ Kỳ" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "Tiếng Việt" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "Tiếng Trung (Giản thể)" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "Tiếng Trung (Phồn thể)" @@ -97,10 +101,14 @@ msgstr "Đăng ký thành công" msgid "Registration Not Allowed" msgstr "Không được phép đăng ký" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "Trang chủ" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "Nội dung" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -130,12 +138,25 @@ msgid "Included contests" msgstr "Các cuộc thi" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "Đề bài" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: 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:77 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 "Chấm lại" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "Cài đặt" @@ -160,7 +181,7 @@ msgstr "Xếp loại" msgid "Access" msgstr "Truy cập" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "Luật" @@ -204,7 +225,7 @@ 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:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -224,7 +245,7 @@ msgstr "Tính lại kết quả" msgid "username" msgstr "tên người dùng" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "ảo" @@ -232,17 +253,14 @@ msgstr "ảo" msgid "link path" msgstr "đường dẫn liên kết" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Nội dung" - #: judge/admin/interface.py:73 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:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "thành viên" @@ -250,100 +268,106 @@ msgstr "thành viên" msgid "object" msgstr "đối tượng" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "Xem trên trang web" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "Chỉnh sửa lý do" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "Mô tả những thay đổi bạn đã thực hiện (tùy chọn)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "Mạng Xã hội" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "Phân loại" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "Điểm" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "Giới hạn" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "Ngôn ngữ" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "Lịch sử" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "Tác giả" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "%d ngày xuất bản của bài tập đã được cập nhật." -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "Chỉnh thời gian xuất bản đến hiện tại" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "%d bài tập đã được công bố." -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "Công bố đề bài" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "%d bài tập đã được đánh dấu là cá nhân." -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "vấn đề" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "Thành viên" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "Hộp thư" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "Múi giờ" @@ -353,8 +377,8 @@ msgstr "ngày tham gia" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "%d người dùng có tính lại điểm." #: judge/admin/profile.py:123 @@ -366,8 +390,14 @@ msgid "Disallowed problems" msgstr "Đề bài không được cho phép" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "Đề này KHÔNG được cho phép nộp bằng ngôn ngữ này" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "Đề này KHÔNG được cho phép nộp bằng ngôn ngữ này." + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "Tạo lại" #: judge/admin/runtime.py:77 msgid "Description" @@ -381,99 +411,103 @@ msgstr "Thông tin" 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:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "Không" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "Chưa hoàn thành" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "Lỗi" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "Không chấp nhận" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "%s (đang theo dõi)" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "%s (ảo %d)" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "Đã khóa" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "Bao gồm các đề" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "Các đề bài này đã được bao gồm trong nhóm" +msgid "These problems are included in this group of problems." +msgstr "Các đề bài này đã được bao gồm trong nhóm." #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "Các đề bài đã chọn đã được bao gồm trong loại bài này" +msgid "These problems are included in this type of problems." +msgstr "Các đề bài đã chọn đã được bao gồm trong loại bài này." #: judge/apps.py:8 msgid "Online Judge" @@ -487,11 +521,11 @@ msgstr "Bình luận" msgid "Your part is silent, little toad." msgstr "Không có phần nói của ngươi, đồ cóc ghẻ." -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "Bạn cần giải được ít nhất một bài tập trước khi lời nói của bạn có thể được lắng nghe." +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "Đăng bình luận" @@ -574,20 +608,21 @@ msgstr "Kết quả bằng nhau do điểm số cuối cùng có thể bị thay msgid "IOI (pre-2016)" msgstr "IOI (trước năm 2016)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "Mã xác thực 2 yếu tố phải có {TOTP_CODE_LENGTH} chữ số." +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "Mã xác thực 2 yếu tố phải có {count} chữ số." -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "Mã xác thực 2 yếu tố không đúng." -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "Mã dự phòng phải là 16 kí tự hệ 32." -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "Mã dự phòng không hợp lệ." @@ -603,91 +638,93 @@ 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:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "Bạn không thể là thành viên của nhiều hơn {count} tổ chức công khai." +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "Tải các bình luận về?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "Tải xuống các bài nộp?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "Sắp xếp theo mã bài tập:" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "Hãy để trống để bao gồm mọi bài nộp" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Lọc theo kết quả:" -#: judge/forms.py:112 +#: judge/forms.py:113 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:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "Bất kì máy chấm nào" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "Tên người dùng" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Mật khẩu" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "Độ dài của bài nộp không hợp lệ." -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "Phản hồi WebAuthn không hợp lệ." -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "Không có xác thực web (WebAuthn) nào được sử dụng." -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "Chứng chỉ xác thực web (WebAuthn) không hợp lệ." -#: judge/forms.py:262 +#: judge/forms.py:263 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:266 +#: judge/forms.py:267 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:270 judge/models/problem.py:120 +#: judge/forms.py:271 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:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "Mã bài tập đã tồn tại." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 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:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "Mã kỳ thi đã tồn tại." #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "j \\t\\há\\n\\g n \\nă\\m Y, g:i a" @@ -749,9 +786,9 @@ msgstr "đánh giá" msgid "body of comment" msgstr "nhận xét" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "ẩn bình luận" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "ẩn" #: judge/models/comment.py:48 msgid "parent" @@ -766,7 +803,7 @@ msgid "comments" msgstr "nhận xét" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "Hướng giải cho %s" @@ -849,7 +886,7 @@ msgid "contest name" msgstr "tên cuộc thi" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "tác giả" @@ -857,7 +894,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:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "giám khảo" @@ -865,7 +902,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "người kiểm tra" @@ -901,7 +938,7 @@ 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:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "đề bài" @@ -914,12 +951,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:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "giới hạn thời gian" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "công khai" @@ -956,8 +993,8 @@ msgid "scoreboard visibility" msgstr "sự hiện thị của bảng điểm" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" -msgstr "Sự hiện thị của bảng điểm trong cuộc thi" +msgid "Scoreboard visibility through the duration of the contest." +msgstr "Sự hiện thị của bảng điểm trong cuộc thi." #: judge/models/contest.py:109 msgid "no comments" @@ -971,86 +1008,86 @@ msgstr "Đừng comment mà hãy sử dụng hệ thống giải đáp thắc m msgid "rating floor" msgstr "mức rating thấp nhất" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" -msgstr "Xếp loại thấp nhất cho cuộc thi" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." +msgstr "Không xếp hạng người dùng mà có thứ hạng thấp hơn." #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "mức rating cao nhất" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" -msgstr "Xếp loại cao nhất cho cuộc thi" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." +msgstr "Không xếp hạng người dùng mà có thứ hạng cao hơn." -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "đánh giá tất cả" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "Đánh giá những người đã tham gia." -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "không xếp hạng" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "riêng tu cho thành viên cụ thể" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "thí sinh riêng tư" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" -msgstr "Nếu không để trống, chỉ những người dùng này mới có thể xem cuộc thi" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." +msgstr "Nếu không để trống, chỉ những người dùng này mới có thể xem cuộc thi." -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "ẩn các thẻ đầu bài" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "Cho dù vấn đề tags nên được ẩn theo mặc định." -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "ẩn tác giả của bài tập" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "Tác giả của bài tập được ẩn theo mặc định." -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "chỉ chạy các phép thử trước" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "Chỉ chấm bài thử. Thường sử dụng trong các cuộc thi, sau đó bỏ để chấm lại các bài chấm ở cuối cuộc thi." -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "hiển thị cài đặt rút gọn" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 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:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "dành riêng cho tổ chức" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "tổ chức" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" -msgstr "Nếu không để trống, chỉ những tổ chức này mới có thể xem cuộc thi" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." +msgstr "Nếu không để trống, chỉ những tổ chức này mới có thể xem cuộc thi." #: judge/models/contest.py:142 msgid "limit organizations that can join" @@ -1061,24 +1098,25 @@ msgid "join organizations" msgstr "tham gia các tổ chức" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" -msgstr "Nếu không để trống, chỉ những tổ chức này mới có thể tham gia cuộc thi" +msgid "If non-empty, only these organizations may join the contest." +msgstr "Nếu không để trống, chỉ những tổ chức này mới có thể tham gia cuộc thi." #: judge/models/contest.py:146 judge/models/profile.py:143 msgid "classes" msgstr "các lớp học" #: judge/models/contest.py:147 -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" +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/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "Ảnh OpenGraph" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" -msgstr "Ghi đè ảnh logo" +msgid "logo override image" +msgstr "ghi đè ảnh logo" #: judge/models/contest.py:151 msgid "This image will replace the default site logo for users inside the contest." @@ -1092,7 +1130,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:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 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." @@ -1105,7 +1143,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "cá nhân - không tính điểm" @@ -1169,7 +1207,7 @@ msgstr "Sửa tất cả các kỳ thi" msgid "Clone contest" msgstr "Nhân bản kỳ thi" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS kỳ thi" @@ -1266,15 +1304,8 @@ msgstr "tham gia cuộc thi" msgid "contest participations" msgstr "tham gia cuộc thi" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "vấn đề" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "điểm" @@ -1314,7 +1345,7 @@ msgstr "đề bài của cuộc thi" msgid "contest problems" msgstr "đề bài của cuộc thi" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "nộp bài" @@ -1370,6 +1401,14 @@ msgstr "kết quả kỳ thi moss" msgid "contest moss results" msgstr "kết quả kỳ thi moss" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "khóa" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "giá trị" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "cấu hình" @@ -1410,7 +1449,7 @@ msgstr "tiêu đề bài viết" msgid "slug" msgstr "slug" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "hiển thị công khai" @@ -1430,10 +1469,6 @@ msgstr "đăng nội dung" msgid "post summary" msgstr "đăng bài tóm tắt" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "ảnh OpenGraph" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "Chỉnh sửa tất cả bài viết" @@ -1450,337 +1485,374 @@ msgstr "bài đăng blog" msgid "blog posts" msgstr "bài đăng blog" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "Những kí tự bị cấm sử dụng: %(value)s" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "ID của nhóm bài" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "phân nhóm bài" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "kiểu bài tập" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "kiểu bài tập" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "ID của nhóm đề bài" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "tên nhóm đề bài" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "nhóm đề bài" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "nhóm đề bài" -#: judge/models/problem.py:61 -msgid "key" -msgstr "khóa" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "liên kết" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "tên đầy đủ" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "tên viết tắt" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "Được hiển thị trên các trang theo giấy phép này" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." +msgstr "Được hiển thị trên các trang theo giấy phép này." -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "biểu tượng" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL cho biểu tượng" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "URL cho biểu tượng." -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "văn bản cấp phép" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "giấy phép" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "giấy phép" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "Sử dụng cài đặt chung" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "Luôn hiển thị" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "Hiển thị nếu bài tập đã được giải" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "Chỉ những lần nộp bài riêng của cá nhân" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "mã đầu bài" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" -msgstr "Một mã ngắn duy nhất cho đề bài, sử dụng sau /problem/ trong url" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" +msgstr "Một mã ngắn duy nhất cho đề bài, sử dụng sau /problem/ trong URL." -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "tên bài tập" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 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:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "nội dung bài tập" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "người tạo" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 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:131 +#: judge/models/problem.py:127 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:135 +#: judge/models/problem.py:131 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:137 +#: judge/models/problem.py:133 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:140 +#: judge/models/problem.py:135 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:142 +#: judge/models/problem.py:137 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:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "giới hạn bộ nhớ" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "Giới hạn bộ nhớ (kilobytes) cho bài tập này (chẳng hạn 64mb = 65536 kilobytes)." +#: judge/models/problem.py:142 +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:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "ngắn mạch" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 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:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "cho phép cho điểm từng phần" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "ngôn ngữ cho phép" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 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:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "quản lý thủ công" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 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:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "ngày xuất bản" -#: judge/models/problem.py:163 -msgid "Doesn't have 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:159 +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:165 +#: judge/models/problem.py:161 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:167 +#: judge/models/problem.py:163 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:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "tổng quan bài tập" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "số thành viên" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 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:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "tỉ lệ giải được" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "cho phép truy cập hoàn toàn markdown" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "hiển thị nguồn" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 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:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "Xem các bài bị ẩn" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "Sửa đề bài của mình" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "Sửa mọi đề bài" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "Sửa mọi đề bài công khai" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "Sửa bài tập với chỉ toàn markup" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "Nhân bản bài tập" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "Thay đổi trường is_public" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "Thay đổi trường is_manually_managed" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "Xem đề bài riêng của tổ chức" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "ngôn ngữ" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "tên bộ dịch" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "mô tả bộ dịch" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "dịch đầu bài" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "dịch đầu bài" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "bài tập được làm rõ" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "nội dung làm rõ" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "thời gian làm rõ" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "làm rõ vấn đề" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "làm rõ vấn đề" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "giới hạn tài nguyên theo ngôn ngữ" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "giới hạn tài nguyên theo ngôn ngữ" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "đầu bài liên quan" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "ngày công bố" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "nội dung hướng dẫn giải" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "Xem các lời giải ẩn" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "lời giải" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "lời giải" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "người bình chọn" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "ghi chú" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "Mặc định" @@ -1821,11 +1893,11 @@ msgstr "tập tin dữ liệu nén dạng zip" msgid "generator file" msgstr "file tạo mã" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "độ dài prefix" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "hạn chế chiều dài đầu ra" @@ -1833,59 +1905,67 @@ msgstr "hạn chế chiều dài đầu ra" msgid "init.yml generation feedback" msgstr "phản hồi init.yml" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "kiểm tra" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "đối số kiểm tra" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" -msgstr "kiểm tra đối số như là một đối tượng JSON" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." +msgstr "Kiểm tra đối số như là một đối tượng JSON." -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "tập dữ liệu đề bài" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "vị trí phép thử" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "kiểu phép thử" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "Test đơn" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "Bắt đầu lô" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "Hết lô" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "tên tập tin đầu vào" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "tên tập tin đầu ra" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "bộ sinh đối số" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "giá trị điểm" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "test mẫu?" @@ -1898,12 +1978,12 @@ msgid "organization slug" msgstr "slug tổ chức" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "Tên tổ chức thể hiện trong URL" +msgid "Organization name shown in URLs." +msgstr "Tên tổ chức thể hiện trong URL." #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "Hiển thị bên cạnh tên trong cuộc thi" +msgid "Displayed beside user name during contests." +msgstr "Hiển thị bên cạnh tên trong cuộc thi." #: judge/models/profile.py:47 msgid "organization description" @@ -1914,8 +1994,8 @@ msgid "administrators" msgstr "quản trị viên" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "Những người có thể chỉnh sửa tổ chức" +msgid "Those who can edit this organization." +msgstr "Những người có thể chỉnh sửa tổ chức." #: judge/models/profile.py:50 msgid "creation date" @@ -1926,20 +2006,20 @@ msgid "is open organization?" msgstr "là tổ chức mở?" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "Cho phép tham gia tổ chức" +msgid "Allow joining organization." +msgstr "Cho phép tham gia tổ chức." #: judge/models/profile.py:53 msgid "maximum size" msgstr "dung lượng tối đa" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "Số người dùng tối đa trong tổ chức này, chỉ áp dụng đối với tổ chức tư nhân" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "Số người dùng tối đa trong tổ chức này, chỉ áp dụng đối với tổ chức tư nhân." -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "Mã truy cập sinh viên" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "Mã truy cập sinh viên." #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1950,12 +2030,12 @@ msgid "class membership required" msgstr "thành viên lớp học yêu cầu" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" -msgstr "liệu các thành viên có bắt buộc phải chọn một lớp học khi tham gia hay không" +msgid "Whether members are compelled to select a class when joining." +msgstr "Liệu các thành viên có bắt buộc phải chọn một lớp học khi tham gia hay không." #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" -msgstr "Tư cách thành viên của lớp không thể được thực thi khi tổ chức có đăng ký mở" +msgid "Class membership cannot be enforced when organization has open enrollment." +msgstr "Tư cách thành viên của lớp không thể được thực thi khi tổ chức có đăng ký mở." #: judge/models/profile.py:95 msgid "Administer organizations" @@ -1966,13 +2046,13 @@ 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:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "tổ chức" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" -msgstr "tổ chức mà lớp học này thuộc về" +msgid "The organization that this class belongs to." +msgstr "Tổ chức mà lớp học này thuộc về." #: judge/models/profile.py:106 msgid "class name" @@ -1983,8 +2063,8 @@ msgid "class slug" msgstr "slug lớp" #: judge/models/profile.py:107 -msgid "class name shown in URLs" -msgstr "tên lớp được hiển thị trong URLs" +msgid "Class name shown in URLs." +msgstr "Tên lớp được hiển thị trong URL." #: judge/models/profile.py:108 msgid "class description" @@ -1994,13 +2074,9 @@ msgstr "mô tả lớp học" msgid "is class active" msgstr "lớp có hoạt động" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "mã truy cập sinh viên" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" -msgstr "những người có thể phê duyệt làm thành viên của lớp học này" +msgid "Those who can approve membership to this class." +msgstr "Những người có thể phê duyệt làm thành viên của lớp học này." #: judge/models/profile.py:114 msgid "members" @@ -2011,7 +2087,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:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "lớp" @@ -2024,8 +2100,8 @@ msgid "self-description" msgstr "tự mô tả" #: judge/models/profile.py:150 -msgid "location" -msgstr "vị trí" +msgid "time zone" +msgstr "múi giờ" #: judge/models/profile.py:152 msgid "preferred language" @@ -2055,8 +2131,8 @@ msgstr "Người dùng bình thường" msgid "Problem Setter" msgstr "Người ra đề" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2082,163 +2158,183 @@ msgid "User will not be ranked." msgstr "Thành viên không được xếp hạng." #: judge/models/profile.py:172 +msgid "banned from voting on problem point values" +msgstr "" + +#: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 msgid "user script" msgstr "script tự định nghĩa" -#: judge/models/profile.py:173 +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "JavaScript tự định nghĩa để tùy chỉnh trang web." -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "cuộc thi hiện tại" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "bộ xử lý toán học" -#: judge/models/profile.py:178 -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:183 +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:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "Xác thực 2 yếu tố TOTP được kích hoạt" -#: judge/models/profile.py:180 -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:185 +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:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn xác thực 2 yếu tố được kích hoạt" -#: judge/models/profile.py:182 -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:187 +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:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "Mã TOTP" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" -msgstr "mã 32 ký tự base32-encoded cho TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." +msgstr "Mã 32 ký tự Base32-encoded cho TOTP." -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" -msgstr "Mã TOTP cần rỗng hoặc base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." +msgstr "Mã TOTP cần rỗng hoặc Base32." -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "mã dự phòng" -#: judge/models/profile.py:188 -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:193 +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:192 -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:197 +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:194 +#: judge/models/profile.py:199 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:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "Mã API" -#: judge/models/profile.py:196 -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:201 +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:198 +#: judge/models/profile.py:203 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:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "ghi chú nội bộ" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 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:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "thời gian tải dữ liệu cuối cùng" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "hiển thị tên ghi đè" -#: judge/models/profile.py:203 -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:208 +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:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "Hiển thị những thứ đang được phát triển" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "Chỉnh sửa cài đặt TOTP" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "hồ sơ người dùng" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "hồ sơ người dùng" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "tên thiết bị" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "thông tin đăng nhập" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "public key" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "sign counter" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "Chứng chỉ WebAuthn: %(name)s" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "Chứng chỉ WebAuthn" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "Nhiều chứng chỉ WebAuthn" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "thời gian yêu cầu" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "trạng thái" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Đang chờ" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Phê duyệt" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Bị từ chối" + +#: judge/models/profile.py:372 msgid "reason" msgstr "lý do" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "yêu cầu tham gia tổ chức" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "yêu cầu tham gia tổ chức" @@ -2267,8 +2363,8 @@ msgid "common name" msgstr "tên chung" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" -msgstr "Tên phổ biến cho các ngôn ngữ. Ví dụ, tên gọi chung cho C++03, C++11 và C++14 sẽ là \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." +msgstr "Tên phổ biến cho các ngôn ngữ. Ví dụ, tên gọi chung cho C++03, C++11 và C++14 sẽ là \"C++\"." #: judge/models/runtime.py:32 msgid "ace mode name" @@ -2347,16 +2443,16 @@ msgid "judge name" msgstr "thẩm phán tên" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" -msgstr "Tên server, tên host" +msgid "Server name, hostname-style." +msgstr "Tên server, tên host." #: judge/models/runtime.py:126 msgid "time of creation" msgstr "thời gian tạo" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" -msgstr "Key để xác thực máy chấm" +msgid "A key to authenticate this judge." +msgstr "Key để xác thực máy chấm." #: judge/models/runtime.py:128 msgid "authentication key" @@ -2440,8 +2536,8 @@ msgstr "Lỗi dịch (CE)" msgid "Internal Error" msgstr "Lỗi nội bộ (IE)" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "Ngắn mạch" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2465,10 +2561,6 @@ msgstr "Chấm điểm" msgid "Completed" msgstr "Đã hoàn thành" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "Ngắn mạch" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "Lỗi nội bộ (máy chủ chấm bài lỗi)" @@ -2477,15 +2569,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:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "thời gian thực hiện tối đa" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "bộ nhớ sử dụng" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "điểm được cho" @@ -2537,97 +2629,97 @@ msgstr "chỉ được chạy bởi test sơ bộ" msgid "submission lock" msgstr "khóa nạp bài" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, 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:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "Ngừng bất kì bài nộp" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "Chấm lại bài nộp" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "Chấm lại nhiều bài nộp" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "Nộp không giới hạn" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "Xem tất cả bài nộp" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "Gửi lại bài nộp của người khác" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 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:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "nộp bài" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "bài nộp liên quan" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "mã nguồn" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "Nguồn %(submission)s" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "nguồn nộp" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "các nguồn nộp" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "mã testcase" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "cờ trạng thái" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "khả năng điểm" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "lô số" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "phản hồi chấm thi" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "phản hồi trình chấm mở rộng" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "lập trình đầu ra" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "test case của bài" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "các test case của bài" @@ -2675,10 +2767,6 @@ msgstr "thẻ" msgid "tickets" msgstr "vé" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "người đăng" - #: judge/models/ticket.py:34 msgid "message body" msgstr "nội dung thư" @@ -2787,8 +2875,8 @@ msgstr "Phép thử theo lô #%d yêu cầu điểm." #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" -msgstr "Cố gắng để kết thúc bộ số liệu nằm ngoài một trong các trường hợp #%d" +msgid "Attempt to end batch outside of one in case #%d." +msgstr "Cố gắng để kết thúc bộ số liệu nằm ngoài một trong các trường hợp #%d." #: judge/utils/problem_data.py:154 msgid "How did you corrupt the zip path?" @@ -2810,10 +2898,6 @@ msgstr "Hết giờ" msgid "Error" msgstr "Lỗi" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "Không thể bỏ qua cả bộ lọc queryset và keyword" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "Mật khẩu này quá thông dùng." @@ -2850,7 +2934,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "Trang %d của bài viết" @@ -2875,7 +2959,7 @@ msgstr "Bạn không thể bình chọn cho bình luận của mình." msgid "You already voted." msgstr "Bạn đã bỏ phiếu rồi." -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "Biên tập từ trang web" @@ -2950,62 +3034,58 @@ msgstr "Nhập mã đăng nhập cho \"%s\"" msgid "You are not in contest \"%s\"." msgstr "Bạn đang không tham gia cuộc thi \"%s\"." -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "ContestCalendar yêu cầu là năm và tháng là số nguyên" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "Cuộc thi tại %(month)s" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "\\t\\há\\n\\g n \\nă\\m Y" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "Thống kê của %s" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "%s xếp hạng" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "???" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" -msgstr "Tham gia của bạn vào %s" +msgid "Your participation in %(contest)s" +msgstr "Tham gia của bạn vào %(contest)s" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" -msgstr "%s tham gia vào %s" +msgid "%(user)s's participation in %(contest)s" +msgstr "Sự tham gia của %(user)s vào %(contest)s" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "Trực tuyến" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "Tham gia" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "Kết quả MOSS của %s" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "Đang chạy MOSS cho %s..." -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "Thẻ cuộc thi: %s" @@ -3029,7 +3109,7 @@ msgstr "không cho phép %s" msgid "corrupt page %s" msgstr "trang lỗi %s" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "Đang chạy" @@ -3052,205 +3132,227 @@ msgstr "Không thể tìm thấy các tổ chức như vậy." msgid "Organizations" msgstr "Tổ chức" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "%s thành viên" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "Đang tham gia tổ chức" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "Bạn đã trong tổ chức." -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "Tổ chức này không phải là mở." -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "Rời khỏi tổ chức" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "Bạn đang không ở trong \"%s\"." -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "Không thể yêu cầu tham gia %s" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, 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:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "Yêu cầu tham gia %s" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "Chi tiết yêu cầu tham gia" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, 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:289 +#: judge/views/organization.py:295 +#, 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 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "Tổ chức của bạn có thể chỉ nhận được %d thêm các thành viên. Bạn không thể chấp nhận người dùng %d." +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:303 +#: judge/views/organization.py:312 #, 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:304 +#: judge/views/organization.py:313 #, 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:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "Đang chỉnh sửa %s" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "Không thể chỉnh sửa tổ chức" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 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:367 +#: judge/views/organization.py:376 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:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "Không thể loại thành viên" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 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:377 +#: judge/views/organization.py:386 #, 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." +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:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "Lớp {name} trong {organization}" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "Lớp {name} - {organization}" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "Yêu cầu tham gia {name} trong {organization}" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "Không có vấn đề như vậy" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, 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:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "Hướng giải của {0}" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "Không có hướng dẫn" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, 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:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "Đề bài" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:266 +msgid "success" +msgstr "thành công" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "Nộp cho %s" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "Bạn đã gửi quá nhiều lần." + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "Cấm nộp bài" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "Quá nhiều bài nộp" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 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:699 +#: judge/views/problem.py:766 +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:784 msgid "Clone Problem" msgstr "Nhân bản bài tập" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "Nhân bản bài tập từ %s" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" -msgstr "Đối số kiểm tra phải là đối tượng JSON" +msgid "Checker arguments must be a JSON object." +msgstr "Đối số kiểm tra phải là đối tượng JSON." #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" -msgstr "Đối số kiểm tra là đối tượng JSON không hợp lệ" +msgid "Checker arguments is invalid JSON." +msgstr "Đối số kiểm tra là đối tượng JSON không hợp lệ." #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "File nén bị lỗi!" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "So sánh các bài nộp cho {0}" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "Sửa dữ liệu cho {0}" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "Chỉnh sửa các dữ liệu cho %s" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "Tạo file init.yml cho %s" @@ -3292,8 +3394,8 @@ 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" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" -msgstr "Tên người dùng phải chứa chữ cái, số hoặc dấu gạch chân" +msgid "A username must contain letters, numbers, or underscores." +msgstr "Tên người dùng phải chứa chữ cái, số hoặc dấu gạch chân." #: judge/views/register.py:30 msgid "Preferred language" @@ -3312,15 +3414,15 @@ msgstr "Địa chỉ email \"%s\" đã được sử dụng. Chỉ có một đ msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "Nhà cung cấp email của bạn không được phép do phát tán thư rác. Xin vui lòng sử dụng một nhà cung cấp email có uy tín." -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "Đăng ký" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "Mã kích hoạt không hợp lệ" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "Xác thực không thành công" @@ -3332,7 +3434,7 @@ msgstr "Khác" msgid "Language statistics" msgstr "Thống kê theo ngôn ngữ" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "Trạng thái" @@ -3358,59 +3460,51 @@ msgstr "Từ chối quyền." msgid "Submission of %(problem)s by %(user)s" msgstr "Nộp %(problem)s bởi %(user)s" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "Tất cả các bài nộp" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "Tất cả những lần nộp bài của tôi" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "Tất cả các bài nộp bởi %s" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "Tất cả các bài nộp cho %s" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "Phải giải được 1 bài" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, 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:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, 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:592 -msgid "Must pass a contest" -msgstr "Phải vượt qua một cuộc thi" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, 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:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, 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:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "{user} gửi cho {problem} trong {contest}" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, 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}" @@ -3519,52 +3613,47 @@ msgstr "Đăng nhập" msgid "M j, Y, G:i" msgstr "j \\t\\há\\n\\g n \\nă\\m Y, G:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "Đang chuẩn bị dữ liệu..." -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "Đang tải xuống dữ liệu" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "Cập nhật trên trang web" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "Chỉnh sửa tiểu sử" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "Tạo mã API cho người dùng" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "Xóa mã API cho người dùng" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "Tạo mã dự phòng cho người dùng" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "Bảng xếp hạng" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "Bạn vừa đăng xuất thành công." -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "Dữ liệu nguồn không hợp lệ: %s" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" -msgstr "Sai tọa độ" +#: judge/views/user.py:508 +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." #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" @@ -3589,68 +3678,64 @@ msgstr "Ngắt kết nối" msgid "Terminate" msgstr "Chấm dứt" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" -msgstr "Xem các bài nộp" - -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 msgid "View submissions" 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 "" + #: 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/admin/judge/submission/change_form.html:14 -#: templates/admin/judge/submission/change_form.html:17 -#: templates/submission/source.html:34 templates/submission/status.html:80 -msgid "Rejudge" -msgstr "Chấm lại" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "Xin chào, %(username)s." -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "Ngừng mạo danh" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "Đăng xuất" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "Đăng nhập" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "hoặc" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "Đăng ký" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "đang theo dõi" -#: templates/base.html:263 +#: templates/base.html:259 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:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "dựa trên nền tảng **DMOJ**" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "Soạn thảo" @@ -3682,39 +3767,53 @@ msgstr "đã đăng vào {time}" msgid "posted {time}" msgstr "đã đăng {time}" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "Làm rõ" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "Chưa có lời làm rõ nào được đưa ra ở thời điểm này." -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "Cuộc thi đang diễn ra" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "Kết thúc trong %(countdown)s." + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "Cuộc thi sắp tới" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "Bắt đầu sau %(countdown)s." + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "Dòng bình luận" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "Đề bài mới" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "Thẻ mở của tôi" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "Thẻ mới" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "Nhận xét" @@ -3737,7 +3836,7 @@ msgstr "đã bình luận {time}" msgid "edit %(edits)s" msgstr "sửa %(edits)s" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "chỉnh sửa" @@ -3745,64 +3844,90 @@ msgstr "chỉnh sửa" msgid "Link" msgstr "Liên kết" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "Phản hồi" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "Đánh giá" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "Ẩn" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực." -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "Nhấn để xem." -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "Không có ý kiến tại thời điểm này." -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "Bình luận mới" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "Bình luận không hợp lệ." -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "Đăng!" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "Bình luận đã bị vô hiệu hóa trên trang này." -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "Đang trả lời bình luận" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "chỉnh sửa {edits}" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "nguyên bản" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "Không thể bầu chọn: {error}" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "Bạn có chắc muốn ẩn bình luận này?" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "Không thể ẩn bình luận." + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "đã cập nhật" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "Cập nhật bình luận không thành công." + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "Không thể soạn thảo bình luận: {error}" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "Người bình chọn" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "Điểm" @@ -3810,6 +3935,18 @@ 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 +msgid "Click to copy" +msgstr "Nhấn để sao chép" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "Sao chép" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "Đã sao chép!" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "Mã truy cập không hợp lệ." @@ -3874,12 +4011,12 @@ msgstr "Kế tiếp" msgid "Export" msgstr "Xuất" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "Danh sách" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "Lịch" @@ -3887,7 +4024,7 @@ msgstr "Lịch" msgid "Info" msgstr "Thông tin" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "Thống kê" @@ -3912,7 +4049,7 @@ msgstr "Nhân bản" msgid "Leave contest" msgstr "Rời khỏi cuộc thi" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "Tham gia ảo" @@ -3929,7 +4066,7 @@ msgstr "Tham gia cuộc thi" msgid "Spectate contest" msgstr "Theo dõi cuộc thi" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "Bạn không thể tham gia cuộc thi này." @@ -3937,6 +4074,16 @@ msgstr "Bạn không thể tham gia cuộc thi này." msgid "Log in to participate" msgstr "Đăng nhập để tham gia" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "Đang theo dõi, cuộc thi kết thúc trong %(countdown)s." + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "Đang tham gia ảo." @@ -3945,6 +4092,21 @@ msgstr "Đang tham gia ảo." msgid "Contest is over." msgstr "Cuộc thi kết thúc." +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "Bắt đầu tính giờ! Cuộc thi kết thúc trong %(countdown)s." + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "Bạn còn %(countdown)s." + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "Cuộc thi kết thúc trong %(countdown)s." + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "\\n\\gà\\y j \\t\\há\\n\\g n \\nă\\m Y, G:i T" @@ -4072,9 +4234,9 @@ msgstr "Cần có **mã tham gia** để tham gia vào kỳ thi." msgid "AC Rate" msgstr "Tỷ lệ AC" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "Thành viên" @@ -4082,7 +4244,7 @@ msgstr "Thành viên" msgid "Editorials" msgstr "Hướng dẫn giải" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "Hướng dẫn giải" @@ -4095,10 +4257,6 @@ msgstr "Bạn có chắc bạn muốn tham gia?" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "Truy cập vào một cuộc thi lần đầu tiên sẽ bắt đầu việc đếm ngược thời gian cuộc thi và không thể dừng lại được." -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "ẩn" - #: templates/contest/list.html:84 msgid "private" msgstr "cá nhân" @@ -4107,37 +4265,54 @@ msgstr "cá nhân" msgid "rated" msgstr "có xếp hạng" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "Cửa sổ %(time_limit)s" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "Tham gia" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "Theo dõi" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "Các cuộc thi đang diễn ra" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "Cuộc thi" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "Cuộc thi đang diễn ra" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "Cửa sổ kết thúc trong %(countdown)s" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "Cuộc thi sắp tới" +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "Kết thúc trong %(countdown)s" -#: templates/contest/list.html:266 +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "Bắt đầu sau %(countdown)s" + +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "Không có không có cuộc thi dự kiến tại thời điểm này." -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "Cuộc thi đã qua" #: templates/contest/media-js.html:4 @@ -4158,22 +4333,28 @@ msgid "Joining this contest will leave %(contest)s." msgstr "Tham gia kỳ thi này sẽ khiến rời khỏi kỳ thi %(contest)s." #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "Bạn có muốn MOSS cuộc thi này?" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "Bạn có chắc chắn muốn xoá kết quả MOSS?" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "%(count)s bài nộp" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "Không có bài nộp" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "MOSS lại cuộc thi" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "Xóa các kết quả MOSS" @@ -4227,19 +4408,19 @@ msgstr "Bỏ loại" msgid "Disqualify" msgstr "Loại" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 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:178 +#: templates/contest/ranking.html:156 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:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "Xem thành viên tham gia" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "Hiển thị các tổ chức" @@ -4260,8 +4441,8 @@ msgid "Language AC Rate" msgstr "Tỉ lệ AC của ngôn ngữ" #: templates/license.html:12 -msgid "Source:" -msgstr "Nguồn:" +msgid "Visit source" +msgstr "" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4426,7 +4607,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:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "Xoá?" @@ -4439,25 +4620,13 @@ msgid "Your reason for joining:" msgstr "Lý do của bạn để tham gia:" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "Yêu cầu" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Đang chờ" +msgid "Request!" +msgstr "Yêu cầu!" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "Nhật ký" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "Phê duyệt" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "Bị từ chối" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "Loại" @@ -4474,55 +4643,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:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "Xem YAML" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "Hiển thị các cột:" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "Tiền tố đầu ra" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "Giới hạn đầu ra" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "Kiểm tra" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "Bộ sinh args" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "Kiểu" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "Tập tin đầu vào" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "Tập tin đầu ra" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "Thử sơ bộ?" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "Nộp bài!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "Thêm mới trường hợp" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "Lưu" @@ -4534,7 +4707,7 @@ msgstr "Nhớ rằng hướng dẫn giải này **chỉ nên sử dụng khi b msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "Nộp mã nguồn lời giải chính thức trước khi giải bài tập đó có thể khiến bạn bị ban." -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "Tác giả:" @@ -4543,20 +4716,20 @@ msgstr[0] "Tác giả:" msgid "Filter by type..." msgstr "Lọc theo loại..." -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "Những bài tập nổi bật" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "Nhóm" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "Kiểu" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "AC %%" @@ -4620,113 +4793,128 @@ msgstr "Tính điểm lại mọi thứ" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "Việc này sẽ chấm lại %(count)d bài nộp." +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:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "Bạn có chắc chấm lại %(count)d bài nộp?" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "Chấm điểm lại mọi bài nộp" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "Xem dạng PDF" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "Gửi bài giải" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "Còn %(counter)s lần nộp" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "Còn 0 lần nộp" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "Bài nộp của tôi" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "Bài nộp tốt nhất" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "Đọc hướng dẫn giải" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "Quản lý thẻ" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "Sửa đề bài" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "Sửa đổi test" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "Thẻ của tôi" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "Quản trị các bài nộp" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "Điểm:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "(một phần)" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "Giới hạn thời gian:" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "Giới hạn bộ nhớ:" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "Kiểu bài tập" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "Ngôn ngữ cho phép" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "Không có máy chấm %(lang)s đang online" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "Máy chấm:" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "đang không khả dụng" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "Gửi thắc mắc" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "Báo cáo vấn đề" @@ -4775,8 +4963,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:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "Tìm" @@ -4811,6 +4999,54 @@ msgstr "Bạn còn 0 lần nộp" 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." +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4820,6 +5056,48 @@ msgstr "%(key)s là một mã kích hoạt không hợp lệ." msgid "Your account has been successfully activated." msgstr "Tài khoản của bạn đã được kích hoạt thành công." +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "Hẹn gặp lại!" + +#: templates/registration/activation_email.txt:1 +#, 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] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "Tên người dùng hoặc mật khẩu không hợp lệ." @@ -4866,7 +5144,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "Mật khẩu của bạn đã được đặt. Giờ bạn đã có thể đăng nhập." #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "Đặt lại mật khẩu" @@ -4882,23 +5159,20 @@ msgstr "Chúng tôi đã gửi bạn những hướng dẫn về việc thiết 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 "Nếu bạn không nhận được email, hãy đảm bảo bạn đã nhập địa chỉ email mà bạn đã dùng để đăng ký, và kiểm tra mục thư rác của bạn." -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "Quên mật khẩu trên trang %(site_name)s? Đừng lo lắng!" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." -msgstr "Để đặt lại mật khẩu cho tài khoản \"%(username)s\", nhấn vào nút phía dưới." - -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "Hẹn gặp lại! Nếu bạn có vấn đề gì về thiết lập lại email, hãy gửi email cho chúng tôi tại" +msgid "To reset the password for your account \"%(username)s\", click the link below." +msgstr "" -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" -msgstr "Hẹn gặp lại!" +#: 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 "Hẹn gặp lại! Nếu bạn có vấn đề gì về thiết lập lại mật khẩu, hãy gửi email cho chúng tôi tại %(email)s." #: templates/registration/password_reset_email.txt:1 #, python-format @@ -4927,7 +5201,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:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Tiếp tục >" @@ -4940,41 +5214,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "(xác nhận mật khẩu)" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "(chọn thành phố gần bạn nhất)" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "chọn từ bản đồ" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "Ngôn ngữ mặc định" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "Tổ chức đại diện" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 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:204 -msgid "By registering, you agree to our" -msgstr "Để đăng ký, bạn đồng ý với chúng tôi" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "Điều khoản & Điều kiện" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "Đăng ký!" @@ -4983,7 +5252,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "Để bảo vệ tài khoản của bạn, bạn cần xác thực trước khi bạn có thể vô hiệu hóa 2FA." #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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 "Nhập mã 6 chữ số được tạo ra bởi ứng dụng hoặc một trong mã dự phòng 16 kí tự:" #: templates/registration/totp_disable.html:41 @@ -5015,14 +5285,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 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 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 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ố." @@ -5031,6 +5304,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 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." @@ -5048,19 +5322,15 @@ 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:165 +#: templates/user/edit-profile.html:164 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:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "Không thể kết nối với máy chủ." -#: 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 "Nhập mã 6 chữ số được tạo ra bởi ứng dụng hoặc một trong mã dự phòng 16 kí tự:" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "Nhập một trong các mã dự phòng 16 kí tự:" @@ -5086,38 +5356,38 @@ msgstr "Thống kê bài nộp" msgid "AC Submissions by Language" msgstr "Các bài nộp đã AC theo ngôn ngữ" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "Máy chấm" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "Trực tuyến" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "Thời gian hoạt động" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "Ping" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "Tải" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "Không có thông tin" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "Không có máy chấm nào tại thời điểm này." -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "ID" @@ -5150,23 +5420,27 @@ msgstr "Một lỗi hệ thống vừa xảy ra trong quá trình chấm bài." msgid "Error information" msgstr "Thông tin về lỗi" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "Lọc theo trạng thái..." -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "Lọc theo ngôn ngữ..." -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "Lọc các bài nộp" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "Tổng:" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 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." @@ -5232,20 +5506,24 @@ msgid "Execution Results" msgstr "Kết quả thực hiện" #: templates/submission/status-testcases.html:51 -msgid "Batch " -msgstr "Hàng loạt " +#, python-format +msgid "Batch #%(id)d" +msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" -msgstr "Trường hợp" +#, python-format +msgid "Case #%(id)d:" +msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" -msgstr "Test đề bài" +#, python-format +msgid "Pretest #%(id)d:" +msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" -msgstr "Bộ test" +#, python-format +msgid "Test case #%(id)d:" +msgstr "" #: templates/submission/status-testcases.html:101 msgid "Your output (clipped)" @@ -5289,11 +5567,11 @@ msgstr "Bài nộp đã bị huỷ!" msgid "View source" msgstr "Xem nguồn" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "Nhấn Ctrl-Enter hay Command-Enter để hủy bỏ chương trình." -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "Huỷ bỏ" @@ -5310,40 +5588,40 @@ msgstr "Tốt nhất" msgid "%(user)s's" msgstr "%(user)s's" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "Đã mở lại: " -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "Đã đóng: " -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "Sử dụng thông báo trên màn hình" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "Ẩn các ticket đã đóng" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "Chỉ hiện thẻ của tôi" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "Filing user" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "Người được phân công" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "Tiêu đề" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "Những người được phân công" @@ -5365,31 +5643,32 @@ msgstr "Cảm ơn vì đã mở một thẻ!" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "Xin lưu ý rằng biểu mẫu này dành cho việc báo cáo các vấn đề của đề bài, và không dành cho việc hỏi xin trợ giúp. Nếu bạn cần hỗ trợ về việc giải bài, hỏi trong phần bình luận." -#: templates/ticket/ticket.html:356 -msgid "Post" -msgstr "Bài viết" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" +msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "Các vật liên quan" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "Không ai được giao công việc này." -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "Đóng thẻ" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "Mở lại thẻ" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "Ghi chú của người được giao" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "Không có gì ở đây." @@ -5397,141 +5676,163 @@ msgstr "Không có gì ở đây." msgid "Rank" msgstr "Xếp hạng" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "Tìm kiếm theo tên..." -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 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:114 +#: templates/user/edit-profile.html:113 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:115 +#: templates/user/edit-profile.html:114 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:116 -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:115 +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:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "Đang tạo..." -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "Tạo lại" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "Xóa" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 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:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "Tạo" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 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:284 -msgid "Self-description" -msgstr "Mô tả bản thân" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" +msgstr "" + +#: templates/user/edit-profile.html:285 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:300 -msgid "Editor theme" -msgstr "Giao diện khung viết code" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "Công cụ toán học" +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" +msgstr "" + +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "Đổi ảnh đại diện của bạn" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "Đổi mật khẩu của bạn" -#: templates/user/edit-profile.html:359 -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:352 +msgid "Two-factor Authentication is enabled:" +msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "Vô hiệu hóa" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "Làm mới" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" -msgstr "Mã dự phòng:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" +msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "Ẩn" -#: templates/user/edit-profile.html:384 -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:377 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "Kích hoạt" -#: templates/user/edit-profile.html:392 -msgid "API Token" -msgstr "Mã API" +#: templates/user/edit-profile.html:393 +msgid "API token:" +msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" -msgstr "Khóa bảo mật" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" +msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "Xóa" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "Đặt tên cho khóa này" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "Thêm" -#: templates/user/edit-profile.html:435 -msgid "User-script" -msgstr "Script tự định nghĩa" +#: templates/user/edit-profile.html:436 +msgid "User-script:" +msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "Cập nhật profile" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "%(pp).1fpp" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" -msgstr "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" +msgstr "" #: templates/user/prepare-data.html:64 msgid "Are you sure you want to prepare a download?" @@ -5545,31 +5846,41 @@ msgstr "Chúng tôi đang chuẩn bị dữ liệu cho bạn." msgid "Track progress" msgstr "Theo dõi quá trình" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "Khi mà dữ liệu bạn đã sẵn sàng, bạn sẽ tìm thấy link tải trên trang này." -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "Các bài nộp" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "Chuẩn bị cho tải xuống mới" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "Chuẩn bị tải xuống" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "Tải dữ liệu đã được chuẩn bị" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "Dữ liệu của bạn đã sẵn sàng!" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "Tải dữ liệu" @@ -5633,43 +5944,39 @@ msgstr "Nhiều" msgid "Rating history" msgstr "Lịch sử xếp hạng" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "năm qua" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "%(counter)s số lượng bài đã giải" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "Xếp hạng bằng điểm:" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "Tổng điểm:" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "Số lượng cuộc thi đã viết %(counter)s" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "Xếp hạng theo điểm số:" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "Điểm số:" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "Điểm số thấp nhất:" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "Điểm số cao nhất:" @@ -5693,12 +6000,12 @@ msgstr "Các bài đã viết" msgid "Hide problems I've solved" msgstr "Ẩn các bài tôi đã giải được" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" -msgstr "%(points).1f điểm" +msgid "%(group)s (%(val)s points)" +msgstr "%(group)s (%(val)s điểm)" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "%(points)s / %(total)s" diff --git a/locale/vi/LC_MESSAGES/djangojs.po b/locale/vi/LC_MESSAGES/djangojs.po index b71293f77a..a1a3affebc 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:30\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:44\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -17,14 +17,61 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "một năm trước" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "%(cnt)d tổng số bài đã gửi" + +#: 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 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" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "%(cnt)d bài gửi trong ngày %(date)s" + diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po index ea2dffa03d..81625ad046 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-07-04 01:01\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -17,71 +17,75 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "加泰隆语" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "德语" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "希腊语" + +#: dmoj/settings.py:384 msgid "English" msgstr "英语" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "西班牙语" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "法语" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "克罗地亚语" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "匈牙利语" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "日语" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "韩语" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "巴西葡萄牙语" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "罗马尼亚语" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "俄语" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" msgstr "塞尔维亚文(拉丁字母)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "土耳其语" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "越南语" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "简体中文" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "繁体中文" @@ -95,12 +99,16 @@ msgstr "注册完成" #: dmoj/urls.py:44 msgid "Registration Not Allowed" -msgstr "" +msgstr "不允许注册" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "首页" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "内容" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." @@ -130,12 +138,25 @@ msgid "Included contests" msgstr "带标签的竞赛" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "题目" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "题目" + +#: judge/admin/contest.py:77 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 "重新评分" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "设置" @@ -160,7 +181,7 @@ msgstr "评分" msgid "Access" msgstr "访问权限" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "司法" @@ -204,7 +225,7 @@ msgstr[0] "%d个竞赛解锁成功。" msgid "Unlock contest submissions" msgstr "解锁竞赛提交" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -224,7 +245,7 @@ msgstr "重新计算结果" msgid "username" msgstr "用户名" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "模拟竞赛" @@ -232,17 +253,14 @@ msgstr "模拟竞赛" msgid "link path" msgstr "链接路径" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "内容" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "概要" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "用户" @@ -250,100 +268,106 @@ msgstr "用户" msgid "object" msgstr "对象" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" msgstr "查看" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" msgstr "编辑的理由" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "描述所你所做的更改 (可选)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "社交媒体" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" msgstr "分类" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "分数" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "限制" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "语言" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "编辑历史" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "作者" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." msgstr[0] "%d个题目的发表日期更新成功。" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" msgstr "设发表日期为现在" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." msgstr[0] "%d 个题目已被成功地公开。" -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "公开题目" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "%d 个题目已被成功地隐藏。" -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "题目" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "用户" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "电子邮箱" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "时区" @@ -353,9 +377,9 @@ msgstr "加入日期" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." -msgstr[0] "%d 个用户的总分已被重新计算。" +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." +msgstr[0] "%d个用户的总分已被重新计算。" #: judge/admin/profile.py:123 msgid "Recalculate scores" @@ -366,8 +390,14 @@ msgid "Disallowed problems" msgstr "排除题目" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "这些题目不允许使用该语言解决" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "这些题目不允许使用该语言解决。" + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "重新生成" #: judge/admin/runtime.py:77 msgid "Description" @@ -381,99 +411,103 @@ msgstr "信息" msgid "Capabilities" msgstr "能力" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "无" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "未完成" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "错误" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "未被接受" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "%s(旁观中)" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "%s(模拟竞赛第%d)" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "已锁定" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "包括题目" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "这些题目属于该题目组" +msgid "These problems are included in this group of problems." +msgstr "这些题目属于该题目组。" #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" -msgstr "这些题目属于该题目类型" +msgid "These problems are included in this type of problems." +msgstr "这些题目属于该题目类型。" #: judge/apps.py:8 msgid "Online Judge" @@ -487,11 +521,11 @@ msgstr "评论正文" msgid "Your part is silent, little toad." msgstr "你已被静音……" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "只有解决了一个题目以后你才能有发言权。" +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "发布了评论" @@ -539,7 +573,7 @@ msgstr "在你第一次提交的非CE文件中,如果完全解决了,有**%d #, python-format msgid "For every **%d minute** you submit before the end of your window, there will be a **1** point bonus." msgid_plural "For every **%d minutes** you submit before the end of your window, there will be a **1** point bonus." -msgstr[0] "" +msgstr[0] "在限制时间内每提前**%d分钟**提交,将有**1**点加分。" #: judge/contest_format/ecoo.py:147 msgid "Ties will be broken by the sum of the last submission time on **all** problems." @@ -574,20 +608,21 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "IOI(2016年之前)" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "双重身份验证令牌必须是{TOTP_CODE_LENGTH}小数。" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "双重身份验证令牌必须是{count}小数。" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "无效的双重验证码。" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "一次性双重验证码必须是16个32十进制字符。" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "无效的一次性代码。" @@ -603,91 +638,93 @@ msgstr "允许使用实验性功能" msgid "You must solve at least one problem before you can update your profile." msgstr "你必须至少解决一个题目,才能更新你的资料。" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "你不能参与超过{count}个组织。" +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "下载评论?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "下载提交?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "按题目代码glob过滤:" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "留空以包含所有提交" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "以结果过滤:" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "请选择下载至少一个东西。" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "任何裁判服务器" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "用户名" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "密码" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "无效的代码长度。" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "WebAuthn回复无效。" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "未发出WebAuthn质疑。" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "无效的WebAuthn凭据ID。" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "无效的双重验证码或者一次性代码。" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "必须指定 totp_token 或 webauthn_response。" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "题目代码必须匹配 ^[a-z0-9]+$" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." msgstr "代码已经存在题目。" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "竞赛标识必须匹配 ^[a-z0-9]+$" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "有这个代码的竞赛已经存在。" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "Y年n月j日 G:i" @@ -749,9 +786,9 @@ msgstr "投票" msgid "body of comment" msgstr "评论正文" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "隐藏评论" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "隐藏" #: judge/models/comment.py:48 msgid "parent" @@ -766,7 +803,7 @@ msgid "comments" msgstr "评论" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "%s 的题解" @@ -774,7 +811,7 @@ msgstr "%s 的题解" #: judge/models/comment.py:169 #, python-format msgid "%(page)s by %(user)s" -msgstr "" +msgstr "%(page)s 由 %(user)s" #: judge/models/comment.py:191 msgid "comment vote" @@ -849,7 +886,7 @@ msgid "contest name" msgstr "竞赛名称" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "作者" @@ -857,7 +894,7 @@ msgstr "作者" msgid "These users will be able to edit the contest." msgstr "这些用户可以编辑竞赛。" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "策展人" @@ -865,7 +902,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:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "测试人员" @@ -895,13 +932,13 @@ msgstr "旁观者" #: judge/models/contest.py:85 msgid "These users will be able to spectate the contest, but not see the problems ahead of time." -msgstr "" +msgstr "这些用户将能够旁观比赛,但是不能提前看到题目。" #: judge/models/contest.py:88 judge/models/runtime.py:137 msgid "description" msgstr "描述" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "题目" @@ -914,12 +951,12 @@ msgstr "开始时间" msgid "end time" msgstr "结束时间" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "时间限制" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "公开" @@ -949,14 +986,14 @@ msgstr "可以看到竞赛提交" #: judge/models/contest.py:104 msgid "These users will be able to see in-contest submissions." -msgstr "" +msgstr "这些用户将能够看到赛时的提交。" #: judge/models/contest.py:106 msgid "scoreboard visibility" msgstr "记分板可见性" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -971,113 +1008,114 @@ msgstr "使用澄清系统,而不是评论。" msgid "rating floor" msgstr "最低评分" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" -msgstr "竞赛最低评分" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." +msgstr "不要给评分较低的用户评分。" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "最高评分" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" -msgstr "竞赛最高评分" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." +msgstr "不要给评分较高的用户评分。" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "为所有用户评分" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "所有参与竞赛的用户,包含没有提交任何程序的用户,都将被评分。" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "不会被评分" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "私密给特定用户" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "秘密参赛者" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" -msgstr "" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." +msgstr "如果非空,只有这些用户可以看到比赛。" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "隐藏题目标签" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "设置竞赛内题目标签是否默认被隐藏。" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "隐藏题目作者" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "是否默认隐藏题目作者。" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "只运行预测试" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "设置裁判服务器是否只运行预测试而不是所有测试。通常在竞赛进行时启动,然后在竞赛结束后重新评分前关闭。" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "只对组织可见" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "组织" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 msgid "limit organizations that can join" -msgstr "" +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" -msgstr "" +msgid "If non-empty, only these organizations may join the contest." +msgstr "如果非空,只有这些组织可以加入比赛。" #: judge/models/contest.py:146 judge/models/profile.py:143 msgid "classes" msgstr "类" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "OpenGraph 图像" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "覆盖标志的图片" #: judge/models/contest.py:151 @@ -1092,7 +1130,7 @@ msgstr "实时参与者数" msgid "contest summary" msgstr "竞赛简介" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "在meta description标签内显示的纯文本介绍。" @@ -1105,7 +1143,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "不受欢迎人物" @@ -1169,7 +1207,7 @@ msgstr "编辑全部竞赛" msgid "Clone contest" msgstr "复制竞赛" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "MOSS竞赛" @@ -1266,15 +1304,8 @@ msgstr "竞赛参与信息" msgid "contest participations" msgstr "竞赛参与信息" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "题目" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "分" @@ -1296,7 +1327,7 @@ msgstr "输出前缀替换" #: judge/models/contest.py:591 msgid "max submissions" -msgstr "" +msgstr "提交次数上限" #: judge/models/contest.py:592 msgid "Maximum number of submissions for this problem, or leave blank for no limit." @@ -1314,7 +1345,7 @@ msgstr "竞赛题目" msgid "contest problems" msgstr "竞赛题目" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "提交信息" @@ -1370,6 +1401,14 @@ msgstr "竞赛MOSS结果" msgid "contest moss results" msgstr "竞赛MOSS结果" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "键" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "值" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "配置项目" @@ -1410,7 +1449,7 @@ msgstr "文章标题" msgid "slug" msgstr "网址标志" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "公共可见性" @@ -1430,10 +1469,6 @@ msgstr "发布内容" msgid "post summary" msgstr "发布摘要" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "openGraph 图像" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "编辑所有的帖子" @@ -1450,337 +1485,374 @@ msgstr "博客文章" msgid "blog posts" msgstr "博客文章" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" -msgstr "" +msgstr "不允许的字符:%(value)s" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "题目类型标识符" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "题目类型名称" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "题目类型" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "题目类型" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "题目组标识符" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "题目组名称" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "题目组" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "题目组" -#: judge/models/problem.py:61 -msgid "key" -msgstr "键" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "链接" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "全名字" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "简称" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "在本许可证下的页面上显示" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." +msgstr "在本许可证下的页面上显示。" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "图标" -#: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "图标的 URL" +#: judge/models/problem.py:66 +msgid "URL to the icon." +msgstr "图标的URL。" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "许可证文本" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "许可证" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "许可证" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" -msgstr "" +msgstr "跟随全局设置" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "始终可见" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "题目解决后可见" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "我提交的程序" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "题目代码" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "一个简短,独特的题目代码,将在URL里/problem/之后显示。" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "题目名称" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." msgstr "题目列表中显示的题目全名。" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "题目正文" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "作者" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." msgstr "这些用户将能够编辑题目并被列为作者。" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." msgstr "这些用户将可以编辑这个题目,但不会公开显示为作者。" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "这些用户将能查看这个隐藏的题目,但无法编辑。" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "在题目页面显示的题目类型。" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "在题目列表显示的题目组。" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "这个题目的时间限制(以秒为单位)。支持小数秒计时方式(例如1.5)。" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "内存限制" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "此题目的存储限制,以kb为单位(例如 64mb = 65536 kb)。" +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." +msgstr "此题目的存储限制,以kb为单位(例如 256mb = 262144 kb)。" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "跳过" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "完成题目得分的分数,如果有部分分数而显示'p'结尾。" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "允许部分分数" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "允许的语言" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "允许提交语言。" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "手动管理" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "是否允许裁判管理数据。" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "公开日期" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" -msgstr "无法自动在时间后公开题目" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." +msgstr "无法自动在时间后公开题目。" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "禁止这些用户对该题目提交答案。" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "此题目的許可證。" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "题目摘要" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "用户数" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "解决这个题目的用户数量。" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "通过率" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "允许使用所有markup" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" -msgstr "" +msgstr "提交源码可见性" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "隐藏时,只对选择的组织才可见。" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "查看隐藏题目" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "编辑自己的题目" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "编辑所有题目" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "编辑所有公共题目" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "使用所有markup来编辑题目" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "复制题目" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "改变is_public领域" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "改变is_manually_managed领域" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "查看对组织私有的题目" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "语言" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "翻译题目名" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "翻译题目正文" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "题目翻译" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "题目翻译" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "已澄清的题目" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "澄清的身体" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "澄清时间戳" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "题目澄清" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "题目澄清" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "语言特定资源限制" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "语言特定资源限制" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "关联的题目" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "发布日期" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "题解内容" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "查看隐藏的解答" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "题目讲解" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "题目讲解" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "投票者" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "备注" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "题目投票" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "题目投票" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "标准" @@ -1821,11 +1893,11 @@ msgstr "zip数据文件" msgid "generator file" msgstr "生成器文件" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "输出前缀长度" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "输出限制长度" @@ -1833,59 +1905,67 @@ msgstr "输出限制长度" msgid "init.yml generation feedback" msgstr "init.yml生成反馈" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "检查器" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "启用 Unicode" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "禁用 BigInteger / BigDecimal" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "检查器参数" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" -msgstr "检查器参数作为JSON对象" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." +msgstr "检查器参数作为JSON对象。" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "题目数据集" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "测试编号" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "测试类型" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "正常测试" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "测试组开始" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "测试组结束" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "输入的文件的名称" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "输出文件的名称" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "生成器参数" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "分数" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "是否为预测试?" @@ -1898,12 +1978,12 @@ msgid "organization slug" msgstr "组织代码" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" -msgstr "组织名称在 URL 中显示" +msgid "Organization name shown in URLs." +msgstr "组织名称在 URL 中显示。" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" -msgstr "竞赛时显示在用户名旁边" +msgid "Displayed beside user name during contests." +msgstr "竞赛时显示在用户名旁边。" #: judge/models/profile.py:47 msgid "organization description" @@ -1914,8 +1994,8 @@ msgid "administrators" msgstr "管理员" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" -msgstr "这些用户可以编辑此组织" +msgid "Those who can edit this organization." +msgstr "这些用户可以编辑此组织。" #: judge/models/profile.py:50 msgid "creation date" @@ -1926,20 +2006,20 @@ msgid "is open organization?" msgstr "是开放的组织吗?" #: judge/models/profile.py:52 -msgid "Allow joining organization" -msgstr "允许加入组织" +msgid "Allow joining organization." +msgstr "允许加入组织。" #: judge/models/profile.py:53 msgid "maximum size" msgstr "最大大小" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "这个组织用户最大数量,只适用于私人组织" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "这个组织用户最大数量,只适用于私人组织。" -#: judge/models/profile.py:56 -msgid "Student access code" -msgstr "学生访问码" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." +msgstr "学生访问码。" #: judge/models/profile.py:60 msgid "This image will replace the default site logo for users viewing the organization." @@ -1947,14 +2027,14 @@ msgstr "此图片将替换访问该组织的用户的默认网站标识。" #: judge/models/profile.py:62 msgid "class membership required" -msgstr "" +msgstr "需要类别成员" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1966,12 +2046,12 @@ msgid "Edit all organizations" msgstr "编辑所有组织" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "组织" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1983,8 +2063,8 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" -msgstr "类名称在 URL 中显示" +msgid "Class name shown in URLs." +msgstr "类名称在 URL 中显示。" #: judge/models/profile.py:108 msgid "class description" @@ -1994,12 +2074,8 @@ msgstr "类描述" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "学生访问码" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2011,7 +2087,7 @@ msgstr "成员" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "类" @@ -2024,8 +2100,8 @@ msgid "self-description" msgstr "自我描述" #: judge/models/profile.py:150 -msgid "location" -msgstr "位置" +msgid "time zone" +msgstr "时区" #: judge/models/profile.py:152 msgid "preferred language" @@ -2055,8 +2131,8 @@ msgstr "普通用户" msgid "Problem Setter" msgstr "题目作家" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2082,163 +2158,183 @@ msgid "User will not be ranked." msgstr "用户将不被排名。" #: judge/models/profile.py:172 +msgid "banned from voting on problem point values" +msgstr "" + +#: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 msgid "user script" msgstr "用户脚本" -#: judge/models/profile.py:173 +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "用户自定义 JavaScript。" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "当前竞赛" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "数学引擎" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "数学渲染使用的引擎" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." +msgstr "数学渲染使用的引擎。" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "TOTP 2FA 已启用" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" -msgstr "打钩以启用TOTP双重验证" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." +msgstr "打钩以启用TOTP双重验证。" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn 2FA 已启用" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" -msgstr "打钩以启用WebAuthn双重验证" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." +msgstr "打钩以启用WebAuthn双重验证。" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "TOTP 密钥" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" -msgstr "TOTP的32字符,32进制密钥" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." +msgstr "TOTP的32字符,32进制密钥。" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" -msgstr "TOTP 密钥必须为空或32进制" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." +msgstr "TOTP密钥必须为空或32进制。" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "一次性代码" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" -msgstr "含有16字符的32进制代码的JSON数组" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." +msgstr "含有16字符的32进制代码的JSON数组。" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" -msgstr "一次性代码必须是空的或者是一个含有32进制代码的JSON数组" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." +msgstr "一次性代码必须是空的或者是一个含有32进制代码的JSON数组。" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "API令牌" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" -msgstr "64 个字符hex编码的API访问令牌" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." +msgstr "64个字符hex编码的API访问令牌。" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "API 令牌必须是莫或十六进制的" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "内部备注" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "此用户的管理员备注。" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "上次数据下载时间" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "显示名覆盖" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "显示正在开发的内容" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "编辑 TOTP 设置" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "用户信息" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "用户信息" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "设备名称" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "凭据ID" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "公钥" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "签名数量" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "WebAuthn凭据:%(name)s" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "WebAuthn凭据" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "WebAuthn凭据" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "请求时间" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "状态" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "待确认" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "已批准" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "已拒绝" + +#: judge/models/profile.py:372 msgid "reason" msgstr "理由" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "组织加入请求" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "组织加入请求" @@ -2267,7 +2363,7 @@ msgid "common name" msgstr "通用名" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "语言的通用名称,例如C++03、C++11、C++14的通用名称为“C++”。" #: judge/models/runtime.py:32 @@ -2347,16 +2443,16 @@ msgid "judge name" msgstr "裁判服务器名称" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" -msgstr "服务器名称" +msgid "Server name, hostname-style." +msgstr "服务器名称。" #: judge/models/runtime.py:126 msgid "time of creation" msgstr "创建时间" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" -msgstr "裁判服务器连接密匙" +msgid "A key to authenticate this judge." +msgstr "裁判服务器连接密匙。" #: judge/models/runtime.py:128 msgid "authentication key" @@ -2440,9 +2536,9 @@ msgstr "编译错误" msgid "Internal Error" msgstr "内部错误" -#: judge/models/submission.py:31 -msgid "Short circuit" -msgstr "跳过" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" +msgstr "短路" #: judge/models/submission.py:32 judge/models/submission.py:45 #: judge/models/submission.py:64 @@ -2465,10 +2561,6 @@ msgstr "评分中" msgid "Completed" msgstr "完成" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "短路" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "内部错误 (裁判服务器错误)" @@ -2477,15 +2569,15 @@ msgstr "内部错误 (裁判服务器错误)" msgid "submission time" msgstr "提交时间" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "执行时间" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "内存使用" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "获得分数" @@ -2537,97 +2629,97 @@ msgstr "只进行过预测试" msgid "submission lock" msgstr "提交锁定" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "中止任何提交" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" msgstr "重新评分提交" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "重新评分很多提交" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "不受限制提交" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "查看所有提交" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "重新提交他人的提交" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "更改提交锁定状态" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "提交历史" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "相关提交" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "源码" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "%(submission)s 的源代码" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "测试编号" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "状态标志" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "满分" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "批号" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "评测反馈" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "延长的裁判反馈" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "程序输出" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "程序测试" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "程序测试" @@ -2675,10 +2767,6 @@ msgstr "工单" msgid "tickets" msgstr "工单" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "海报" - #: judge/models/ticket.py:34 msgid "message body" msgstr "消息正文" @@ -2787,8 +2875,8 @@ msgstr "编号为%d的测试组必须设置分数。" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" -msgstr "测试编号%d:试图在组外结束测试组" +msgid "Attempt to end batch outside of one in case #%d." +msgstr "测试编号%d:试图在组外结束测试组。" #: judge/utils/problem_data.py:154 msgid "How did you corrupt the zip path?" @@ -2810,10 +2898,6 @@ msgstr "超时" msgid "Error" msgstr "出错" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "无法同时使用 queryset 和关键字筛选" - #: judge/utils/pwned.py:109 msgid "This password is too common." msgstr "这个密码太常见了。" @@ -2850,7 +2934,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "帖子第%d页" @@ -2875,7 +2959,7 @@ msgstr "您不能为自己的评论投票。" msgid "You already voted." msgstr "你已经投了票。" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "从网站中上编辑" @@ -2913,7 +2997,7 @@ msgstr "复制竞赛" #: judge/views/contests.py:317 #, python-format msgid "Cloned contest from %s" -msgstr "" +msgstr "从 %s 克隆的比赛" #: judge/views/contests.py:353 msgid "Contest not ongoing" @@ -2934,11 +3018,11 @@ msgstr "您在该竞赛不受欢迎。您被永久禁止参加该竞赛。" #: judge/views/contests.py:390 msgid "Cannot enter" -msgstr "" +msgstr "无法输入" #: judge/views/contests.py:391 msgid "You are not able to join this contest." -msgstr "" +msgstr "您不能加入这场比赛。" #: judge/views/contests.py:429 #, python-format @@ -2950,62 +3034,58 @@ msgstr "输入“%s”的访问码" msgid "You are not in contest \"%s\"." msgstr "你不是在竞赛\"%s\"中。" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "ContestCalendar需要整数年份和月份" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "%(month)s的竞赛" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "Y年n月" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "%s 数据" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "%s 排行榜" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "???" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" -msgstr "你在%s中的参与历史" +msgid "Your participation in %(contest)s" +msgstr "你在 %(contest)s 中的参与历史" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" -msgstr "%s在%s中的参与历史" +msgid "%(user)s's participation in %(contest)s" +msgstr "%(user)s 在 %(contest)s 中的参与历史" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "实时" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "参与历史" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "%s MOSS 结果" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "正在为 %s 运行 MOSS…" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "竞赛标签:%s" @@ -3029,7 +3109,7 @@ msgstr "无权访问 %s" msgid "corrupt page %s" msgstr "页面错误 %s" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "语言" @@ -3052,205 +3132,227 @@ msgstr "找不到该组织。" msgid "Organizations" msgstr "组织" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "%s 成员列表" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "加入组织" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." msgstr "你已经是该组织的成员。" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "该组织不开放。" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "离开组织" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "你不是是“%s”的成员。" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "无法申请加入 %s" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." msgstr "你已经有一个待确认的加入 %s 的请求。" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "请求加入 %s" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "组织加入请求详细信息" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "管理 %s 的加入请求" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 +#, 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 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "你的组织只能再接受%d个用户,无法接受%d个。" +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "无法接受%d个用户。" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "批准了%d个用户。" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "拒绝了%d个用户。" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "编辑 %s" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "无法编辑组织" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "您没有编辑该组织的权利。" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "你没有踢组织成员的权利。" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "无法踢用户" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "你想踢的用户不存在!" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "你想踢的用户不是组织成员:%s" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "无该题目" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "找不到代码为“%s”的题目。" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "{0} 的题解" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "没有这种题解" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "找不到标识符为“%s”的题解。" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "题目" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "成功" + +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "提交给 %s" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "您提交了太多次。" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "禁止提交" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "提交太多了" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "您已超出此题目的提交限制。" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "复制题目" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" -msgstr "" +msgstr "从 %s 克隆的问题" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" -msgstr "检查器参数必须是一个 JSON 对象" +msgid "Checker arguments must be a JSON object." +msgstr "检查器参数必须是一个 JSON 对象。" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" -msgstr "检查参数是无效的 JSON" +msgid "Checker arguments is invalid JSON." +msgstr "检查参数是无效的 JSON。" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "您的 zip 文件是无效的!" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "比较 {0} 的提交" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "正在编辑 {0} 的数据" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "编辑%s的测试数据" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "为%s生成的init.yml" @@ -3292,8 +3394,8 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "%(contest)s 第%(number)s题的最佳解决方案" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" -msgstr "用户名只能包含字母,数字或下划线" +msgid "A username must contain letters, numbers, or underscores." +msgstr "用户名只能包含字母,数字或下划线。" #: judge/views/register.py:30 msgid "Preferred language" @@ -3312,15 +3414,15 @@ msgstr "电子邮件地址“%s”已被使用。每个电子邮件地址只允 msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "由于滥用历史,我们不允许您的电子邮件提供商。请使用有信誉的电子邮件提供商。" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "注册" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" -msgstr "" +msgstr "激活Key无效" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "身份验证失败" @@ -3332,7 +3434,7 @@ msgstr "其他" msgid "Language statistics" msgstr "语言统计信息" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "状态" @@ -3343,7 +3445,7 @@ msgstr "版本矩阵" #: judge/views/submission.py:70 #, python-format msgid "Permission denied. Solve %(problem)s in order to view it." -msgstr "" +msgstr "拒绝访问。解决 %(problem)s 来查看它。" #: judge/views/submission.py:75 judge/views/submission.py:77 msgid "Can't access submission" @@ -3351,66 +3453,58 @@ msgstr "无法访问提交" #: judge/views/submission.py:77 msgid "Permission denied." -msgstr "" +msgstr "权限被拒绝。" #: judge/views/submission.py:81 judge/views/submission.py:88 #, python-format msgid "Submission of %(problem)s by %(user)s" msgstr "%(user)s 在 %(problem)s 的提交结果" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "所有提交历史" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "我提交的程序" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "%s 的提交历史" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "%s 的提交历史" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "必须给予题目" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "我对 %(problem)s 提交的程序" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "%(user)s 在 %(problem)s 的提交历史" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "必须给予竞赛" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "我在 %(contest)s 的提交" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "%(user)s 在 %(contest)s 的提交历史" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "{contest} 中 {user} 在 {problem} 的提交历史" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "{user} 对 {contest} 第 {number} 题提交的程序" @@ -3471,7 +3565,7 @@ msgstr "启用双因素身份认证" #: judge/views/two_factor.py:109 msgid "Refresh Two-factor Authentication" -msgstr "" +msgstr "刷新两步验证" #: judge/views/two_factor.py:117 msgid "Disable Two-factor Authentication" @@ -3519,52 +3613,47 @@ msgstr "登录" msgid "M j, Y, G:i" msgstr "Y年n月j日 G:i" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "正在准备您的数据…" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "下载您的数据" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "在网站上更新" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "编辑个人资料" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "为用户生成 API 令牌" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "为用户清除API令牌" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "为用户生成一次性代码" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "排行榜" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." msgstr "您已成功注销。" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "无效的上游数据:%s" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" -msgstr "无效的纬度或经度" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." +msgstr "您发送了太多密码重置请求。请稍后再试。" #: templates/admin/judge/contest/change_form.html:9 msgid "Are you sure you want to rejudge ALL the submissions?" @@ -3589,68 +3678,64 @@ msgstr "断开连接" msgid "Terminate" msgstr "终止" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" -msgstr "查看提交历史" - -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 msgid "View submissions" msgstr "查看提交历史" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" +msgstr "" + #: templates/admin/judge/profile/change_form.html:14 #: templates/admin/judge/profile/change_form.html:17 msgid "Edit user" msgstr "编辑用户" -#: 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:80 -msgid "Rejudge" -msgstr "重新评分" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "你好,%(username)s。" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "登出" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "登录" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "或" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "注册" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "旁观中" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "本网站启用 JavaScript 效果最好。" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "编辑" @@ -3682,39 +3767,53 @@ msgstr "于{time}发布" msgid "posted {time}" msgstr "{time}发布" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "继续阅读…" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "澄清" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." msgstr "目前还没有作出任何澄清。" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "进行中的竞赛" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "在%(countdown)s后结束。" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "未来的竞赛" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "%(countdown)s后开始。" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "评论流" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "新题目" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "我的开放工单" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "新工单" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "评论" @@ -3737,7 +3836,7 @@ msgstr "{time}评论" msgid "edit %(edits)s" msgstr "编辑%(edits)s" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "已编辑" @@ -3745,64 +3844,90 @@ msgstr "已编辑" msgid "Link" msgstr "链接" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" msgstr "回复" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "投票" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "隐藏" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." msgstr "由于过多的负面反馈,该评论被隐藏。" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "点击这里查看。" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." msgstr "目前没有评论。" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "新评论" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "无效的评论内容。" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "发布!" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "这页面被禁用评论。" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "正在回复评论" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "编辑 {edits}" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "源语言" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "无法投票:{error}" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "您确定要隐藏此评论吗?" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "无法隐藏评论。" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "更新评论失败。" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "无法编辑评论:{error}" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "投票者" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "得分" @@ -3810,6 +3935,18 @@ msgstr "得分" msgid "No votes" msgstr "没有投票" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "点击复制" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "复制" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "复制成功!" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "无效的访问代码。" @@ -3874,12 +4011,12 @@ msgstr "下个月" msgid "Export" msgstr "导出" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "清单" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "日历" @@ -3887,7 +4024,7 @@ msgstr "日历" msgid "Info" msgstr "资料和信息" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" msgstr "统计数据" @@ -3912,7 +4049,7 @@ msgstr "复制" msgid "Leave contest" msgstr "离开竞赛" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "参加虚拟竞赛" @@ -3929,7 +4066,7 @@ msgstr "参加竞赛" msgid "Spectate contest" msgstr "旁观竞赛" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." msgstr "您不能加入这个竞赛。" @@ -3937,6 +4074,16 @@ msgstr "您不能加入这个竞赛。" msgid "Log in to participate" msgstr "登录即可进入" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "正在旁观,竞赛在%(countdown)s后结束。" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "虚拟参与中,剩余时间:%(countdown)s。" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "虚拟参与中。" @@ -3945,6 +4092,21 @@ msgstr "虚拟参与中。" msgid "Contest is over." msgstr "竞赛已结束。" +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "你的竞赛窗口已结束!竞赛将在%(countdown)s后结束。" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "你的竞赛窗口将在%(countdown)s后结束。" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." +msgstr "竞赛将在%(countdown)s后结束。" + #: templates/contest/contest.html:58 templates/contest/contest.html:60 msgid "F j, Y, G:i T" msgstr "Y年n月j日 G:i T" @@ -3963,13 +4125,13 @@ msgstr "从%(start_time)s开始的%(length)s时间段" #, python-format msgid "The author of this contest is %(link_authors)s." msgid_plural "The authors of this contest are %(link_authors)s." -msgstr[0] "" +msgstr[0] "这场比赛的作者是 %(link_authors)s。" #: templates/contest/contest.html:86 #, python-format msgid "Special thanks to %(link_testers)s for testing and feedback on the problems." msgid_plural "Special thanks to %(link_testers)s for testing and feedback on the problems." -msgstr[0] "" +msgstr[0] "特别感谢 %(link_testers)s 测试题目并提供反馈。" #: templates/contest/contest.html:98 #, python-format @@ -3988,7 +4150,7 @@ msgstr "" #: templates/contest/contest.html:104 msgid "This contest will be **rated** for **all** participants." -msgstr "" +msgstr "这场比赛将给**所有**参与者**评分**。" #: templates/contest/contest.html:108 #, python-format @@ -4025,7 +4187,7 @@ msgstr "" #: templates/contest/contest.html:134 msgid "This contest **will not use partial scoring**." -msgstr "" +msgstr "比赛**没有部分分**。" #: templates/contest/contest.html:139 msgid "The pretest system **will be used** for some or all of these problems." @@ -4046,7 +4208,7 @@ msgstr "" #: templates/contest/contest.html:154 #, python-format msgid "The contest format is **%(format)s**." -msgstr "" +msgstr "竞赛格式为 **%(format)s**。" #: templates/contest/contest.html:163 msgid "The scoreboard will be **visible** for the duration of the contest." @@ -4066,15 +4228,15 @@ msgstr "" #: templates/contest/contest.html:174 msgid "An **access code is required** to join the contest." -msgstr "" +msgstr "参加比赛**需要访问码**。" #: templates/contest/contest.html:197 msgid "AC Rate" msgstr "AC率" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "用户" @@ -4082,7 +4244,7 @@ msgstr "用户" msgid "Editorials" msgstr "题目讲解" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "题解" @@ -4095,10 +4257,6 @@ msgstr "你确定你想要加入吗?" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "计时器在你第一次参加竞赛的时候就会启动,竞赛开始后将不会停止。" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "隐藏" - #: templates/contest/list.html:84 msgid "private" msgstr "私有" @@ -4107,37 +4265,54 @@ msgstr "私有" msgid "rated" msgstr "被评分" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "%(time_limit)s窗口" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "%(duration)s时间段" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "加入" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "旁观" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "正在进行的竞赛" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "竞赛" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" -msgstr "进行中的竞赛" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "窗口将在%(countdown)s后结束" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" -msgstr "未来的竞赛" +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "在%(countdown)s后结束" + +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "%(countdown)s后开始" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "现在没有预定的竞赛。" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "过去的竞赛" #: templates/contest/media-js.html:4 @@ -4158,22 +4333,28 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "您确定您要MOSS这个竞赛?" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "您确定要删除MOSS结果?" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "%(count)s个提交" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "没有任何提交" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "重新MOSS竞赛" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "删除MOSS结果" @@ -4227,19 +4408,19 @@ msgstr "取消取消资格" msgid "Disqualify" msgstr "取消资格" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "您确定要取消此参与资格吗?" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "您确定要取消取消此参与资格吗?" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "查看用户参与历史" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "显示组织" @@ -4260,8 +4441,8 @@ msgid "Language AC Rate" msgstr "语言提交接受率" #: templates/license.html:12 -msgid "Source:" -msgstr "来源:" +msgid "Visit source" +msgstr "" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4376,11 +4557,11 @@ msgstr "类" #: templates/organization/home.html:97 msgid "Joined" -msgstr "" +msgstr "已加入" #: templates/organization/home.html:99 msgid "Request to join" -msgstr "" +msgstr "申请加入" #: templates/organization/list.html:22 templates/status/language-list.html:35 msgid "Name" @@ -4426,7 +4607,7 @@ msgid "There are no requests to approve." msgstr "没有请求批准。" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "删除?" @@ -4439,25 +4620,13 @@ msgid "Your reason for joining:" msgstr "你加入的理由:" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "请求" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "待确认" +msgid "Request!" +msgstr "请求!" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "日志" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "已批准" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "已拒绝" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "踢出" @@ -4474,55 +4643,59 @@ msgstr "更新预览" msgid "Enter a new code for the cloned problem:" msgstr "输入复制题目的新代码:" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "精度(十进制数)" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "查看 YAML" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "显示列:" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "输出前缀" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "输出限制" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "检查器" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "生成器参数" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "类型" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "输入文件" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "输出文件" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "预测试?" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "提交!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "添加新的用例" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "保存" @@ -4534,7 +4707,7 @@ msgstr "记住**只**在没有思路时使用题解,**不要从它复制粘贴 msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "在解题之前提交题解的代码会导致封禁。" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "作者:" @@ -4543,20 +4716,20 @@ msgstr[0] "作者:" msgid "Filter by type..." msgstr "根据类型过滤…" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "热门题目" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "分类" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "类型" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "AC%%" @@ -4620,113 +4793,128 @@ msgstr "全部重新评分" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "这将重新评分%(count)d个提交。" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "这将重新评分%(count)s个提交。" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "您确定您要重新评判%(count)d个提交?" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "重新评分所有提交" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "PDF 视图" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "提交程序" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "还剩%(counter)s提交数" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "还剩下 0 次提交" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "我的提交历史" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "提交排行" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "阅读题解" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "管理工单" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "编辑题目" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "编辑测试数据" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "我的工单" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "管理提交" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "分数:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "(部分)" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "时间限制:" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "内存限制:" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "题目类型" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "允许的语言" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "没有支持 %(lang)s 的裁判服务器。" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "裁判服务器:" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "无可用项" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "提出问题" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "反馈问题" @@ -4775,8 +4963,8 @@ msgstr "题目类型" msgid "Point range" msgstr "分数范围" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "搜索" @@ -4811,6 +4999,54 @@ msgstr "你還可以提交0次" msgid "No judge is available for this problem." msgstr "此题目没有可用的裁判服务器。" +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" +msgstr "" + #: templates/registration/activate.html:3 #, python-format msgid "%(key)s is an invalid activation key." @@ -4820,6 +5056,48 @@ msgstr "%(key)s 是一个无效的激活密钥。" msgid "Your account has been successfully activated." msgstr "已成功激活您的帐户。" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "感谢您注册 %(site_name)s!我们很高兴见到您。" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "请点击以下链接激活您的账户:" + +#: 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 "或者,您可以回复此消息以激活您的账户。您的回复必须完整地包含以下文字:" + +#: 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 "一会儿见!如果在激活账号时遇到问题,请随时向 %(email)s 发送电子邮件。" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "一会儿见!" + +#: templates/registration/activation_email.txt:1 +#, 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] "请在 %(count)s 天内激活您的 %(site_name)s 账户。" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "激活您的 %(site_name)s 账户" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "无效的用户名或密码!" @@ -4851,7 +5129,7 @@ msgstr "" #: templates/registration/password_change_form.html:8 msgid "To protect your account, we are requiring you to change your password to a more secure password." -msgstr "" +msgstr "为了保护您的账户,我们要求您将密码更改为更安全的一个。" #: templates/registration/password_change_form.html:13 msgid "Change Password" @@ -4866,7 +5144,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "您的密码已设置。您可以现在登录。" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "重置密码" @@ -4882,23 +5159,20 @@ msgstr "我们已经通过电子邮件向您发送设置密码的说明。你应 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 "如果您没有收到电子邮件,请确保您打开的是您注册时所用的邮箱,并检查您的垃圾邮件文件夹。" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "忘了您在%(site_name)s上的密码?别担心!" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." -msgstr "要重置账户「%(username)s」的密码,请点击此按钮。" +msgid "To reset the password for your account \"%(username)s\", click the link below." +msgstr "要重置账户「%(username)s」的密码,请点击此链接。" -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" -msgstr "一会儿见!如果在重置邮箱时遇到问题,请随时向我们发送一封电子邮件:" - -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" -msgstr "一会儿见!" +#: 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 "一会儿见!如果在重置密码时遇到问题,请随时向 %(email)s 发送电子邮件。" #: templates/registration/password_reset_email.txt:1 #, python-format @@ -4927,7 +5201,7 @@ msgstr "%(site_name)s 团队" msgid "Password reset on %(site_name)s" msgstr "在 %(site_name)s 上重置密码" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "继续 >" @@ -4940,41 +5214,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "(再输一次密码以确定)" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "(选择离您最近的主要城市)" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "从地图中选" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "默认语言" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "关联的组织" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "通过Email发送未来竞赛的通知" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" -msgstr "注册即表示您同意我们的" - -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "使用条款" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "注册!" @@ -4983,7 +5252,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "为了保护您的帐户,您必须先进行身份验证才能禁用两因素认证。" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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位一次性代码:" #: templates/registration/totp_disable.html:41 @@ -5008,21 +5278,24 @@ msgstr "输入您应用生成的6位数代码:" #: templates/registration/totp_enable.html:90 msgid "Refresh Two Factor Authentication" -msgstr "" +msgstr "刷新双因素认证" #: templates/registration/totp_enable.html:92 msgid "Enable Two Factor Authentication" msgstr "启用两因素认证" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." -msgstr "" +msgstr "下面是一个一次性验证码列表。" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 msgid "These codes can only be used once and are for emergency use." -msgstr "" +msgstr "这些代码只能在紧急情况时使用一次。" #: templates/registration/totp_enable.html:100 +#: templates/user/edit-profile.html:376 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5031,6 +5304,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5048,19 +5322,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "你的浏览器不支持 WebAuthn。" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "联系服务器失败。" -#: 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位一次性代码:" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5086,38 +5356,38 @@ msgstr "提交统计" msgid "AC Submissions by Language" msgstr "按语言的接受提交数量" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "裁判服务器" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "在线" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "启动时间" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "延迟" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "负载" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "N/A" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "本语言没有可用的裁判服务器。" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "ID" @@ -5150,23 +5420,27 @@ msgstr "评分时裁判服务端发生了内部错误。" msgid "Error information" msgstr "错误信息" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "您确定要重新评测吗?" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "按状态过滤…" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "按语言筛选…" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "提交筛选" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "总计:" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "您处于离线状态。刷新以显示最近的更新。" @@ -5232,20 +5506,24 @@ msgid "Execution Results" msgstr "执行结果" #: templates/submission/status-testcases.html:51 -msgid "Batch " -msgstr "批" +#, python-format +msgid "Batch #%(id)d" +msgstr "批 #%(id)d" #: templates/submission/status-testcases.html:64 -msgid "Case" -msgstr "测试" +#, python-format +msgid "Case #%(id)d:" +msgstr "测试 #%(id)d:" #: templates/submission/status-testcases.html:66 -msgid "Pretest" -msgstr "预测试" +#, python-format +msgid "Pretest #%(id)d:" +msgstr "预测试 #%(id)d:" #: templates/submission/status-testcases.html:68 -msgid "Test case" -msgstr "测试情况" +#, python-format +msgid "Test case #%(id)d:" +msgstr "测试情况 #%(id)d:" #: templates/submission/status-testcases.html:101 msgid "Your output (clipped)" @@ -5289,11 +5567,11 @@ msgstr "提交终止!" msgid "View source" msgstr "查看源代码" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "按下 Ctrl-Enter 或 Command-Enter 已中止。" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "停止" @@ -5310,40 +5588,40 @@ msgstr "最佳" msgid "%(user)s's" msgstr "%(user)s 的" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "重新打开状态:" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "已关闭:" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "使用桌面通知" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "隐藏已关闭的工单" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "只显示我的工单" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "归档用户" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "处理人" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "标题" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "被分配的人" @@ -5365,31 +5643,32 @@ msgstr "感谢您提交工单!" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "请注意,此表单用于报告题目描述中的问题,而不是寻求帮助。如果您需要询问解题方法,请在评论中进行提问。" -#: templates/ticket/ticket.html:356 -msgid "Post" -msgstr "帖子" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" +msgstr "无法修改工单:{error}" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "相关的项目" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "没有人被分配到这个工单。" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "关闭工单" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "重开工单" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "受让人说明" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "暂无内容!" @@ -5397,141 +5676,163 @@ msgstr "暂无内容!" msgid "Rank" msgstr "排名" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "用户名搜索…" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "您确定要生成或重新生成您的API令牌吗?" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "这将使任何之前的 API 令牌无效。" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "它还允许不需要双重身份验证而访问您的帐户。" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "离开此页面后,您将无法查看您的API令牌!" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "正在生成…" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "重新生成" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "删除" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "您确定要删除您的API令牌吗?" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "生成" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "您确定要删除此安全密钥吗?" -#: templates/user/edit-profile.html:284 -msgid "Self-description" -msgstr "自我描述" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "离开此页面后,您将无法查看您的一次性代码!" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" +msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "选择离您最近的主要城市" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" -msgstr "编辑主题" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" -msgstr "数学引擎" +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" +msgstr "" + +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" +msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "修改头像" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "更改密码" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" -msgstr "已激活双元素认证" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" +msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "禁用" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "刷新" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" -msgstr "一次性代码:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" +msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "隐藏" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" -msgstr "已禁用双元素认证" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "启用" -#: templates/user/edit-profile.html:392 -msgid "API Token" -msgstr "API令牌" +#: templates/user/edit-profile.html:393 +msgid "API token:" +msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" -msgstr "安全密钥" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" +msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "删除" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "输入此密钥的名称" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "添加" -#: templates/user/edit-profile.html:435 -msgid "User-script" -msgstr "用户脚本" +#: templates/user/edit-profile.html:436 +msgid "User-script:" +msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "更新资料" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "%(pp).1fpp" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" -msgstr "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" +msgstr "权重为%(percent)s(%(pp)spp)" #: templates/user/prepare-data.html:64 msgid "Are you sure you want to prepare a download?" @@ -5545,31 +5846,41 @@ msgstr "我们正在准备您的数据。" msgid "Track progress" msgstr "曲目进度" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "一旦您的数据准备就绪,您将在此页面上找到一个下载链接。" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "提交历史" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "准备新的下载" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "准备下载" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "下载已准备的数据" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "您的数据准备就绪!" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "下载数据" @@ -5633,43 +5944,39 @@ msgstr "更多" msgid "Rating history" msgstr "评分历史记录" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "去年" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "%(counter)s题目解决了" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "得分排名:" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "总得分:" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "%(counter)s竞赛已加入" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "竞赛评分排名:" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "竞赛评分:" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "最低评分:" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "最高评分:" @@ -5693,12 +6000,12 @@ msgstr "创作的题目" msgid "Hide problems I've solved" msgstr "隐藏我已经解决的题目" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" -msgstr "%(points).1f 分" +msgid "%(group)s (%(val)s points)" +msgstr "%(group)s(%(val)s 分)" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "%(points)s / %(total)s" diff --git a/locale/zh_Hans/LC_MESSAGES/djangojs.po b/locale/zh_Hans/LC_MESSAGES/djangojs.po index 167e2a4563..dff0fefea9 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:29\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -17,14 +17,61 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "最近一年" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "%(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] "去年有%(cnt)d个提交" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "%(year)d年有%(cnt)d个提交" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "%(date)s有%(cnt)d个提交" + diff --git a/locale/zh_Hant/LC_MESSAGES/django.po b/locale/zh_Hant/LC_MESSAGES/django.po index a87749fec6..585ce6a854 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: 2022-05-20 00:37+0000\n" -"PO-Revision-Date: 2022-05-23 00:51\n" +"POT-Creation-Date: 2023-01-02 00:30+0000\n" +"PO-Revision-Date: 2023-01-02 00:47\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -17,95 +17,103 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:381 msgid "Catalan" msgstr "加泰隆語" -#: dmoj/settings.py:373 +#: dmoj/settings.py:382 msgid "German" msgstr "德文" -#: dmoj/settings.py:374 +#: dmoj/settings.py:383 +msgid "Greek" +msgstr "希臘文" + +#: dmoj/settings.py:384 msgid "English" msgstr "英文" -#: dmoj/settings.py:375 +#: dmoj/settings.py:385 msgid "Spanish" msgstr "西班牙文" -#: dmoj/settings.py:376 +#: dmoj/settings.py:386 msgid "French" msgstr "法文" -#: dmoj/settings.py:377 +#: dmoj/settings.py:387 msgid "Croatian" msgstr "克羅地亞文" -#: dmoj/settings.py:378 +#: dmoj/settings.py:388 msgid "Hungarian" msgstr "匈牙利文" -#: dmoj/settings.py:379 +#: dmoj/settings.py:389 msgid "Japanese" msgstr "日語" -#: dmoj/settings.py:380 +#: dmoj/settings.py:390 msgid "Korean" msgstr "韓文" -#: dmoj/settings.py:381 +#: dmoj/settings.py:391 msgid "Brazilian Portuguese" msgstr "巴西葡萄牙語" -#: dmoj/settings.py:382 +#: dmoj/settings.py:392 msgid "Romanian" msgstr "羅馬尼亞文" -#: dmoj/settings.py:383 +#: dmoj/settings.py:393 msgid "Russian" msgstr "俄文" -#: dmoj/settings.py:384 +#: dmoj/settings.py:394 msgid "Serbian (Latin)" -msgstr "塞爾維亞文 (拉丁語系)" +msgstr "塞爾維亞文(拉丁語系)" -#: dmoj/settings.py:385 +#: dmoj/settings.py:395 msgid "Turkish" msgstr "土耳其文" -#: dmoj/settings.py:386 +#: dmoj/settings.py:396 msgid "Vietnamese" msgstr "越南文" -#: dmoj/settings.py:387 +#: dmoj/settings.py:397 msgid "Simplified Chinese" msgstr "簡體中文" -#: dmoj/settings.py:388 +#: dmoj/settings.py:398 msgid "Traditional Chinese" msgstr "繁体中文" #: dmoj/urls.py:32 msgid "Activation Successful!" -msgstr "" +msgstr "啟動成功!" #: dmoj/urls.py:40 msgid "Registration Completed" -msgstr "" +msgstr "註冊完成" #: dmoj/urls.py:44 msgid "Registration Not Allowed" -msgstr "" +msgstr "不允許註冊" -#: dmoj/urls.py:97 templates/base.html:190 +#: dmoj/urls.py:93 templates/base.html:186 msgid "Home" msgstr "首頁" +#: judge/admin/comments.py:23 judge/admin/interface.py:72 +msgid "Content" +msgstr "内容" + #: judge/admin/comments.py:40 #, python-format msgid "%d comment successfully hidden." msgid_plural "%d comments successfully hidden." -msgstr[0] "%d 個回應已成功隱藏。" +msgstr[0] "已成功隱藏%d則評論" #: judge/admin/comments.py:43 msgid "Hide comments" @@ -115,7 +123,7 @@ msgstr "隱藏評論" #, python-format msgid "%d comment successfully unhidden." msgid_plural "%d comments successfully unhidden." -msgstr[0] "%d 個回應已成功取消隱藏。" +msgstr[0] "已成功取消隱藏%d則評論" #: judge/admin/comments.py:50 msgid "Unhide comments" @@ -130,12 +138,25 @@ msgid "Included contests" msgstr "帶標籤的競賽" #: judge/admin/contest.py:66 templates/contest/contest.html:195 -#: templates/contest/moss.html:43 templates/problem/list.html:203 -#: templates/problem/list.html:219 templates/user/user-problems.html:58 -#: templates/user/user-problems.html:100 +#: templates/contest/moss.html:41 templates/problem/list.html:201 +#: templates/problem/list.html:217 templates/user/user-problems.html:58 +#: templates/user/user-problems.html:102 msgid "Problem" msgstr "題目" +#: judge/admin/contest.py:67 judge/views/problem.py:355 +#: templates/contest/contest.html:191 templates/user/user-tabs.html:5 +#: templates/user/users-table.html:23 +msgid "Problems" +msgstr "題目" + +#: judge/admin/contest.py:77 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 "重新評分" + #: judge/admin/contest.py:123 msgid "Settings" msgstr "设置" @@ -160,7 +181,7 @@ msgstr "評分" msgid "Access" msgstr "权限" -#: judge/admin/contest.py:132 judge/admin/problem.py:135 +#: judge/admin/contest.py:132 judge/admin/problem.py:136 msgid "Justice" msgstr "司法" @@ -188,7 +209,7 @@ msgstr "標記競賽為隐藏" #, python-format msgid "%d contest successfully locked." msgid_plural "%d contests successfully locked." -msgstr[0] "%d個競賽鎖定成功。" +msgstr[0] "已成功鎖定%d場競賽" #: judge/admin/contest.py:251 msgid "Lock contest submissions" @@ -198,13 +219,13 @@ msgstr "鎖定競賽提交" #, python-format msgid "%d contest successfully unlocked." msgid_plural "%d contests successfully unlocked." -msgstr[0] "" +msgstr[0] "已成功解鎖%d場競賽" #: judge/admin/contest.py:260 msgid "Unlock contest submissions" -msgstr "" +msgstr "解鎖競賽提交" -#: judge/admin/contest.py:281 judge/admin/submission.py:175 +#: judge/admin/contest.py:281 judge/admin/submission.py:176 #, python-format msgid "%d submission was successfully scheduled for rejudging." msgid_plural "%d submissions were successfully scheduled for rejudging." @@ -218,13 +239,13 @@ msgstr[0] "%d位選手的分數被重判了。" #: judge/admin/contest.py:360 msgid "Recalculate results" -msgstr "" +msgstr "重新計算結果" #: judge/admin/contest.py:364 judge/admin/organization.py:113 msgid "username" msgstr "使用者名稱" -#: judge/admin/contest.py:369 templates/base.html:256 +#: judge/admin/contest.py:369 templates/base.html:252 msgid "virtual" msgstr "模擬競賽" @@ -232,17 +253,14 @@ msgstr "模擬競賽" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "内容" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "概要" #: judge/admin/interface.py:124 judge/models/contest.py:491 -#: judge/models/contest.py:623 judge/models/profile.py:325 -#: judge/models/profile.py:356 judge/models/submission.py:67 +#: judge/models/contest.py:623 judge/models/profile.py:331 +#: judge/models/profile.py:362 judge/models/submission.py:67 +#: judge/models/ticket.py:32 msgid "user" msgstr "使用者" @@ -250,111 +268,117 @@ msgstr "使用者" msgid "object" msgstr "对象" -#: judge/admin/organization.py:82 judge/admin/problem.py:182 +#: judge/admin/organization.py:82 judge/admin/problem.py:183 #: judge/admin/profile.py:92 msgid "View on site" -msgstr "" +msgstr "在網站上檢視" -#: judge/admin/problem.py:20 +#: judge/admin/problem.py:21 msgid "Edit reason" -msgstr "" +msgstr "編輯原因" -#: judge/admin/problem.py:29 +#: judge/admin/problem.py:30 msgid "Describe the changes you made (optional)" msgstr "解釋你所做的改變(可選)" -#: judge/admin/problem.py:130 +#: judge/admin/problem.py:131 msgid "Social Media" msgstr "社交媒體" -#: judge/admin/problem.py:131 +#: judge/admin/problem.py:132 msgid "Taxonomy" -msgstr "" +msgstr "分類" -#: judge/admin/problem.py:132 templates/contest/contest.html:196 -#: templates/problem/data.html:385 templates/problem/list.html:208 -#: templates/problem/list.html:230 templates/user/base-users-table.html:10 +#: judge/admin/problem.py:133 templates/contest/contest.html:196 +#: templates/problem/data.html:380 templates/problem/list.html:206 +#: templates/problem/list.html:228 templates/user/base-users-table.html:10 #: templates/user/user-problems.html:60 msgid "Points" msgstr "分數" -#: judge/admin/problem.py:133 +#: judge/admin/problem.py:134 msgid "Limits" msgstr "限制" -#: judge/admin/problem.py:134 judge/admin/submission.py:243 -#: templates/stats/tabs.html:4 templates/submission/list.html:319 -#: templates/user/edit-profile.html:296 +#: judge/admin/problem.py:135 judge/admin/submission.py:244 +#: templates/stats/tabs.html:4 templates/submission/list.html:317 msgid "Language" msgstr "語言" -#: judge/admin/problem.py:136 +#: judge/admin/problem.py:137 msgid "History" msgstr "歷史記錄" -#: judge/admin/problem.py:179 +#: judge/admin/problem.py:180 msgid "Authors" msgstr "作者" -#: judge/admin/problem.py:192 +#: judge/admin/problem.py:193 #, python-format msgid "%d problem's publish date successfully updated." msgid_plural "%d problems' publish date successfully updated." -msgstr[0] "%d個題目的發布日期被成功更新。" +msgstr[0] "已成功更新 %d 個問題的發佈日期" -#: judge/admin/problem.py:196 +#: judge/admin/problem.py:197 msgid "Set publish date to now" -msgstr "把上傳日期變成今天" +msgstr "將發佈日期設置為現在" -#: judge/admin/problem.py:202 +#: judge/admin/problem.py:203 #, python-format msgid "%d problem successfully marked as public." msgid_plural "%d problems successfully marked as public." -msgstr[0] "" +msgstr[0] "已成功標記%d個問題為公開" -#: judge/admin/problem.py:206 +#: judge/admin/problem.py:207 msgid "Mark problems as public" msgstr "把題目設置成公開的" -#: judge/admin/problem.py:212 +#: judge/admin/problem.py:213 #, python-format msgid "%d problem successfully marked as private." msgid_plural "%d problems successfully marked as private." msgstr[0] "" -#: judge/admin/problem.py:216 +#: judge/admin/problem.py:217 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/models/problem_data.py:35 judge/models/submission.py:68 +msgid "problem" +msgstr "題目" + #: judge/admin/profile.py:35 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:266 +#: templates/ticket/list.html:233 msgid "User" msgstr "使用者" -#: judge/admin/profile.py:103 templates/registration/registration_form.html:143 +#: judge/admin/profile.py:103 templates/registration/registration_form.html:149 msgid "Email" msgstr "電子郵件" #: judge/admin/profile.py:108 judge/views/register.py:28 -#: templates/registration/registration_form.html:171 -#: templates/user/edit-profile.html:292 +#: templates/registration/registration_form.html:177 msgid "Timezone" msgstr "時區" #: judge/admin/profile.py:113 msgid "date joined" -msgstr "" +msgstr "加入日期" #: judge/admin/profile.py:120 #, python-format -msgid "%d user have scores recalculated." -msgid_plural "%d users have scores recalculated." +msgid "%d user had scores recalculated." +msgid_plural "%d users had scores recalculated." msgstr[0] "%d個用戶的分數被重判了。" #: judge/admin/profile.py:123 @@ -366,8 +390,14 @@ msgid "Disallowed problems" msgstr "" #: judge/admin/runtime.py:22 -msgid "These problems are NOT allowed to be submitted in this language" -msgstr "此題不支持這個編程語言" +msgid "These problems are NOT allowed to be submitted in this language." +msgstr "此題不支持這個編程語言。" + +#: judge/admin/runtime.py:64 templates/user/edit-profile.html:124 +#: templates/user/edit-profile.html:246 templates/user/edit-profile.html:366 +#: templates/user/edit-profile.html:396 +msgid "Regenerate" +msgstr "" #: judge/admin/runtime.py:77 msgid "Description" @@ -381,98 +411,102 @@ msgstr "" msgid "Capabilities" msgstr "" -#: judge/admin/submission.py:24 judge/admin/submission.py:43 -#: judge/admin/submission.py:232 +#: judge/admin/submission.py:25 judge/admin/submission.py:44 +#: judge/admin/submission.py:233 msgid "None" msgstr "無" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Not done" msgstr "未完成" -#: judge/admin/submission.py:24 +#: judge/admin/submission.py:25 msgid "Exceptional" msgstr "" -#: judge/admin/submission.py:43 +#: judge/admin/submission.py:44 msgid "Unaccepted" msgstr "未被接受" -#: judge/admin/submission.py:85 +#: judge/admin/submission.py:86 #, python-format msgid "%s (spectating)" msgstr "" -#: judge/admin/submission.py:87 +#: judge/admin/submission.py:88 #, python-format msgid "%s (virtual %d)" msgstr "" -#: judge/admin/submission.py:94 +#: judge/admin/submission.py:95 #, python-format 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 were successfully rescored." +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:248 +msgid "Locked" +msgstr "已锁定" + #: judge/admin/taxon.py:11 judge/admin/taxon.py:34 msgid "Included problems" msgstr "包含的題目" #: judge/admin/taxon.py:14 -msgid "These problems are included in this group of problems" -msgstr "這些題目組中包含了這些題目" +msgid "These problems are included in this group of problems." +msgstr "這些題目組中包含了這些題目。" #: judge/admin/taxon.py:37 -msgid "These problems are included in this type of problems" +msgid "These problems are included in this type of problems." msgstr "" #: judge/apps.py:8 @@ -487,11 +521,11 @@ msgstr "評論主體" msgid "Your part is silent, little toad." msgstr "" -#: judge/comments.py:49 templates/comments/list.html:142 -msgid "You need to have solved at least one problem before your voice can be heard." -msgstr "只有解決了一個題目以後你才能有發言權。" +#: judge/comments.py:49 templates/comments/list.html:135 +msgid "You must solve at least one problem before your voice can be heard." +msgstr "" -#: judge/comments.py:93 +#: judge/comments.py:96 msgid "Posted comment" msgstr "" @@ -560,7 +594,7 @@ msgstr "" #: judge/contest_format/ioi.py:11 msgid "IOI" -msgstr "國際信息學奧林匹克競賽" +msgstr "國際資訊奧林匹亞競賽" #: judge/contest_format/ioi.py:96 msgid "The maximum score for each problem batch will be used." @@ -574,20 +608,21 @@ msgstr "" msgid "IOI (pre-2016)" msgstr "" -#: judge/forms.py:27 +#: judge/forms.py:29 #, python-brace-format -msgid "Two-factor authentication tokens must be {TOTP_CODE_LENGTH} decimal digits." -msgstr "" +msgid "Two-factor authentication tokens must be {count} decimal digit." +msgid_plural "Two-factor authentication tokens must be {count} decimal digits." +msgstr[0] "" -#: judge/forms.py:30 +#: judge/forms.py:34 msgid "Invalid two-factor authentication token." msgstr "" -#: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +#: judge/forms.py:37 +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:39 judge/forms.py:265 msgid "Invalid scratch code." msgstr "" @@ -601,93 +636,95 @@ msgstr "" #: judge/forms.py:72 msgid "You must solve at least one problem before you can update your profile." -msgstr "" +msgstr "您必須解開至少一道問題才可以更新您的個人檔案" -#: judge/forms.py:81 judge/views/organization.py:147 +#: judge/forms.py:80 judge/views/organization.py:151 judge/views/register.py:58 #, python-brace-format -msgid "You may not be part of more than {count} public organizations." -msgstr "您不可以同時在多餘{count}的公共組織。" +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:97 +#: judge/forms.py:98 msgid "Download comments?" msgstr "下載評論?" -#: judge/forms.py:98 +#: judge/forms.py:99 msgid "Download submissions?" msgstr "下載提交紀錄?" -#: judge/forms.py:99 +#: judge/forms.py:100 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:104 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:107 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:113 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:139 msgid "Any judge" msgstr "任何評測伺服器" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:160 judge/views/register.py:25 +#: templates/registration/registration_form.html:143 #: templates/user/base-users-table.html:5 msgid "Username" msgstr "使用者名稱" -#: judge/forms.py:160 templates/registration/registration_form.html:149 -#: templates/registration/registration_form.html:163 +#: judge/forms.py:161 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "密碼" -#: judge/forms.py:192 +#: judge/forms.py:193 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:224 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:227 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:233 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:263 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:267 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:271 judge/models/problem.py:118 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:276 msgid "Problem with code already exists." -msgstr "" +msgstr "此題目代號已經存在" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:281 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:286 msgid "Contest with key already exists." msgstr "" #: judge/jinja2/datetime.py:29 templates/blog/content.html:27 +#: templates/problem/vote-ajax.html:6 msgid "N j, Y, g:i a" msgstr "" @@ -749,9 +786,9 @@ msgstr "投票" msgid "body of comment" msgstr "評論主體" -#: judge/models/comment.py:47 -msgid "hide the comment" -msgstr "隱藏評論" +#: judge/models/comment.py:47 templates/contest/list.html:64 +msgid "hidden" +msgstr "隱藏" #: judge/models/comment.py:48 msgid "parent" @@ -766,7 +803,7 @@ msgid "comments" msgstr "評論" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:547 #, python-format msgid "Editorial for %s" msgstr "" @@ -849,29 +886,29 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:536 msgid "authors" msgstr "作者" #: judge/models/contest.py:71 msgid "These users will be able to edit the contest." -msgstr "" +msgstr "這些使用者將能編輯這場競賽" -#: judge/models/contest.py:73 judge/models/problem.py:130 +#: judge/models/contest.py:73 judge/models/problem.py:126 msgid "curators" msgstr "" #: judge/models/contest.py:74 msgid "These users will be able to edit the contest, but will not be listed as authors." -msgstr "" +msgstr "這些使用者將能編輯這場競賽,但不會被列為作者" -#: judge/models/contest.py:77 judge/models/problem.py:133 +#: judge/models/contest.py:77 judge/models/problem.py:129 msgid "testers" msgstr "測試人員" #: judge/models/contest.py:78 msgid "These users will be able to view the contest, but not edit it." -msgstr "" +msgstr "這些使用者將能檢視這場競賽,但無法對其編輯" #: judge/models/contest.py:80 msgid "testers see scoreboard" @@ -901,7 +938,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:489 #: judge/models/runtime.py:139 msgid "problems" msgstr "題目" @@ -914,12 +951,12 @@ msgstr "開始時間" msgid "end time" msgstr "結束時間" -#: judge/models/contest.py:92 judge/models/problem.py:141 -#: judge/models/problem.py:496 +#: judge/models/contest.py:92 judge/models/problem.py:136 +#: judge/models/problem.py:518 msgid "time limit" msgstr "時間限制" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:154 msgid "publicly visible" msgstr "" @@ -941,7 +978,7 @@ msgstr "查看競賽排行榜" #: judge/models/contest.py:101 msgid "These users will be able to view the scoreboard." -msgstr "這些用戶可以看排行榜。" +msgstr "這些使用者將可以查看排行榜" #: judge/models/contest.py:102 msgid "can see contest submissions" @@ -956,7 +993,7 @@ msgid "scoreboard visibility" msgstr "" #: judge/models/contest.py:107 -msgid "Scoreboard visibility through the duration of the contest" +msgid "Scoreboard visibility through the duration of the contest." msgstr "" #: judge/models/contest.py:109 @@ -971,85 +1008,85 @@ msgstr "" msgid "rating floor" msgstr "" -#: judge/models/contest.py:112 -msgid "Rating floor for contest" +#: judge/models/contest.py:113 +msgid "Do not rate users who have a lower rating." msgstr "" #: judge/models/contest.py:114 msgid "rating ceiling" msgstr "" -#: judge/models/contest.py:114 -msgid "Rating ceiling for contest" +#: judge/models/contest.py:115 +msgid "Do not rate users who have a higher rating." msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "rate all" msgstr "" -#: judge/models/contest.py:116 +#: judge/models/contest.py:117 msgid "Rate all users who joined." msgstr "" -#: judge/models/contest.py:117 +#: judge/models/contest.py:118 msgid "exclude from ratings" msgstr "" -#: judge/models/contest.py:119 +#: judge/models/contest.py:120 msgid "private to specific users" msgstr "" -#: judge/models/contest.py:120 +#: judge/models/contest.py:121 msgid "private contestants" msgstr "" -#: judge/models/contest.py:121 -msgid "If non-empty, only these users may see the contest" +#: judge/models/contest.py:122 +msgid "If non-empty, only these users may see the contest." msgstr "" -#: judge/models/contest.py:123 +#: judge/models/contest.py:124 msgid "hide problem tags" msgstr "" -#: judge/models/contest.py:124 +#: judge/models/contest.py:125 msgid "Whether problem tags should be hidden by default." msgstr "" -#: judge/models/contest.py:126 +#: judge/models/contest.py:127 msgid "hide problem authors" msgstr "" -#: judge/models/contest.py:127 +#: judge/models/contest.py:128 msgid "Whether problem authors should be hidden by default." msgstr "" -#: judge/models/contest.py:129 +#: judge/models/contest.py:130 msgid "run pretests only" msgstr "" -#: judge/models/contest.py:130 +#: judge/models/contest.py:131 msgid "Whether judges should grade pretests only, versus all testcases. Commonly set during a contest, then unset prior to rejudging user submissions when the contest ends." msgstr "設置裁判服務器是否只運行預測試而不是所有測試。通常在競賽進行時啟動,然後在競賽結束後重新評分前關閉。" -#: judge/models/contest.py:134 +#: judge/models/contest.py:135 msgid "show short form settings display" msgstr "" -#: judge/models/contest.py:135 +#: judge/models/contest.py:136 msgid "Whether to show a section containing contest settings on the contest page or not." msgstr "" -#: judge/models/contest.py:138 judge/models/problem.py:184 +#: judge/models/contest.py:139 judge/models/problem.py:180 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:178 #: judge/models/profile.py:99 msgid "organizations" msgstr "組織" -#: judge/models/contest.py:140 -msgid "If non-empty, only these organizations may see the contest" +#: judge/models/contest.py:141 +msgid "If non-empty, only these organizations may see the contest." msgstr "" #: judge/models/contest.py:142 @@ -1061,7 +1098,7 @@ msgid "join organizations" msgstr "" #: judge/models/contest.py:144 -msgid "If non-empty, only these organizations may join the contest" +msgid "If non-empty, only these organizations may join the contest." msgstr "" #: judge/models/contest.py:146 judge/models/profile.py:143 @@ -1069,15 +1106,16 @@ msgid "classes" msgstr "" #: judge/models/contest.py:147 -msgid "If organization private, only these classes may see the contest" +msgid "If organization private, only these classes may see the contest." msgstr "" -#: judge/models/contest.py:148 judge/models/problem.py:168 +#: judge/models/contest.py:148 judge/models/interface.py:74 +#: judge/models/problem.py:164 msgid "OpenGraph image" msgstr "" #: judge/models/contest.py:149 judge/models/profile.py:58 -msgid "Logo override image" +msgid "logo override image" msgstr "" #: judge/models/contest.py:151 @@ -1092,7 +1130,7 @@ msgstr "" msgid "contest summary" msgstr "" -#: judge/models/contest.py:156 judge/models/problem.py:170 +#: judge/models/contest.py:156 judge/models/problem.py:166 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1105,7 +1143,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:164 +#: judge/models/contest.py:160 judge/models/problem.py:160 msgid "personae non gratae" msgstr "" @@ -1169,7 +1207,7 @@ msgstr "編輯所有競賽" msgid "Clone contest" msgstr "複製競賽" -#: judge/models/contest.py:474 templates/contest/moss.html:74 +#: judge/models/contest.py:474 templates/contest/moss.html:76 msgid "MOSS contest" msgstr "" @@ -1266,15 +1304,8 @@ msgstr "" msgid "contest participations" msgstr "" -#: judge/models/contest.py:583 judge/models/contest.py:608 -#: judge/models/contest.py:648 judge/models/problem.py:466 -#: judge/models/problem.py:471 judge/models/problem.py:494 -#: judge/models/problem_data.py:35 judge/models/submission.py:68 -msgid "problem" -msgstr "題目" - #: judge/models/contest.py:585 judge/models/contest.py:612 -#: judge/models/problem.py:152 +#: judge/models/problem.py:147 msgid "points" msgstr "分" @@ -1300,7 +1331,7 @@ msgstr "" #: judge/models/contest.py:592 msgid "Maximum number of submissions for this problem, or leave blank for no limit." -msgstr "此題目的最大提交數量,或留空白而表示無限制。" +msgstr "本題最多可以提交的次數,留空表示無限制" #: judge/models/contest.py:595 msgid "Why include a problem you can't submit to?" @@ -1314,7 +1345,7 @@ msgstr "" msgid "contest problems" msgstr "" -#: judge/models/contest.py:606 judge/models/submission.py:233 +#: judge/models/contest.py:606 judge/models/submission.py:230 msgid "submission" msgstr "提交訊息" @@ -1370,6 +1401,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:60 +msgid "key" +msgstr "鍵" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "值" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1410,7 +1449,7 @@ msgstr "" msgid "slug" msgstr "網址標誌" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:534 msgid "public visibility" msgstr "" @@ -1430,10 +1469,6 @@ msgstr "" msgid "post summary" msgstr "" -#: judge/models/interface.py:74 -msgid "openGraph image" -msgstr "" - #: judge/models/interface.py:96 msgid "Edit all posts" msgstr "" @@ -1450,337 +1485,374 @@ msgstr "" msgid "blog posts" msgstr "" -#: judge/models/problem.py:30 +#: judge/models/problem.py:29 #, python-format msgid "Disallowed characters: %(value)s" msgstr "" -#: judge/models/problem.py:35 +#: judge/models/problem.py:34 msgid "problem category ID" msgstr "" -#: judge/models/problem.py:36 +#: judge/models/problem.py:35 msgid "problem category name" msgstr "" -#: judge/models/problem.py:43 +#: judge/models/problem.py:42 msgid "problem type" msgstr "題目類型" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:43 judge/models/problem.py:132 msgid "problem types" msgstr "題目類型" -#: judge/models/problem.py:48 +#: judge/models/problem.py:47 msgid "problem group ID" msgstr "" -#: judge/models/problem.py:49 +#: judge/models/problem.py:48 msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:55 judge/models/problem.py:134 msgid "problem group" msgstr "" -#: judge/models/problem.py:57 +#: judge/models/problem.py:56 msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "鍵" - -#: judge/models/problem.py:63 +#: judge/models/problem.py:62 msgid "link" msgstr "链接" -#: judge/models/problem.py:64 +#: judge/models/problem.py:63 msgid "full name" msgstr "" -#: judge/models/problem.py:65 judge/models/profile.py:45 +#: judge/models/problem.py:64 judge/models/profile.py:45 #: judge/models/runtime.py:24 msgid "short name" msgstr "" -#: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +#: judge/models/problem.py:65 +msgid "Displayed on pages under this license." msgstr "" -#: judge/models/problem.py:67 +#: judge/models/problem.py:66 msgid "icon" msgstr "圖示" -#: judge/models/problem.py:67 -msgid "URL to the icon" +#: judge/models/problem.py:66 +msgid "URL to the icon." msgstr "" -#: judge/models/problem.py:68 +#: judge/models/problem.py:67 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:76 judge/models/problem.py:162 msgid "license" msgstr "許可證" -#: judge/models/problem.py:78 +#: judge/models/problem.py:77 msgid "licenses" msgstr "許可證" -#: judge/models/problem.py:113 +#: judge/models/problem.py:111 msgid "Follow global setting" msgstr "" -#: judge/models/problem.py:114 +#: judge/models/problem.py:112 msgid "Always visible" msgstr "" -#: judge/models/problem.py:115 +#: judge/models/problem.py:113 msgid "Visible if problem solved" msgstr "" -#: judge/models/problem.py:116 +#: judge/models/problem.py:114 msgid "Only own submissions" msgstr "" -#: judge/models/problem.py:119 +#: judge/models/problem.py:117 msgid "problem code" msgstr "" -#: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" -msgstr "" +#: judge/models/problem.py:119 +msgid "A short, unique code for the problem, used in the URL after /problem/" +msgstr "一個簡短、專屬於此題目的代碼,將顯示在網站URL中 /problem/ 的後面" -#: judge/models/problem.py:123 +#: judge/models/problem.py:120 msgid "problem name" msgstr "題目名稱" -#: judge/models/problem.py:124 +#: judge/models/problem.py:121 msgid "The full name of the problem, as shown in the problem list." -msgstr "" +msgstr "題目的完整名稱,這將會顯示在題目清單中" -#: judge/models/problem.py:126 +#: judge/models/problem.py:122 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:123 msgid "creators" msgstr "建立者" -#: judge/models/problem.py:128 +#: judge/models/problem.py:124 msgid "These users will be able to edit the problem, and be listed as authors." -msgstr "" +msgstr "這些使用者將能編輯此題目,並且他們將被列為作者" -#: judge/models/problem.py:131 +#: judge/models/problem.py:127 msgid "These users will be able to edit the problem, but not be listed as authors." -msgstr "" +msgstr "這些使用者將能編輯此題目,但他們不會被列為作者" -#: judge/models/problem.py:135 +#: judge/models/problem.py:131 msgid "These users will be able to view the private problem, but not edit it." msgstr "" -#: judge/models/problem.py:137 +#: judge/models/problem.py:133 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:135 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:137 msgid "The time limit for this problem, in seconds. Fractional seconds (e.g. 1.5) are supported." msgstr "這個題目的時間限制(以秒為單位)。支持小數秒計時方式(例如1.5)。" -#: judge/models/problem.py:146 judge/models/problem.py:499 +#: judge/models/problem.py:141 judge/models/problem.py:521 msgid "memory limit" msgstr "記憶體限制" -#: judge/models/problem.py:147 -msgid "The memory limit for this problem, in kilobytes (e.g. 64mb = 65536 kilobytes)." -msgstr "此題目的記憶體限制,以kb為單位(例如 64mb = 65536 kb)" +#: judge/models/problem.py:142 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." +msgstr "此題目的記憶體限制,以kb為單位(例如 256mb = 262144 kb)。" -#: judge/models/problem.py:151 +#: judge/models/problem.py:146 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:148 msgid "Points awarded for problem completion. Points are displayed with a 'p' suffix if partial." msgstr "完成題目得分的分數,如果有部分分數而顯示'p'結尾。" -#: judge/models/problem.py:156 +#: judge/models/problem.py:151 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:152 msgid "allowed languages" msgstr "允許的語言" -#: judge/models/problem.py:158 +#: judge/models/problem.py:153 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:155 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:156 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:157 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 -msgid "Doesn't have magic ability to auto-publish due to backward compatibility" +#: judge/models/problem.py:159 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:161 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:163 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:165 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:167 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:168 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:169 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:170 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:171 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:179 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:478 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:479 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:480 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:481 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:482 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:483 templates/problem/problem.html:181 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:484 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:485 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:486 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:494 judge/models/problem.py:517 #: judge/models/runtime.py:111 msgid "language" msgstr "語言" -#: judge/models/problem.py:473 +#: judge/models/problem.py:495 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:496 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:501 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:502 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:506 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:507 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:508 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:511 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:512 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:527 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:528 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:532 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:535 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:537 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:560 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:562 msgid "solution" msgstr "題解" -#: judge/models/problem.py:541 +#: judge/models/problem.py:563 msgid "solutions" msgstr "題解" +#: judge/models/problem.py:568 +msgid "proposed points" +msgstr "" + +#: judge/models/problem.py:569 +msgid "The amount of points the voter thinks this problem deserves." +msgstr "" + +#: judge/models/problem.py:575 +msgid "voter" +msgstr "投票者" + +#: judge/models/problem.py:578 +msgid "vote time" +msgstr "" + +#: judge/models/problem.py:578 +msgid "The time this vote was cast." +msgstr "" + +#: judge/models/problem.py:580 +msgid "note" +msgstr "" + +#: judge/models/problem.py:580 +msgid "Justification for problem point value." +msgstr "" + +#: judge/models/problem.py:584 +msgid "problem vote" +msgstr "" + +#: judge/models/problem.py:585 +msgid "problem votes" +msgstr "" + +#: judge/models/problem.py:588 +#, python-format +msgid "Points vote by %(voter)s for %(problem)s" +msgstr "" + #: judge/models/problem_data.py:23 msgid "Standard" msgstr "標準" @@ -1791,11 +1863,11 @@ msgstr "浮點數" #: judge/models/problem_data.py:25 msgid "Floats (absolute)" -msgstr "浮點數(絕對值)" +msgstr "浮點數(絕對值)" #: judge/models/problem_data.py:26 msgid "Floats (relative)" -msgstr "浮點數(相對值)" +msgstr "浮點數(相對值)" #: judge/models/problem_data.py:27 msgid "Non-trailing spaces" @@ -1821,11 +1893,11 @@ msgstr "" msgid "generator file" msgstr "" -#: judge/models/problem_data.py:41 judge/models/problem_data.py:90 +#: judge/models/problem_data.py:41 judge/models/problem_data.py:92 msgid "output prefix length" msgstr "" -#: judge/models/problem_data.py:42 judge/models/problem_data.py:91 +#: judge/models/problem_data.py:42 judge/models/problem_data.py:93 msgid "output limit length" msgstr "" @@ -1833,59 +1905,67 @@ msgstr "" msgid "init.yml generation feedback" msgstr "" -#: judge/models/problem_data.py:44 judge/models/problem_data.py:92 +#: judge/models/problem_data.py:44 judge/models/problem_data.py:94 msgid "checker" msgstr "檢查器" -#: judge/models/problem_data.py:45 judge/models/problem_data.py:93 +#: judge/models/problem_data.py:45 +msgid "enable unicode" +msgstr "啟用 Unicode" + +#: judge/models/problem_data.py:46 +msgid "disable bigInteger / bigDecimal" +msgstr "禁用 BigInteger / BigDecimal" + +#: judge/models/problem_data.py:47 judge/models/problem_data.py:95 msgid "checker arguments" msgstr "" -#: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +#: judge/models/problem_data.py:48 judge/models/problem_data.py:96 +msgid "Checker arguments as a JSON object." msgstr "" -#: judge/models/problem_data.py:77 +#: judge/models/problem_data.py:79 msgid "problem data set" msgstr "" -#: judge/models/problem_data.py:79 +#: judge/models/problem_data.py:81 msgid "case position" msgstr "" -#: judge/models/problem_data.py:80 +#: judge/models/problem_data.py:82 msgid "case type" msgstr "" -#: judge/models/problem_data.py:81 +#: judge/models/problem_data.py:83 msgid "Normal case" msgstr "" -#: judge/models/problem_data.py:82 +#: judge/models/problem_data.py:84 msgid "Batch start" msgstr "" -#: judge/models/problem_data.py:83 +#: judge/models/problem_data.py:85 msgid "Batch end" msgstr "" -#: judge/models/problem_data.py:85 +#: judge/models/problem_data.py:87 msgid "input file name" msgstr "" -#: judge/models/problem_data.py:86 +#: judge/models/problem_data.py:88 msgid "output file name" msgstr "" -#: judge/models/problem_data.py:87 +#: judge/models/problem_data.py:89 msgid "generator arguments" msgstr "" -#: judge/models/problem_data.py:88 +#: judge/models/problem_data.py:90 msgid "point value" msgstr "分數" -#: judge/models/problem_data.py:89 +#: judge/models/problem_data.py:91 msgid "case is pretest?" msgstr "" @@ -1898,11 +1978,11 @@ msgid "organization slug" msgstr "" #: judge/models/profile.py:44 -msgid "Organization name shown in URL" +msgid "Organization name shown in URLs." msgstr "" #: judge/models/profile.py:46 -msgid "Displayed beside user name during contests" +msgid "Displayed beside user name during contests." msgstr "" #: judge/models/profile.py:47 @@ -1914,7 +1994,7 @@ msgid "administrators" msgstr "管理員" #: judge/models/profile.py:49 -msgid "Those who can edit this organization" +msgid "Those who can edit this organization." msgstr "" #: judge/models/profile.py:50 @@ -1926,7 +2006,7 @@ msgid "is open organization?" msgstr "" #: judge/models/profile.py:52 -msgid "Allow joining organization" +msgid "Allow joining organization." msgstr "" #: judge/models/profile.py:53 @@ -1934,11 +2014,11 @@ msgid "maximum size" msgstr "" #: judge/models/profile.py:54 -msgid "Maximum amount of users in this organization, only applicable to private organizations" -msgstr "這個組織用戶最大數量,只適用於私人組織" +msgid "Maximum amount of users in this organization, only applicable to private organizations." +msgstr "這個組織用戶最大數量,只適用於私人組織。" -#: judge/models/profile.py:56 -msgid "Student access code" +#: judge/models/profile.py:56 judge/models/profile.py:111 +msgid "Student access code." msgstr "" #: judge/models/profile.py:60 @@ -1950,11 +2030,11 @@ msgid "class membership required" msgstr "" #: judge/models/profile.py:63 -msgid "whether members are compelled to select a class when joining" +msgid "Whether members are compelled to select a class when joining." msgstr "" #: judge/models/profile.py:67 -msgid "Class membership cannot be enforced when organization has open enrollment" +msgid "Class membership cannot be enforced when organization has open enrollment." msgstr "" #: judge/models/profile.py:95 @@ -1966,12 +2046,12 @@ msgid "Edit all organizations" msgstr "" #: judge/models/profile.py:98 judge/models/profile.py:103 -#: judge/models/profile.py:160 judge/models/profile.py:357 +#: judge/models/profile.py:160 judge/models/profile.py:363 msgid "organization" msgstr "組織" #: judge/models/profile.py:104 -msgid "the organization that this class belongs to" +msgid "The organization that this class belongs to." msgstr "" #: judge/models/profile.py:106 @@ -1983,7 +2063,7 @@ msgid "class slug" msgstr "" #: judge/models/profile.py:107 -msgid "class name shown in URLs" +msgid "Class name shown in URLs." msgstr "" #: judge/models/profile.py:108 @@ -1994,12 +2074,8 @@ msgstr "" msgid "is class active" msgstr "" -#: judge/models/profile.py:111 -msgid "student access code" -msgstr "" - #: judge/models/profile.py:113 -msgid "those who can approve membership to this class" +msgid "Those who can approve membership to this class." msgstr "" #: judge/models/profile.py:114 @@ -2011,7 +2087,7 @@ msgstr "" msgid "%(class)s in %(organization)s" msgstr "" -#: judge/models/profile.py:142 judge/models/profile.py:365 +#: judge/models/profile.py:142 judge/models/profile.py:371 msgid "class" msgstr "" @@ -2024,8 +2100,8 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" -msgstr "位置" +msgid "time zone" +msgstr "時區" #: judge/models/profile.py:152 msgid "preferred language" @@ -2055,8 +2131,8 @@ msgstr "" msgid "Problem Setter" msgstr "" -#: judge/models/profile.py:166 templates/base.html:218 -#: templates/comments/list.html:101 templates/contest/contest-list-tabs.html:26 +#: judge/models/profile.py:166 templates/base.html:214 +#: templates/comments/list.html:84 templates/contest/contest-list-tabs.html:25 #: templates/contest/ranking-table.html:51 #: templates/problem/problem-list-tabs.html:6 #: templates/submission/info-base.html:13 @@ -2082,163 +2158,183 @@ msgid "User will not be ranked." msgstr "" #: judge/models/profile.py:172 -msgid "user script" +msgid "banned from voting on problem point values" msgstr "" #: judge/models/profile.py:173 +msgid "User will not be able to vote on problems' point values." +msgstr "" + +#: judge/models/profile.py:177 +msgid "user script" +msgstr "" + +#: judge/models/profile.py:178 msgid "User-defined JavaScript for site customization." msgstr "" -#: judge/models/profile.py:174 +#: judge/models/profile.py:179 msgid "current contest" msgstr "目前競賽" -#: judge/models/profile.py:176 +#: judge/models/profile.py:181 msgid "math engine" msgstr "" -#: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +#: judge/models/profile.py:183 +msgid "The rendering engine used to render math." msgstr "" -#: judge/models/profile.py:179 +#: judge/models/profile.py:184 msgid "TOTP 2FA enabled" msgstr "" -#: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +#: judge/models/profile.py:185 +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" -#: judge/models/profile.py:181 +#: judge/models/profile.py:186 msgid "WebAuthn 2FA enabled" msgstr "" -#: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +#: judge/models/profile.py:187 +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" -#: judge/models/profile.py:183 +#: judge/models/profile.py:188 msgid "TOTP key" msgstr "" -#: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +#: judge/models/profile.py:189 +msgid "32-character Base32-encoded key for TOTP." msgstr "" -#: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +#: judge/models/profile.py:191 +msgid "TOTP key must be empty or Base32." msgstr "" -#: judge/models/profile.py:187 +#: judge/models/profile.py:192 msgid "scratch codes" msgstr "" -#: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" -msgstr "含有16字符的32進制代碼的JSON數組" +#: judge/models/profile.py:193 +msgid "JSON array of 16-character Base32-encoded codes for scratch codes." +msgstr "含有16字符的32進制代碼的JSON數組。" -#: judge/models/profile.py:192 -msgid "Scratch codes must be empty or a JSON array of 16-character base32 codes" -msgstr "一次性代碼必須是空的或者是一個含有32進制代碼的JSON數組" +#: judge/models/profile.py:197 +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." +msgstr "一次性代碼必須是空的或者是一個含有32進制代碼的JSON數組。" -#: judge/models/profile.py:194 +#: judge/models/profile.py:199 msgid "last TOTP timecode" msgstr "" -#: judge/models/profile.py:195 +#: judge/models/profile.py:200 msgid "API token" msgstr "API 令牌" -#: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +#: judge/models/profile.py:201 +msgid "64-character hex-encoded API access token." msgstr "" -#: judge/models/profile.py:198 +#: judge/models/profile.py:203 msgid "API token must be None or hexadecimal" msgstr "" -#: judge/models/profile.py:199 +#: judge/models/profile.py:204 msgid "internal notes" msgstr "" -#: judge/models/profile.py:200 +#: judge/models/profile.py:205 msgid "Notes for administrators regarding this user." msgstr "" -#: judge/models/profile.py:201 +#: judge/models/profile.py:206 msgid "last data download time" msgstr "" -#: judge/models/profile.py:202 +#: judge/models/profile.py:207 msgid "display name override" msgstr "" -#: judge/models/profile.py:203 -msgid "name displayed in place of username" +#: judge/models/profile.py:208 +msgid "Name displayed in place of username." msgstr "" -#: judge/models/profile.py:317 +#: judge/models/profile.py:323 msgid "Shows in-progress development stuff" msgstr "" -#: judge/models/profile.py:318 +#: judge/models/profile.py:324 msgid "Edit TOTP settings" msgstr "" -#: judge/models/profile.py:320 +#: judge/models/profile.py:326 msgid "user profile" msgstr "使用者個人檔案" -#: judge/models/profile.py:321 +#: judge/models/profile.py:327 msgid "user profiles" msgstr "使用者個人檔案" -#: judge/models/profile.py:327 +#: judge/models/profile.py:333 msgid "device name" msgstr "" -#: judge/models/profile.py:328 +#: judge/models/profile.py:334 msgid "credential ID" msgstr "" -#: judge/models/profile.py:329 +#: judge/models/profile.py:335 msgid "public key" msgstr "" -#: judge/models/profile.py:330 +#: judge/models/profile.py:336 msgid "sign counter" msgstr "" -#: judge/models/profile.py:348 +#: judge/models/profile.py:354 #, python-format msgid "WebAuthn credential: %(name)s" msgstr "" -#: judge/models/profile.py:351 +#: judge/models/profile.py:357 msgid "WebAuthn credential" msgstr "" -#: judge/models/profile.py:352 +#: judge/models/profile.py:358 msgid "WebAuthn credentials" msgstr "" -#: judge/models/profile.py:359 +#: judge/models/profile.py:365 msgid "request time" msgstr "" -#: judge/models/profile.py:360 +#: judge/models/profile.py:366 msgid "state" msgstr "狀態" -#: judge/models/profile.py:366 +#: judge/models/profile.py:367 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "待確認" + +#: judge/models/profile.py:368 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "已批准" + +#: judge/models/profile.py:369 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "已拒絕" + +#: judge/models/profile.py:372 msgid "reason" msgstr "原因" -#: judge/models/profile.py:375 +#: judge/models/profile.py:381 msgid "organization join request" msgstr "" -#: judge/models/profile.py:376 +#: judge/models/profile.py:382 msgid "organization join requests" msgstr "" @@ -2267,7 +2363,7 @@ msgid "common name" msgstr "" #: judge/models/runtime.py:30 -msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"" +msgid "Common name for the language. For example, the common name for C++03, C++11, and C++14 would be \"C++\"." msgstr "語言的通用名稱,例如C++03、C++11、C++14的通用名稱為“C++”。" #: judge/models/runtime.py:32 @@ -2344,10 +2440,10 @@ msgstr "" #: judge/models/runtime.py:124 msgid "judge name" -msgstr "" +msgstr "評測伺服器名稱" #: judge/models/runtime.py:124 -msgid "Server name, hostname-style" +msgid "Server name, hostname-style." msgstr "" #: judge/models/runtime.py:126 @@ -2355,7 +2451,7 @@ msgid "time of creation" msgstr "" #: judge/models/runtime.py:127 -msgid "A key to authenticate this judge" +msgid "A key to authenticate this judge." msgstr "" #: judge/models/runtime.py:128 @@ -2364,15 +2460,15 @@ msgstr "" #: judge/models/runtime.py:129 msgid "block judge" -msgstr "" +msgstr "封鎖評測伺服器" #: judge/models/runtime.py:130 msgid "Whether this judge should be blocked from connecting, even if its key is correct." -msgstr "是否阻止此裁判連接,即使其密鑰正確。" +msgstr "是否封鎖此評測伺服器?即使評測伺服器的密鑰正確" #: judge/models/runtime.py:132 msgid "judge online status" -msgstr "" +msgstr "評測伺服器在線狀態" #: judge/models/runtime.py:133 msgid "judge start time" @@ -2440,8 +2536,8 @@ msgstr "編譯錯誤" msgid "Internal Error" msgstr "內部錯誤" -#: judge/models/submission.py:31 -msgid "Short circuit" +#: judge/models/submission.py:31 judge/models/submission.py:52 +msgid "Short Circuited" msgstr "" #: judge/models/submission.py:32 judge/models/submission.py:45 @@ -2465,10 +2561,6 @@ msgstr "評分中" msgid "Completed" msgstr "已完成" -#: judge/models/submission.py:52 -msgid "Short Circuited" -msgstr "" - #: judge/models/submission.py:59 msgid "Internal Error (judging server error)" msgstr "" @@ -2477,15 +2569,15 @@ msgstr "" msgid "submission time" msgstr "提交時間" -#: judge/models/submission.py:70 judge/models/submission.py:258 +#: judge/models/submission.py:70 judge/models/submission.py:255 msgid "execution time" msgstr "執行時間" -#: judge/models/submission.py:71 judge/models/submission.py:259 +#: judge/models/submission.py:71 judge/models/submission.py:256 msgid "memory usage" msgstr "記憶體使用量" -#: judge/models/submission.py:72 judge/models/submission.py:260 +#: judge/models/submission.py:72 judge/models/submission.py:257 msgid "points granted" msgstr "獲得分數" @@ -2537,97 +2629,97 @@ msgstr "" msgid "submission lock" msgstr "" -#: judge/models/submission.py:200 +#: judge/models/submission.py:197 #, python-format msgid "Submission %(id)d of %(problem)s by %(user)s" msgstr "" -#: judge/models/submission.py:225 +#: judge/models/submission.py:222 msgid "Abort any submission" msgstr "" -#: judge/models/submission.py:226 +#: judge/models/submission.py:223 msgid "Rejudge the submission" -msgstr "" +msgstr "重新評測這筆提交紀錄" -#: judge/models/submission.py:227 +#: judge/models/submission.py:224 msgid "Rejudge a lot of submissions" msgstr "" -#: judge/models/submission.py:228 +#: judge/models/submission.py:225 msgid "Submit without limit" msgstr "" -#: judge/models/submission.py:229 +#: judge/models/submission.py:226 msgid "View all submission" msgstr "檢視所有提交紀錄" -#: judge/models/submission.py:230 +#: judge/models/submission.py:227 msgid "Resubmit others' submission" msgstr "重新提交他人的提交紀錄" -#: judge/models/submission.py:231 +#: judge/models/submission.py:228 msgid "Change lock status of submission" msgstr "" -#: judge/models/submission.py:234 templates/contest/moss.html:58 +#: judge/models/submission.py:231 msgid "submissions" msgstr "" -#: judge/models/submission.py:238 judge/models/submission.py:254 +#: judge/models/submission.py:235 judge/models/submission.py:251 msgid "associated submission" msgstr "" -#: judge/models/submission.py:240 +#: judge/models/submission.py:237 msgid "source code" msgstr "源碼" -#: judge/models/submission.py:243 +#: judge/models/submission.py:240 #, python-format msgid "Source of %(submission)s" msgstr "" -#: judge/models/submission.py:246 +#: judge/models/submission.py:243 msgid "submission source" msgstr "" -#: judge/models/submission.py:247 +#: judge/models/submission.py:244 msgid "submission sources" msgstr "" -#: judge/models/submission.py:256 +#: judge/models/submission.py:253 msgid "test case ID" msgstr "" -#: judge/models/submission.py:257 +#: judge/models/submission.py:254 msgid "status flag" msgstr "" -#: judge/models/submission.py:261 +#: judge/models/submission.py:258 msgid "points possible" msgstr "" -#: judge/models/submission.py:262 +#: judge/models/submission.py:259 msgid "batch number" msgstr "" -#: judge/models/submission.py:263 +#: judge/models/submission.py:260 msgid "judging feedback" msgstr "" -#: judge/models/submission.py:264 +#: judge/models/submission.py:261 msgid "extended judging feedback" msgstr "" -#: judge/models/submission.py:265 +#: judge/models/submission.py:262 msgid "program output" msgstr "" -#: judge/models/submission.py:273 +#: judge/models/submission.py:276 msgid "submission test case" msgstr "" -#: judge/models/submission.py:274 +#: judge/models/submission.py:277 msgid "submission test cases" msgstr "" @@ -2675,10 +2767,6 @@ msgstr "票" msgid "tickets" msgstr "" -#: judge/models/ticket.py:32 -msgid "poster" -msgstr "海報" - #: judge/models/ticket.py:34 msgid "message body" msgstr "" @@ -2787,7 +2875,7 @@ msgstr "" #: judge/utils/problem_data.py:136 #, python-format -msgid "Attempt to end batch outside of one in case #%d" +msgid "Attempt to end batch outside of one in case #%d." msgstr "" #: judge/utils/problem_data.py:154 @@ -2810,13 +2898,9 @@ msgstr "超時" msgid "Error" msgstr "出錯" -#: judge/utils/problems.py:89 -msgid "Can't pass both queryset and keyword filters" -msgstr "" - #: judge/utils/pwned.py:109 msgid "This password is too common." -msgstr "" +msgstr "這個密碼太常見了" #: judge/utils/pwned.py:112 msgid "Your password can't be a commonly used password." @@ -2850,7 +2934,7 @@ msgctxt "hours and minutes" msgid "%h:%m" msgstr "%h:%m" -#: judge/views/blog.py:37 +#: judge/views/blog.py:36 #, python-format msgid "Page %d of Posts" msgstr "" @@ -2861,7 +2945,7 @@ msgstr "" #: judge/views/comment.py:36 msgid "You must solve at least one problem before you can vote." -msgstr "" +msgstr "您必須解開至少一道問題才可以投票" #: judge/views/comment.py:50 msgid "Comment not found." @@ -2873,9 +2957,9 @@ msgstr "" #: judge/views/comment.py:71 msgid "You already voted." -msgstr "" +msgstr "你已經投過票了" -#: judge/views/comment.py:134 judge/views/organization.py:350 +#: judge/views/comment.py:134 judge/views/organization.py:359 msgid "Edited from site" msgstr "" @@ -2950,62 +3034,58 @@ msgstr "" msgid "You are not in contest \"%s\"." msgstr "" -#: judge/views/contests.py:459 -msgid "ContestCalendar requires integer year and month" -msgstr "" - -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 #, python-format msgid "Contests in %(month)s" msgstr "" -#: judge/views/contests.py:499 +#: judge/views/contests.py:498 msgid "F Y" msgstr "Y年n月" -#: judge/views/contests.py:557 +#: judge/views/contests.py:556 #, python-format msgid "%s Statistics" msgstr "" -#: judge/views/contests.py:731 +#: judge/views/contests.py:730 #, python-format msgid "%s Rankings" msgstr "" -#: judge/views/contests.py:739 +#: judge/views/contests.py:738 msgid "???" msgstr "???" -#: judge/views/contests.py:755 +#: judge/views/contests.py:754 #, python-format -msgid "Your participation in %s" +msgid "Your participation in %(contest)s" msgstr "" -#: judge/views/contests.py:756 +#: judge/views/contests.py:755 #, python-format -msgid "%s's participation in %s" +msgid "%(user)s's participation in %(contest)s" msgstr "" -#: judge/views/contests.py:763 +#: judge/views/contests.py:764 msgid "Live" msgstr "實時" -#: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 +#: judge/views/contests.py:776 templates/contest/contest-tabs.html:13 msgid "Participation" msgstr "" -#: judge/views/contests.py:819 +#: judge/views/contests.py:820 #, python-format msgid "%s MOSS Results" msgstr "" -#: judge/views/contests.py:846 +#: judge/views/contests.py:847 #, python-format msgid "Running MOSS for %s..." msgstr "" -#: judge/views/contests.py:869 +#: judge/views/contests.py:870 #, python-format msgid "Contest tag: %s" msgstr "" @@ -3029,7 +3109,7 @@ msgstr "" msgid "corrupt page %s" msgstr "" -#: judge/views/language.py:12 templates/status/judge-status-table.html:9 +#: judge/views/language.py:12 templates/status/judge-status-table.html:10 #: templates/status/status-tabs.html:5 msgid "Runtimes" msgstr "語言" @@ -3052,205 +3132,227 @@ msgstr "" msgid "Organizations" msgstr "組織" -#: judge/views/organization.py:115 +#: judge/views/organization.py:118 #, python-format msgid "%s Members" msgstr "" -#: judge/views/organization.py:138 judge/views/organization.py:141 -#: judge/views/organization.py:146 +#: judge/views/organization.py:142 judge/views/organization.py:145 +#: judge/views/organization.py:150 msgid "Joining organization" msgstr "" -#: judge/views/organization.py:138 +#: judge/views/organization.py:142 msgid "You are already in the organization." -msgstr "" +msgstr "您已經在此組織中" -#: judge/views/organization.py:141 +#: judge/views/organization.py:145 msgid "This organization is not open." msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 msgid "Leaving organization" msgstr "" -#: judge/views/organization.py:158 +#: judge/views/organization.py:164 #, python-format msgid "You are not in \"%s\"." msgstr "" -#: judge/views/organization.py:185 judge/views/organization.py:438 +#: judge/views/organization.py:191 judge/views/organization.py:451 #, python-format msgid "Can't request to join %s" msgstr "" -#: judge/views/organization.py:186 judge/views/organization.py:439 +#: judge/views/organization.py:192 judge/views/organization.py:452 #, python-format msgid "You already have a pending request to join %s." -msgstr "" +msgstr "您已有一個待處理加入%s的請求" -#: judge/views/organization.py:199 +#: judge/views/organization.py:205 #, python-format msgid "Request to join %s" msgstr "" -#: judge/views/organization.py:218 +#: judge/views/organization.py:224 msgid "Join request detail" msgstr "" -#: judge/views/organization.py:257 +#: judge/views/organization.py:263 #, python-format msgid "Managing join requests for %s" msgstr "" -#: judge/views/organization.py:289 +#: judge/views/organization.py:295 +#, 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 #, python-format -msgid "Your organization can only receive %d more members. You cannot approve %d users." -msgstr "你的組織只能再接受%d個用戶,無法接受%d個。" +msgid "You cannot approve %d user." +msgid_plural "You cannot approve %d users." +msgstr[0] "無法接受%d個用戶。" -#: judge/views/organization.py:303 +#: judge/views/organization.py:312 #, python-format msgid "Approved %d user." msgid_plural "Approved %d users." msgstr[0] "" -#: judge/views/organization.py:304 +#: judge/views/organization.py:313 #, python-format msgid "Rejected %d user." msgid_plural "Rejected %d users." msgstr[0] "" -#: judge/views/organization.py:334 +#: judge/views/organization.py:343 #, python-format msgid "Editing %s" msgstr "" -#: judge/views/organization.py:358 judge/views/organization.py:366 +#: judge/views/organization.py:367 judge/views/organization.py:375 msgid "Can't edit organization" msgstr "" -#: judge/views/organization.py:359 +#: judge/views/organization.py:368 msgid "You are not allowed to edit this organization." msgstr "" -#: judge/views/organization.py:367 +#: judge/views/organization.py:376 msgid "You are not allowed to kick people from this organization." msgstr "" -#: judge/views/organization.py:372 judge/views/organization.py:376 +#: judge/views/organization.py:381 judge/views/organization.py:385 msgid "Can't kick user" msgstr "" -#: judge/views/organization.py:373 +#: judge/views/organization.py:382 msgid "The user you are trying to kick does not exist!" msgstr "" -#: judge/views/organization.py:377 +#: judge/views/organization.py:386 #, python-format -msgid "The user you are trying to kick is not in organization: %s." +msgid "The user you are trying to kick is not in organization: %s" msgstr "" -#: judge/views/organization.py:410 +#: judge/views/organization.py:423 #, python-brace-format msgid "Class {name} in {organization}" msgstr "" -#: judge/views/organization.py:416 +#: judge/views/organization.py:429 #, python-brace-format msgid "Class {name} - {organization}" msgstr "" -#: judge/views/organization.py:444 +#: judge/views/organization.py:457 #, python-brace-format msgid "Request to join {name} in {organization}" msgstr "" -#: judge/views/problem.py:71 +#: judge/views/problem.py:72 msgid "No such problem" msgstr "沒有這個題目" -#: judge/views/problem.py:72 +#: judge/views/problem.py:73 #, python-format msgid "Could not find a problem with the code \"%s\"." msgstr "" -#: judge/views/problem.py:114 judge/views/problem.py:117 +#: judge/views/problem.py:115 judge/views/problem.py:118 #, python-brace-format msgid "Editorial for {0}" msgstr "" -#: judge/views/problem.py:137 +#: judge/views/problem.py:138 msgid "No such editorial" msgstr "" -#: judge/views/problem.py:138 +#: judge/views/problem.py:139 #, python-format msgid "Could not find an editorial with the code \"%s\"." msgstr "" -#: judge/views/problem.py:271 templates/contest/contest.html:191 -#: templates/user/user-tabs.html:5 templates/user/users-table.html:23 -msgid "Problems" -msgstr "題目" +#: judge/views/problem.py:240 +msgid "Not allowed to vote on this problem." +msgstr "" + +#: judge/views/problem.py:263 +msgid "Not allowed to delete votes on this problem." +msgstr "" + +#: judge/views/problem.py:266 +msgid "success" +msgstr "成功" -#: judge/views/problem.py:568 judge/views/problem.py:576 +#: judge/views/problem.py:653 judge/views/problem.py:661 #, python-format msgid "Submit to %s" msgstr "" -#: judge/views/problem.py:625 +#: judge/views/problem.py:706 +msgid "You submitted too many submissions." +msgstr "" + +#: judge/views/problem.py:710 msgid "Banned from submitting" msgstr "" -#: judge/views/problem.py:626 -msgid "You have been declared persona non grata for this problem. You are permanently barred from submitting this problem." +#: judge/views/problem.py:711 +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:630 +#: judge/views/problem.py:715 msgid "Too many submissions" msgstr "" -#: judge/views/problem.py:631 +#: judge/views/problem.py:716 msgid "You have exceeded the submission limit for this problem." msgstr "" -#: judge/views/problem.py:699 +#: judge/views/problem.py:766 +msgid "Do you want me to ban you?" +msgstr "" + +#: judge/views/problem.py:784 msgid "Clone Problem" msgstr "" -#: judge/views/problem.py:726 +#: judge/views/problem.py:811 #, python-format msgid "Cloned problem from %s" msgstr "" #: judge/views/problem_data.py:37 -msgid "Checker arguments must be a JSON object" +msgid "Checker arguments must be a JSON object." msgstr "" #: judge/views/problem_data.py:39 -msgid "Checker arguments is invalid JSON" +msgid "Checker arguments is invalid JSON." msgstr "" #: judge/views/problem_data.py:46 msgid "Your zip file is invalid!" msgstr "" -#: judge/views/problem_data.py:104 judge/views/problem_data.py:107 +#: judge/views/problem_data.py:105 judge/views/problem_data.py:108 #, python-brace-format msgid "Comparing submissions for {0}" msgstr "" -#: judge/views/problem_data.py:143 +#: judge/views/problem_data.py:144 #, python-brace-format msgid "Editing data for {0}" msgstr "" -#: judge/views/problem_data.py:146 +#: judge/views/problem_data.py:147 #, python-format msgid "Editing data for %s" msgstr "" -#: judge/views/problem_data.py:244 judge/views/problem_data.py:245 +#: judge/views/problem_data.py:245 judge/views/problem_data.py:246 #, python-format msgid "Generated init.yml for %s" msgstr "" @@ -3292,7 +3394,7 @@ msgid "Best solutions for problem %(number)s in %(contest)s" msgstr "" #: judge/views/register.py:26 -msgid "A username must contain letters, numbers, or underscores" +msgid "A username must contain letters, numbers, or underscores." msgstr "" #: judge/views/register.py:30 @@ -3312,15 +3414,15 @@ msgstr "電子郵件地址“%s”已被使用。每個電子郵件地址只允 msgid "Your email provider is not allowed due to history of abuse. Please use a reputable email provider." msgstr "由於濫用歷史,我們不允許您的電子郵件提供商。請使用有信譽的電子郵件提供商。" -#: judge/views/register.py:56 +#: judge/views/register.py:65 msgid "Register" msgstr "註冊" -#: judge/views/register.py:94 +#: judge/views/register.py:103 msgid "Activation Key Invalid" msgstr "" -#: judge/views/register.py:105 +#: judge/views/register.py:114 msgid "Authentication failure" msgstr "" @@ -3332,7 +3434,7 @@ msgstr "" msgid "Language statistics" msgstr "" -#: judge/views/status.py:23 templates/submission/list.html:310 +#: judge/views/status.py:23 templates/submission/list.html:308 msgid "Status" msgstr "狀態" @@ -3358,59 +3460,51 @@ msgstr "" msgid "Submission of %(problem)s by %(user)s" msgstr "" -#: judge/views/submission.py:231 judge/views/submission.py:232 -#: templates/problem/problem.html:127 +#: judge/views/submission.py:232 judge/views/submission.py:233 +#: templates/problem/problem.html:132 msgid "All submissions" msgstr "全部的提交紀錄" -#: judge/views/submission.py:391 judge/views/submission.py:396 +#: judge/views/submission.py:392 judge/views/submission.py:397 msgid "All my submissions" msgstr "我的提交紀錄" -#: judge/views/submission.py:392 judge/views/submission.py:397 +#: judge/views/submission.py:393 judge/views/submission.py:398 #, python-format msgid "All submissions by %s" msgstr "%s 的提交" -#: judge/views/submission.py:425 judge/views/submission.py:428 +#: judge/views/submission.py:426 judge/views/submission.py:429 #, python-format msgid "All submissions for %s" msgstr "" -#: judge/views/submission.py:450 -msgid "Must pass a problem" -msgstr "" - -#: judge/views/submission.py:489 judge/views/submission.py:496 +#: judge/views/submission.py:490 judge/views/submission.py:497 #, python-format msgid "My submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:490 judge/views/submission.py:500 +#: judge/views/submission.py:491 judge/views/submission.py:501 #, python-format msgid "%(user)s's submissions for %(problem)s" msgstr "" -#: judge/views/submission.py:592 -msgid "Must pass a contest" -msgstr "" - -#: judge/views/submission.py:600 judge/views/submission.py:615 +#: judge/views/submission.py:601 judge/views/submission.py:616 #, python-format msgid "My submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:601 judge/views/submission.py:619 +#: judge/views/submission.py:602 judge/views/submission.py:620 #, python-format msgid "%(user)s's submissions in %(contest)s" msgstr "" -#: judge/views/submission.py:637 judge/views/submission.py:655 +#: judge/views/submission.py:638 judge/views/submission.py:656 #, python-brace-format msgid "{user}'s submissions for {problem} in {contest}" msgstr "{contest} 中{user} 在{problem} 的提交歷史" -#: judge/views/submission.py:642 judge/views/submission.py:663 +#: judge/views/submission.py:643 judge/views/submission.py:664 #, python-brace-format msgid "{user}'s submissions for problem {number} in {contest}" msgstr "{user} 對 {contest} 第 {number} 題提交的程序" @@ -3425,7 +3519,7 @@ msgstr "" #: judge/views/ticket.py:48 msgid "You must solve at least one problem before you can create a ticket." -msgstr "" +msgstr "您必須解開至少一道問題才可以新增工單" #: judge/views/ticket.py:91 judge/views/ticket.py:94 #, python-format @@ -3519,51 +3613,46 @@ msgstr "登入" msgid "M j, Y, G:i" msgstr "" -#: judge/views/user.py:304 +#: judge/views/user.py:294 msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:298 templates/user/edit-profile.html:345 msgid "Download your data" msgstr "" -#: judge/views/user.py:364 +#: judge/views/user.py:354 msgid "Updated on site" msgstr "" -#: judge/views/user.py:397 templates/admin/auth/user/change_form.html:14 -#: templates/admin/auth/user/change_form.html:17 templates/base.html:220 +#: judge/views/user.py:387 templates/admin/auth/user/change_form.html:14 +#: templates/admin/auth/user/change_form.html:17 templates/base.html:216 #: templates/user/user-tabs.html:16 msgid "Edit profile" msgstr "" -#: judge/views/user.py:412 +#: judge/views/user.py:402 msgid "Generated API token for user" msgstr "" -#: judge/views/user.py:424 +#: judge/views/user.py:414 msgid "Removed API token for user" msgstr "" -#: judge/views/user.py:434 +#: judge/views/user.py:424 msgid "Generated scratch codes for user" msgstr "" -#: judge/views/user.py:440 templates/user/user-list-tabs.html:4 +#: judge/views/user.py:430 templates/user/user-list-tabs.html:4 msgid "Leaderboard" msgstr "" -#: judge/views/user.py:501 +#: judge/views/user.py:491 msgid "You have been successfully logged out." -msgstr "" +msgstr "您已成功登出" -#: judge/views/widgets.py:52 judge/views/widgets.py:62 -#, python-format -msgid "Invalid upstream data: %s" -msgstr "" - -#: judge/views/widgets.py:72 -msgid "Bad latitude or longitude" +#: judge/views/user.py:508 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3589,13 +3678,15 @@ msgstr "" msgid "Terminate" msgstr "終止" -#: templates/admin/judge/problem/change_form.html:14 -msgid "View Submissions" +#: templates/admin/judge/problem/change_form.html:15 +#: templates/admin/judge/problem/change_form.html:18 +#: templates/user/user-base.html:54 +msgid "View submissions" msgstr "" -#: templates/admin/judge/problem/change_form.html:17 -#: templates/user/user-base.html:61 -msgid "View submissions" +#: templates/admin/judge/problem/change_form.html:20 +#: templates/admin/judge/problem/change_form.html:23 +msgid "View problem votes" msgstr "" #: templates/admin/judge/profile/change_form.html:14 @@ -3603,54 +3694,48 @@ msgstr "" msgid "Edit user" msgstr "" -#: 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:80 -msgid "Rejudge" -msgstr "重新評分" - -#: templates/base.html:213 +#: templates/base.html:209 #, python-format msgid "Hello, %(username)s." msgstr "" -#: templates/base.html:222 +#: templates/base.html:218 msgid "Stop impersonating" msgstr "" -#: templates/base.html:227 +#: templates/base.html:223 msgid "Log out" msgstr "登出" -#: templates/base.html:236 +#: templates/base.html:232 #: templates/registration/password_reset_complete.html:4 msgid "Log in" msgstr "登錄" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:233 templates/registration/registration_form.html:181 msgid "or" msgstr "或" -#: templates/base.html:238 +#: templates/base.html:234 msgid "Sign up" msgstr "註冊" -#: templates/base.html:250 +#: templates/base.html:246 msgid "spectating" msgstr "" -#: templates/base.html:263 +#: templates/base.html:259 msgid "This site works best with JavaScript enabled." msgstr "" -#: templates/base.html:290 +#: templates/base.html:286 msgid "proudly powered by **DMOJ**" msgstr "" -#: templates/blog/content.html:13 templates/comments/list.html:77 +#: templates/blog/content.html:13 templates/comments/list.html:76 #: templates/comments/list.html:92 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:428 +#: templates/license.html:10 templates/problem/data.html:423 #: templates/problem/editorial.html:14 msgid "Edit" msgstr "編輯" @@ -3682,39 +3767,53 @@ msgstr "" msgid "posted {time}" msgstr "" -#: templates/blog/list.html:131 templates/problem/problem.html:311 +#: templates/blog/list.html:120 +msgid "Continue reading..." +msgstr "繼續閱讀…" + +#: templates/blog/list.html:134 templates/problem/problem.html:331 msgid "Clarifications" msgstr "" -#: templates/blog/list.html:147 templates/problem/problem.html:322 +#: templates/blog/list.html:150 templates/problem/problem.html:342 msgid "No clarifications have been made at this time." -msgstr "" +msgstr "目前題目沒有需要澄清的地方" -#: templates/blog/list.html:155 +#: templates/blog/list.html:158 templates/contest/list.html:203 msgid "Ongoing contests" msgstr "" -#: templates/blog/list.html:173 +#: templates/blog/list.html:166 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:176 templates/contest/list.html:240 msgid "Upcoming contests" msgstr "" -#: templates/blog/list.html:190 +#: templates/blog/list.html:184 templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + +#: templates/blog/list.html:193 msgid "Comment stream" msgstr "" -#: templates/blog/list.html:210 +#: templates/blog/list.html:213 msgid "New problems" msgstr "" -#: templates/blog/list.html:227 +#: templates/blog/list.html:230 msgid "My open tickets" msgstr "" -#: templates/blog/list.html:248 +#: templates/blog/list.html:251 msgid "New tickets" msgstr "" -#: templates/comments/list.html:2 templates/user/prepare-data.html:97 +#: templates/comments/list.html:2 templates/user/prepare-data.html:98 msgid "Comments" msgstr "評論" @@ -3737,7 +3836,7 @@ msgstr "" msgid "edit %(edits)s" msgstr "" -#: templates/comments/list.html:60 templates/comments/media-js.html:69 +#: templates/comments/list.html:60 templates/comments/media-js.html:77 msgid "edited" msgstr "已編輯" @@ -3745,64 +3844,90 @@ msgstr "已編輯" msgid "Link" msgstr "链接" -#: templates/comments/list.html:82 templates/comments/list.html:89 +#: templates/comments/list.html:74 templates/comments/list.html:88 msgid "Reply" -msgstr "回復" +msgstr "回覆" -#: templates/comments/list.html:97 templates/comments/votes.html:1 +#: templates/comments/list.html:80 templates/comments/votes.html:1 msgid "Votes" msgstr "投票" -#: templates/comments/list.html:98 +#: templates/comments/list.html:81 msgid "Hide" msgstr "隱藏" -#: templates/comments/list.html:113 +#: templates/comments/list.html:106 msgid "This comment is hidden due to too much negative feedback." -msgstr "由於過多的負面反饋,該評論被隱藏。" +msgstr "這則評論因為太多負評而被隱藏" -#: templates/comments/list.html:114 +#: templates/comments/list.html:107 msgid "Show it anyway." msgstr "" -#: templates/comments/list.html:131 +#: templates/comments/list.html:124 msgid "There are no comments at the moment." -msgstr "" +msgstr "目前沒有評論" -#: templates/comments/list.html:137 +#: templates/comments/list.html:130 msgid "New comment" msgstr "" -#: templates/comments/list.html:151 +#: templates/comments/list.html:144 msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:152 templates/ticket/ticket.html:355 msgid "Post!" msgstr "發布!" -#: templates/comments/list.html:167 +#: templates/comments/list.html:160 msgid "Comments are disabled on this page." msgstr "" -#: templates/comments/media-js.html:11 +#: templates/comments/media-js.html:12 msgid "Replying to comment" msgstr "" -#: templates/comments/media-js.html:64 +#: templates/comments/media-js.html:72 #, python-brace-format msgid "edit {edits}" msgstr "" -#: templates/comments/media-js.html:67 +#: templates/comments/media-js.html:75 msgid "original" msgstr "" +#: templates/comments/media-js.html:101 +#, python-brace-format +msgid "Could not vote: {error}" +msgstr "" + +#: templates/comments/media-js.html:137 +msgid "Are you sure you want to hide this comment?" +msgstr "" + +#: templates/comments/media-js.html:145 +msgid "Could not hide comment." +msgstr "" + +#: templates/comments/media-js.html:180 +msgid "updated" +msgstr "" + +#: templates/comments/media-js.html:182 +msgid "Failed to update comment body." +msgstr "" + +#: templates/comments/media-js.html:185 +#, python-brace-format +msgid "Could not edit comment: {error}" +msgstr "" + #: templates/comments/votes.html:5 msgid "Voter" msgstr "投票者" -#: templates/comments/votes.html:6 templates/user/user-problems.html:101 +#: templates/comments/votes.html:6 templates/user/user-problems.html:103 msgid "Score" msgstr "得分" @@ -3810,13 +3935,25 @@ msgstr "得分" msgid "No votes" msgstr "" +#: templates/common-content.html:32 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:33 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:44 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." -msgstr "" +msgstr "存取密碼錯誤" #: templates/contest/access_code.html:29 msgid "Please enter your access code:" -msgstr "" +msgstr "請輸入您的存取密碼" #: templates/contest/access_code.html:32 msgid "Join Contest" @@ -3874,22 +4011,22 @@ msgstr "下個月" msgid "Export" msgstr "" -#: templates/contest/contest-list-tabs.html:23 +#: templates/contest/contest-list-tabs.html:22 #: templates/problem/problem-list-tabs.html:5 msgid "List" msgstr "清單" -#: templates/contest/contest-list-tabs.html:24 +#: templates/contest/contest-list-tabs.html:23 msgid "Calendar" msgstr "" #: templates/contest/contest-tabs.html:4 msgid "Info" -msgstr "資料和信息" +msgstr "資訊" -#: templates/contest/contest-tabs.html:6 templates/submission/list.html:336 +#: templates/contest/contest-tabs.html:6 templates/submission/list.html:334 msgid "Statistics" -msgstr "統計数据" +msgstr "統計資料" #: templates/contest/contest-tabs.html:11 msgid "Rankings" @@ -3912,7 +4049,7 @@ msgstr "複製" msgid "Leave contest" msgstr "" -#: templates/contest/contest-tabs.html:45 templates/contest/list.html:306 +#: templates/contest/contest-tabs.html:45 templates/contest/list.html:308 msgid "Virtual join" msgstr "" @@ -3929,20 +4066,45 @@ msgstr "" msgid "Spectate contest" msgstr "" -#: templates/contest/contest-tabs.html:80 templates/contest/list.html:149 +#: templates/contest/contest-tabs.html:80 templates/contest/list.html:151 msgid "You cannot join this contest." -msgstr "" +msgstr "你無法加入這場競賽" #: templates/contest/contest-tabs.html:90 msgid "Log in to participate" msgstr "" +#: templates/contest/contest.html:33 +#, python-format +msgid "Spectating, contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:35 +#, python-format +msgid "Participating virtually, %(countdown)s remaining." +msgstr "" + #: templates/contest/contest.html:37 msgid "Participating virtually." msgstr "" #: templates/contest/contest.html:43 msgid "Contest is over." +msgstr "競賽已結束" + +#: templates/contest/contest.html:47 +#, python-format +msgid "Your time is up! Contest ends in %(countdown)s." +msgstr "" + +#: templates/contest/contest.html:49 +#, python-format +msgid "You have %(countdown)s remaining." +msgstr "" + +#: templates/contest/contest.html:52 +#, python-format +msgid "Contest ends in %(countdown)s." msgstr "" #: templates/contest/contest.html:58 templates/contest/contest.html:60 @@ -3963,7 +4125,7 @@ msgstr "" #, python-format msgid "The author of this contest is %(link_authors)s." msgid_plural "The authors of this contest are %(link_authors)s." -msgstr[0] "" +msgstr[0] "本場競賽的作者為 %(link_authors)s" #: templates/contest/contest.html:86 #, python-format @@ -4072,9 +4234,9 @@ msgstr "" msgid "AC Rate" msgstr "AC率" -#: templates/contest/contest.html:198 templates/contest/list.html:164 -#: templates/contest/list.html:206 templates/contest/list.html:283 -#: templates/problem/list.html:209 templates/problem/list.html:241 +#: templates/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 +#: templates/problem/list.html:207 templates/problem/list.html:239 msgid "Users" msgstr "用戶" @@ -4082,7 +4244,7 @@ msgstr "用戶" msgid "Editorials" msgstr "" -#: templates/contest/contest.html:226 templates/problem/list.html:235 +#: templates/contest/contest.html:226 templates/problem/list.html:233 msgid "Editorial" msgstr "" @@ -4095,10 +4257,6 @@ msgstr "" msgid "Joining a contest for the first time starts your timer, after which it becomes unstoppable." msgstr "計時器在你第一次參加競賽的時候就會啟動,競賽開始後將不會停止。" -#: templates/contest/list.html:64 -msgid "hidden" -msgstr "隱藏" - #: templates/contest/list.html:84 msgid "private" msgstr "私有" @@ -4107,37 +4265,54 @@ msgstr "私有" msgid "rated" msgstr "被評分" -#: templates/contest/list.html:137 templates/contest/list.html:149 +#: templates/contest/list.html:116 +#, python-format +msgid "%(time_limit)s window" +msgstr "" + +#: templates/contest/list.html:119 +#, python-format +msgid "%(duration)s long" +msgstr "" + +#: templates/contest/list.html:139 templates/contest/list.html:151 msgid "Join" msgstr "加入" -#: templates/contest/list.html:143 +#: templates/contest/list.html:145 msgid "Spectate" msgstr "" -#: templates/contest/list.html:159 -msgid "Active Contests" +#: templates/contest/list.html:161 +msgid "Active contests" msgstr "" -#: templates/contest/list.html:163 templates/contest/list.html:205 -#: templates/contest/list.html:243 templates/contest/list.html:280 +#: templates/contest/list.html:165 templates/contest/list.html:207 +#: templates/contest/list.html:245 templates/contest/list.html:282 msgid "Contest" msgstr "競賽" -#: templates/contest/list.html:201 -msgid "Ongoing Contests" +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" msgstr "" -#: templates/contest/list.html:238 -msgid "Upcoming Contests" +#: templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s" msgstr "" -#: templates/contest/list.html:266 +#: templates/contest/list.html:268 msgid "There are no scheduled contests at this time." msgstr "" -#: templates/contest/list.html:272 -msgid "Past Contests" +#: templates/contest/list.html:274 +msgid "Past contests" msgstr "" #: templates/contest/media-js.html:4 @@ -4158,22 +4333,28 @@ msgid "Joining this contest will leave %(contest)s." msgstr "" #: templates/contest/moss.html:28 -msgid "Are you sure you want MOSS the contest?" +msgid "Are you sure you want to MOSS the contest?" msgstr "" -#: templates/contest/moss.html:33 +#: templates/contest/moss.html:31 msgid "Are you sure you want to delete the MOSS results?" msgstr "" -#: templates/contest/moss.html:60 +#: templates/contest/moss.html:56 +#, python-format +msgid "%(count)s submission" +msgid_plural "%(count)s submissions" +msgstr[0] "" + +#: templates/contest/moss.html:62 msgid "No submissions" msgstr "" -#: templates/contest/moss.html:74 +#: templates/contest/moss.html:76 msgid "Re-MOSS contest" msgstr "" -#: templates/contest/moss.html:82 +#: templates/contest/moss.html:84 msgid "Delete MOSS results" msgstr "" @@ -4227,19 +4408,19 @@ msgstr "" msgid "Disqualify" msgstr "" -#: templates/contest/ranking.html:173 +#: templates/contest/ranking.html:151 msgid "Are you sure you want to disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:178 +#: templates/contest/ranking.html:156 msgid "Are you sure you want to un-disqualify this participation?" msgstr "" -#: templates/contest/ranking.html:250 +#: templates/contest/ranking.html:228 msgid "View user participation" msgstr "" -#: templates/contest/ranking.html:254 +#: templates/contest/ranking.html:232 msgid "Show organizations" msgstr "" @@ -4260,8 +4441,8 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" -msgstr "來源:" +msgid "Visit source" +msgstr "" #: templates/newsletter/common.html:6 #: templates/newsletter/subscription_unsubscribe_activated.html:3 @@ -4426,7 +4607,7 @@ msgid "There are no requests to approve." msgstr "" #: templates/organization/requests/pending.html:17 -#: templates/problem/data.html:392 +#: templates/problem/data.html:387 msgid "Delete?" msgstr "刪除?" @@ -4439,25 +4620,13 @@ msgid "Your reason for joining:" msgstr "" #: templates/organization/requests/request.html:29 -msgid "Request" -msgstr "请求" - -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "待確認" +msgid "Request!" +msgstr "请求!" #: templates/organization/requests/tabs.html:7 msgid "Log" msgstr "日誌" -#: templates/organization/requests/tabs.html:10 -msgid "Approved" -msgstr "已批准" - -#: templates/organization/requests/tabs.html:13 -msgid "Rejected" -msgstr "已拒絕" - #: templates/organization/users-table.html:15 msgid "Kick" msgstr "踢出" @@ -4474,55 +4643,59 @@ msgstr "" msgid "Enter a new code for the cloned problem:" msgstr "" -#: templates/problem/data.html:344 +#: templates/problem/data.html:70 +msgid "precision (decimal digits)" +msgstr "" + +#: templates/problem/data.html:339 msgid "View YAML" msgstr "" -#: templates/problem/data.html:360 +#: templates/problem/data.html:355 msgid "Show columns:" msgstr "" -#: templates/problem/data.html:363 templates/problem/data.html:387 +#: templates/problem/data.html:358 templates/problem/data.html:382 msgid "Output prefix" msgstr "" -#: templates/problem/data.html:367 templates/problem/data.html:388 +#: templates/problem/data.html:362 templates/problem/data.html:383 msgid "Output limit" msgstr "" -#: templates/problem/data.html:371 templates/problem/data.html:389 +#: templates/problem/data.html:366 templates/problem/data.html:384 msgid "Checker" msgstr "檢查器" -#: templates/problem/data.html:375 templates/problem/data.html:390 +#: templates/problem/data.html:370 templates/problem/data.html:385 msgid "Generator args" msgstr "" -#: templates/problem/data.html:382 +#: templates/problem/data.html:377 msgid "Type" msgstr "類型" -#: templates/problem/data.html:383 +#: templates/problem/data.html:378 msgid "Input file" msgstr "" -#: templates/problem/data.html:384 +#: templates/problem/data.html:379 msgid "Output file" msgstr "" -#: templates/problem/data.html:386 +#: templates/problem/data.html:381 msgid "Pretest?" msgstr "" -#: templates/problem/data.html:438 templates/problem/submit.html:256 +#: templates/problem/data.html:433 templates/problem/submit.html:256 msgid "Submit!" msgstr "提交!" -#: templates/problem/data.html:439 +#: templates/problem/data.html:434 msgid "Add new case" msgstr "" -#: templates/problem/data.html:441 +#: templates/problem/data.html:436 msgid "Save" msgstr "" @@ -4534,7 +4707,7 @@ msgstr "記住 **只** 在沒有思路時使用題解,**不要從它複製粘 msgid "Submitting an official solution before solving the problem yourself is a bannable offence." msgstr "在真正解決題目之前提交題解的代碼是可以封禁的罪行。" -#: templates/problem/editorial.html:30 templates/problem/problem.html:210 +#: templates/problem/editorial.html:30 templates/problem/problem.html:230 msgid "Author:" msgid_plural "Authors:" msgstr[0] "作者:" @@ -4543,20 +4716,20 @@ msgstr[0] "作者:" msgid "Filter by type..." msgstr "" -#: templates/problem/list.html:182 +#: templates/problem/list.html:180 msgid "Hot problems" msgstr "" -#: templates/problem/list.html:204 templates/problem/list.html:222 +#: templates/problem/list.html:202 templates/problem/list.html:220 #: templates/problem/search-form.html:35 templates/user/user-problems.html:59 msgid "Category" msgstr "分類" -#: templates/problem/list.html:206 templates/problem/list.html:226 +#: templates/problem/list.html:204 templates/problem/list.html:224 msgid "Types" msgstr "類型" -#: templates/problem/list.html:233 +#: templates/problem/list.html:231 #, python-format msgid "AC %%" msgstr "AC %%" @@ -4588,7 +4761,7 @@ msgstr "您將重新評分一些提交,是否確認?" #: templates/problem/manage_submission.html:115 msgid "Rejudge Submissions" -msgstr "" +msgstr "重新評測提交紀錄" #: templates/problem/manage_submission.html:120 msgid "Filter by ID:" @@ -4612,7 +4785,7 @@ msgstr "" #: templates/problem/manage_submission.html:150 msgid "Rejudge selected submissions" -msgstr "" +msgstr "重新評測選取的提交紀錄" #: templates/problem/manage_submission.html:157 msgid "Rescore Everything" @@ -4620,113 +4793,128 @@ msgstr "" #: templates/problem/manage_submission.html:158 #, python-format -msgid "This will rescore %(count)d submissions." -msgstr "" +msgid "This will rescore %(count)s submission." +msgid_plural "This will rescore %(count)s submissions." +msgstr[0] "" -#: templates/problem/manage_submission.html:162 +#: templates/problem/manage_submission.html:166 #, python-format -msgid "Are you sure you want to rescore %(count)d submissions?" -msgstr "" +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:163 +#: templates/problem/manage_submission.html:171 msgid "Rescore all submissions" msgstr "" -#: templates/problem/problem.html:91 +#: templates/problem/problem.html:96 msgid "View as PDF" msgstr "" -#: templates/problem/problem.html:101 templates/problem/problem.html:111 -#: templates/problem/problem.html:116 +#: templates/problem/problem.html:106 templates/problem/problem.html:116 +#: templates/problem/problem.html:121 msgid "Submit solution" msgstr "" -#: templates/problem/problem.html:104 +#: templates/problem/problem.html:109 #, python-format msgid "%(counter)s submission left" msgid_plural "%(counter)s submissions left" msgstr[0] "" -#: templates/problem/problem.html:112 +#: templates/problem/problem.html:117 msgid "0 submissions left" msgstr "" -#: templates/problem/problem.html:124 +#: templates/problem/problem.html:129 msgid "My submissions" msgstr "" -#: templates/problem/problem.html:128 +#: templates/problem/problem.html:133 msgid "Best submissions" msgstr "" -#: templates/problem/problem.html:131 +#: templates/problem/problem.html:140 +msgid "Vote on problem points" +msgstr "" + +#: templates/problem/problem.html:142 +#, python-format +msgid "Edit points vote (%(points)d)" +msgstr "" + +#: templates/problem/problem.html:146 templates/problem/vote-stats-ajax.html:3 +msgid "Voting statistics" +msgstr "" + +#: templates/problem/problem.html:151 msgid "Read editorial" msgstr "" -#: templates/problem/problem.html:136 +#: templates/problem/problem.html:156 msgid "Manage tickets" msgstr "" -#: templates/problem/problem.html:140 +#: templates/problem/problem.html:160 msgid "Edit problem" msgstr "" -#: templates/problem/problem.html:142 +#: templates/problem/problem.html:162 msgid "Edit test data" msgstr "" -#: templates/problem/problem.html:147 +#: templates/problem/problem.html:167 msgid "My tickets" msgstr "" -#: templates/problem/problem.html:155 +#: templates/problem/problem.html:175 msgid "Manage submissions" msgstr "" -#: templates/problem/problem.html:168 +#: templates/problem/problem.html:188 templates/problem/vote-ajax.html:20 msgid "Points:" msgstr "分數:" -#: templates/problem/problem.html:171 templates/problem/problem.html:173 +#: templates/problem/problem.html:191 templates/problem/problem.html:193 msgid "(partial)" msgstr "" -#: templates/problem/problem.html:178 +#: templates/problem/problem.html:198 msgid "Time limit:" msgstr "時間限制:" -#: templates/problem/problem.html:190 +#: templates/problem/problem.html:210 msgid "Memory limit:" msgstr "記憶體限制:" -#: templates/problem/problem.html:226 +#: templates/problem/problem.html:246 msgid "Problem type" msgid_plural "Problem types" msgstr[0] "題目類型" -#: templates/problem/problem.html:239 +#: templates/problem/problem.html:259 msgid "Allowed languages" msgstr "允許的語言" -#: templates/problem/problem.html:247 +#: templates/problem/problem.html:267 #, python-format msgid "No %(lang)s judge online" msgstr "" -#: templates/problem/problem.html:258 +#: templates/problem/problem.html:278 msgid "Judge:" msgid_plural "Judges:" msgstr[0] "裁判服務器:" -#: templates/problem/problem.html:275 +#: templates/problem/problem.html:295 msgid "none available" msgstr "" -#: templates/problem/problem.html:300 +#: templates/problem/problem.html:320 msgid "Request clarification" msgstr "" -#: templates/problem/problem.html:302 +#: templates/problem/problem.html:322 msgid "Report an issue" msgstr "" @@ -4775,8 +4963,8 @@ msgstr "題目類型" msgid "Point range" msgstr "" -#: templates/problem/search-form.html:68 templates/submission/list.html:328 -#: templates/ticket/list.html:253 +#: templates/problem/search-form.html:68 templates/submission/list.html:326 +#: templates/ticket/list.html:220 msgid "Go" msgstr "搜索" @@ -4809,6 +4997,54 @@ msgstr "" #: templates/problem/submit.html:252 msgid "No judge is available for this problem." +msgstr "此題目目前沒有可用的評測伺服器" + +#: templates/problem/vote-ajax.html:4 +msgid "Change vote" +msgstr "" + +#: templates/problem/vote-ajax.html:7 +#, python-format +msgid "Last voted on %(date)s" +msgstr "" + +#: templates/problem/vote-ajax.html:11 +msgid "Cast vote" +msgstr "" + +#: templates/problem/vote-ajax.html:25 +msgid "Justification:" +msgstr "" + +#: templates/problem/vote-ajax.html:27 +msgid "A short justification for your vote to this problem's point value (optional)." +msgstr "" + +#: templates/problem/vote-ajax.html:33 +msgid "Vote!" +msgstr "" + +#: templates/problem/vote-ajax.html:35 +msgid "Delete vote" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:7 +msgid "No votes available!" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:16 +#, python-format +msgid "Median vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:17 +#, python-format +msgid "Mean vote: %(val)s" +msgstr "" + +#: templates/problem/vote-stats-ajax.html:18 +#, python-format +msgid "Number of votes: %(val)d" msgstr "" #: templates/registration/activate.html:3 @@ -4820,6 +5056,48 @@ msgstr "" msgid "Your account has been successfully activated." msgstr "" +#: templates/registration/activation_email.html:6 +#, python-format +msgid "Thanks for registering on the %(site_name)s! We're glad to have you." +msgstr "" + +#: 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] "" + +#: templates/registration/activation_email.html:14 +#: templates/registration/activation_email.txt:8 +msgid "Please click on the following link to activate your account:" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/registration/activation_email.html:25 +#: templates/registration/password_reset_email.html:17 +msgid "See you soon!" +msgstr "" + +#: templates/registration/activation_email.txt:1 +#, 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] "" + +#: templates/registration/activation_email_subject.txt:1 +#, python-format +msgid "Activate your %(site_name)s account" +msgstr "" + #: templates/registration/login.html:35 msgid "Invalid username or password." msgstr "" @@ -4866,7 +5144,6 @@ msgid "Your password has been set. You may go ahead and log in now." msgstr "" #: templates/registration/password_reset_confirm.html:9 -#: templates/registration/password_reset_email.html:12 msgid "Reset Password" msgstr "" @@ -4882,22 +5159,19 @@ msgstr "我們已經通過電子郵件向您發送設置密碼的說明。你應 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 "如果您沒有收到電子郵件,請確保您打開的是您註冊時所用的郵箱,並檢查您的垃圾郵件文件夾。" -#: templates/registration/password_reset_email.html:9 +#: templates/registration/password_reset_email.html:6 #, python-format msgid "Forgot your password on the %(site_name)s? Don't worry!" msgstr "" -#: templates/registration/password_reset_email.html:10 +#: templates/registration/password_reset_email.html:8 #, python-format -msgid "To reset the password for your account \"%(username)s\", click the button below." -msgstr "" - -#: templates/registration/password_reset_email.html:15 -msgid "See you soon! If you have problems resetting your email, feel free to shoot us an email at" +msgid "To reset the password for your account \"%(username)s\", click the link below." msgstr "" -#: templates/registration/password_reset_email.html:17 -msgid "See you soon!" +#: 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 "" #: templates/registration/password_reset_email.txt:1 @@ -4927,7 +5201,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:44 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "繼續 》" @@ -4940,41 +5214,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:164 +#: templates/registration/registration_form.html:170 msgid "(again, for confirmation)" msgstr "" -#: templates/registration/registration_form.html:171 +#: templates/registration/registration_form.html:177 msgid "(select your closest major city)" msgstr "" -#: templates/registration/registration_form.html:176 +#: templates/registration/registration_form.html:182 msgid "pick from map" msgstr "" -#: templates/registration/registration_form.html:181 +#: templates/registration/registration_form.html:187 msgid "Default language" msgstr "" -#: templates/registration/registration_form.html:184 -#: templates/user/edit-profile.html:314 +#: templates/registration/registration_form.html:190 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:199 +#: templates/user/edit-profile.html:322 msgid "Notify me about upcoming contests" msgstr "" -#: templates/registration/registration_form.html:204 -msgid "By registering, you agree to our" +#: templates/registration/registration_form.html:213 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "" - -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:216 msgid "Register!" msgstr "" @@ -4983,7 +5252,8 @@ msgid "To protect your account, you must first authenticate before you can disab msgstr "為了保護您的帳戶,您必須先進行身份驗證才能禁用兩因素認證。" #: templates/registration/totp_disable.html:38 -msgid "Enter the 6-digit code generated by your app or one of your 16-digit scratch codes:" +#: 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位一次性代碼:" #: templates/registration/totp_disable.html:41 @@ -5015,14 +5285,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:374 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:375 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 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5031,6 +5304,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 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5048,19 +5322,15 @@ 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:165 +#: templates/user/edit-profile.html:164 msgid "WebAuthn is not supported by your browser." msgstr "" #: templates/registration/two_factor_auth.html:54 -#: templates/user/edit-profile.html:189 +#: templates/user/edit-profile.html:188 msgid "Failed to contact server." msgstr "" -#: 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位一次性代碼:" - #: templates/registration/two_factor_auth.html:81 msgid "Enter one of your 16-character scratch codes:" msgstr "" @@ -5086,38 +5356,38 @@ msgstr "" msgid "AC Submissions by Language" msgstr "" -#: templates/status/judge-status-table.html:2 +#: templates/status/judge-status-table.html:3 msgid "Judge" msgstr "裁判服務器" -#: templates/status/judge-status-table.html:4 +#: templates/status/judge-status-table.html:5 msgid "Online" msgstr "在線" -#: templates/status/judge-status-table.html:6 +#: templates/status/judge-status-table.html:7 msgid "Uptime" msgstr "啟動時間" -#: templates/status/judge-status-table.html:7 +#: templates/status/judge-status-table.html:8 msgid "Ping" msgstr "延遲" -#: templates/status/judge-status-table.html:8 +#: templates/status/judge-status-table.html:9 msgid "Load" msgstr "負載" -#: templates/status/judge-status-table.html:34 -#: templates/status/judge-status-table.html:41 -#: templates/status/judge-status-table.html:48 -#: templates/status/judge-status-table.html:59 +#: templates/status/judge-status-table.html:36 +#: templates/status/judge-status-table.html:43 +#: templates/status/judge-status-table.html:50 +#: templates/status/judge-status-table.html:61 msgid "N/A" msgstr "N/A" -#: templates/status/judge-status-table.html:64 +#: templates/status/judge-status-table.html:66 msgid "There are no judges available at this time." msgstr "" -#: templates/status/language-list.html:34 templates/ticket/list.html:264 +#: templates/status/language-list.html:34 templates/ticket/list.html:231 msgid "ID" msgstr "ID" @@ -5150,23 +5420,27 @@ msgstr "" msgid "Error information" msgstr "" -#: templates/submission/list.html:76 +#: templates/submission/list.html:35 templates/submission/status.html:80 +msgid "Are you sure you want to rejudge?" +msgstr "" + +#: templates/submission/list.html:74 msgid "Filter by status..." msgstr "" -#: templates/submission/list.html:82 +#: templates/submission/list.html:80 msgid "Filter by language..." msgstr "" -#: templates/submission/list.html:306 +#: templates/submission/list.html:304 msgid "Filter submissions" msgstr "" -#: templates/submission/list.html:342 +#: templates/submission/list.html:340 msgid "Total:" msgstr "總計:" -#: templates/submission/list.html:352 +#: templates/submission/list.html:350 msgid "You were disconnected. Refresh to show latest updates." msgstr "" @@ -5185,7 +5459,7 @@ msgstr "重新評分" #: templates/submission/row.html:64 msgid "This submission has been locked, and cannot be rejudged." -msgstr "" +msgstr "這筆提交紀錄已被鎖定,無法重新評測" #: templates/submission/row.html:65 msgid "locked" @@ -5232,19 +5506,23 @@ msgid "Execution Results" msgstr "" #: templates/submission/status-testcases.html:51 -msgid "Batch " -msgstr "批" +#, python-format +msgid "Batch #%(id)d" +msgstr "" #: templates/submission/status-testcases.html:64 -msgid "Case" -msgstr "測試" +#, python-format +msgid "Case #%(id)d:" +msgstr "" #: templates/submission/status-testcases.html:66 -msgid "Pretest" -msgstr "預測試" +#, python-format +msgid "Pretest #%(id)d:" +msgstr "" #: templates/submission/status-testcases.html:68 -msgid "Test case" +#, python-format +msgid "Test case #%(id)d:" msgstr "" #: templates/submission/status-testcases.html:101 @@ -5289,11 +5567,11 @@ msgstr "" msgid "View source" msgstr "" -#: templates/submission/status.html:100 +#: templates/submission/status.html:109 msgid "Press Ctrl-Enter or Command-Enter to abort." msgstr "" -#: templates/submission/status.html:102 +#: templates/submission/status.html:111 msgid "Abort" msgstr "停止" @@ -5310,40 +5588,40 @@ msgstr "最佳" msgid "%(user)s's" msgstr "" -#: templates/ticket/list.html:135 templates/ticket/ticket.html:270 +#: templates/ticket/list.html:102 templates/ticket/ticket.html:270 msgid "Reopened: " msgstr "" -#: templates/ticket/list.html:138 templates/ticket/ticket.html:271 +#: templates/ticket/list.html:105 templates/ticket/ticket.html:271 msgid "Closed: " msgstr "" -#: templates/ticket/list.html:221 +#: templates/ticket/list.html:188 msgid "Use desktop notification" msgstr "" -#: templates/ticket/list.html:227 +#: templates/ticket/list.html:194 msgid "Hide closed tickets" msgstr "" -#: templates/ticket/list.html:232 +#: templates/ticket/list.html:199 msgid "Show my tickets only" msgstr "" -#: templates/ticket/list.html:236 +#: templates/ticket/list.html:203 msgid "Filing user" msgstr "" -#: templates/ticket/list.html:245 templates/ticket/ticket.html:371 +#: templates/ticket/list.html:212 templates/ticket/ticket.html:370 msgid "Assignee" msgid_plural "Assignees" msgstr[0] "" -#: templates/ticket/list.html:265 +#: templates/ticket/list.html:232 msgid "Title" msgstr "標題" -#: templates/ticket/list.html:267 +#: templates/ticket/list.html:234 msgid "Assignees" msgstr "" @@ -5365,31 +5643,32 @@ msgstr "" msgid "Please keep in mind that this form is for reporting issues with a problem statement, and not for asking for help. If you require assistance on solving a problem, ask in the comments instead." msgstr "請注意,此表單用於報告題目描述中的問題,而不是尋求幫助。如果您需要詢問解題方法,請在評論中進行提問。" -#: templates/ticket/ticket.html:356 -msgid "Post" -msgstr "發布" +#: templates/ticket/ticket.html:205 +#, python-brace-format +msgid "Could not change ticket: {error}" +msgstr "" -#: templates/ticket/ticket.html:364 +#: templates/ticket/ticket.html:363 msgid "Associated object" msgstr "" -#: templates/ticket/ticket.html:381 +#: templates/ticket/ticket.html:380 msgid "No one is assigned." msgstr "" -#: templates/ticket/ticket.html:387 +#: templates/ticket/ticket.html:386 msgid "Close ticket" msgstr "" -#: templates/ticket/ticket.html:389 +#: templates/ticket/ticket.html:388 msgid "Reopen ticket" msgstr "" -#: templates/ticket/ticket.html:393 +#: templates/ticket/ticket.html:392 msgid "Assignee notes" msgstr "" -#: templates/ticket/ticket.html:400 templates/widgets/select_all.html:4 +#: templates/ticket/ticket.html:399 templates/widgets/select_all.html:4 msgid "Nothing here." msgstr "" @@ -5397,140 +5676,162 @@ msgstr "" msgid "Rank" msgstr "排名" -#: templates/user/base-users.html:14 templates/user/base-users.html:71 +#: templates/user/base-users.html:14 templates/user/base-users.html:64 msgid "Search by handle..." msgstr "" -#: templates/user/edit-profile.html:113 +#: templates/user/edit-profile.html:107 +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 msgid "Are you sure you want to generate or regenerate your API token?" msgstr "" -#: templates/user/edit-profile.html:114 +#: templates/user/edit-profile.html:113 msgid "This will invalidate any previous API tokens." msgstr "" -#: templates/user/edit-profile.html:115 +#: templates/user/edit-profile.html:114 msgid "It also allows access to your account without Two-factor Authentication." msgstr "" -#: templates/user/edit-profile.html:116 -msgid "You will not be able to view your api token after you leave this page!" +#: templates/user/edit-profile.html:115 +msgid "You will not be able to view your API token after you leave this page!" msgstr "" -#: templates/user/edit-profile.html:117 templates/user/edit-profile.html:211 +#: templates/user/edit-profile.html:116 templates/user/edit-profile.html:210 msgid "Generating..." msgstr "" -#: templates/user/edit-profile.html:125 templates/user/edit-profile.html:247 -#: templates/user/edit-profile.html:373 templates/user/edit-profile.html:395 -msgid "Regenerate" -msgstr "" - -#: templates/user/edit-profile.html:131 templates/user/edit-profile.html:397 +#: templates/user/edit-profile.html:130 templates/user/edit-profile.html:398 msgid "Remove" msgstr "刪除" -#: templates/user/edit-profile.html:141 +#: templates/user/edit-profile.html:140 msgid "Are you sure you want to remove your API token?" msgstr "" -#: templates/user/edit-profile.html:148 templates/user/edit-profile.html:377 -#: templates/user/edit-profile.html:401 +#: templates/user/edit-profile.html:147 templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:402 msgid "Generate" msgstr "" -#: templates/user/edit-profile.html:194 +#: templates/user/edit-profile.html:193 msgid "Are you sure you want to delete this security key?" msgstr "" -#: templates/user/edit-profile.html:284 -msgid "Self-description" +#: templates/user/edit-profile.html:207 +msgid "Are you sure you want to generate or regenerate a new set of scratch codes?" +msgstr "" + +#: templates/user/edit-profile.html:208 +msgid "This will invalidate any previous scratch codes you have." +msgstr "" + +#: templates/user/edit-profile.html:209 templates/user/edit-profile.html:379 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "" + +#: templates/user/edit-profile.html:278 +msgid "Self-description:" msgstr "" -#: templates/user/edit-profile.html:291 +#: templates/user/edit-profile.html:285 msgid "Select your closest major city" msgstr "" -#: templates/user/edit-profile.html:300 -msgid "Editor theme" +#: templates/user/edit-profile.html:286 +msgid "Time zone:" +msgstr "" + +#: templates/user/edit-profile.html:290 +msgid "Language:" +msgstr "" + +#: templates/user/edit-profile.html:294 +msgid "Editor theme:" +msgstr "" + +#: templates/user/edit-profile.html:299 +msgid "Math engine:" msgstr "" -#: templates/user/edit-profile.html:305 -msgid "Math engine" +#: templates/user/edit-profile.html:308 +msgid "Affiliated organizations:" msgstr "" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:334 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:339 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 -msgid "Two-factor Authentication is enabled" +#: templates/user/edit-profile.html:352 +msgid "Two-factor Authentication is enabled:" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:355 templates/user/edit-profile.html:358 msgid "Disable" msgstr "禁用" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:360 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 -msgid "Scratch Codes:" +#: templates/user/edit-profile.html:363 +msgid "Scratch codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:399 msgid "Hidden" msgstr "隱藏" -#: templates/user/edit-profile.html:384 -msgid "Two-factor Authentication is disabled" +#: templates/user/edit-profile.html:377 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" #: templates/user/edit-profile.html:385 +msgid "Two-factor Authentication is disabled:" +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Enable" msgstr "啟用" -#: templates/user/edit-profile.html:392 -msgid "API Token" -msgstr "API令牌" +#: templates/user/edit-profile.html:393 +msgid "API token:" +msgstr "" -#: templates/user/edit-profile.html:409 -msgid "Security keys" +#: templates/user/edit-profile.html:410 +msgid "Security keys:" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:420 msgid "Delete" msgstr "刪除" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:427 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:428 msgid "Add" msgstr "添加" -#: templates/user/edit-profile.html:435 -msgid "User-script" +#: templates/user/edit-profile.html:436 +msgid "User-script:" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:440 msgid "Update profile" msgstr "" #: templates/user/pp-row.html:26 #, python-format -msgid "%(pp).1fpp" -msgstr "" - -#: templates/user/pp-row.html:28 -#, python-format -msgid "%(pp).0fpp" +msgid "weighted %(percent)s (%(pp)spp)" msgstr "" #: templates/user/prepare-data.html:64 @@ -5545,31 +5846,41 @@ msgstr "" msgid "Track progress" msgstr "" -#: templates/user/prepare-data.html:86 +#: templates/user/prepare-data.html:85 +#, python-format +msgid "You may only prepare a new data download once every %(duration)s." +msgstr "" + +#: templates/user/prepare-data.html:87 msgid "Once your data is ready, you will find a download link on this page." msgstr "" -#: templates/user/prepare-data.html:103 +#: templates/user/prepare-data.html:104 msgid "Submissions" msgstr "" -#: templates/user/prepare-data.html:120 +#: templates/user/prepare-data.html:121 msgid "Prepare new download" msgstr "" -#: templates/user/prepare-data.html:122 +#: templates/user/prepare-data.html:123 msgid "Prepare download" msgstr "" -#: templates/user/prepare-data.html:126 +#: templates/user/prepare-data.html:127 msgid "Download prepared data" msgstr "" -#: templates/user/prepare-data.html:132 +#: templates/user/prepare-data.html:133 msgid "Your data is ready!" msgstr "" -#: templates/user/prepare-data.html:136 +#: templates/user/prepare-data.html:135 +#, python-format +msgid "You will need to wait %(countdown)s to prepare a new data download." +msgstr "" + +#: templates/user/prepare-data.html:137 msgid "Download data" msgstr "" @@ -5633,43 +5944,39 @@ msgstr "" msgid "Rating history" msgstr "" -#: templates/user/user-about.html:183 -msgid "past year" -msgstr "" - -#: templates/user/user-base.html:42 +#: templates/user/user-base.html:35 #, python-format msgid "%(counter)s problem solved" msgid_plural "%(counter)s problems solved" msgstr[0] "" -#: templates/user/user-base.html:50 +#: templates/user/user-base.html:43 msgid "Rank by points:" msgstr "" -#: templates/user/user-base.html:53 +#: templates/user/user-base.html:46 msgid "Total points:" msgstr "" -#: templates/user/user-base.html:67 +#: templates/user/user-base.html:60 #, python-format msgid "%(counter)s contest written" msgid_plural "%(counter)s contests written" msgstr[0] "" -#: templates/user/user-base.html:74 +#: templates/user/user-base.html:67 msgid "Rank by rating:" msgstr "" -#: templates/user/user-base.html:76 +#: templates/user/user-base.html:69 msgid "Rating:" msgstr "競賽評分:" -#: templates/user/user-base.html:77 +#: templates/user/user-base.html:70 msgid "Min. rating:" msgstr "" -#: templates/user/user-base.html:78 +#: templates/user/user-base.html:71 msgid "Max rating:" msgstr "" @@ -5693,12 +6000,12 @@ msgstr "" msgid "Hide problems I've solved" msgstr "" -#: templates/user/user-problems.html:95 +#: templates/user/user-problems.html:96 #, python-format -msgid "%(points).1f points" -msgstr "" +msgid "%(group)s (%(val)s points)" +msgstr "%(group)s(%(val)s 分)" -#: templates/user/user-problems.html:112 +#: templates/user/user-problems.html:115 #, python-format msgid "%(points)s / %(total)s" msgstr "" diff --git a/locale/zh_Hant/LC_MESSAGES/djangojs.po b/locale/zh_Hant/LC_MESSAGES/djangojs.po index 965153776f..229a6274a8 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: 2019-10-01 23:12+0000\n" -"PO-Revision-Date: 2021-08-27 00:29\n" +"POT-Creation-Date: 2022-12-20 23:43+0000\n" +"PO-Revision-Date: 2022-12-21 00:43\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -17,14 +17,61 @@ msgstr "" "X-Crowdin-File: djangojs.po\n" "X-Crowdin-File-ID: 12\n" -#: resources/common.js:207 +#: resources/common.js:195 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:210 +#: resources/common.js:198 msgctxt "time format without day" msgid "%h:%m:%s" msgstr "%h:%m:%s" +#: resources/problem-vote.js:11 +msgid "Vote on problem points" +msgstr "" + +#: resources/problem-vote.js:16 +#, javascript-format +msgid "Unable to delete vote: %s" +msgstr "" + +#: resources/problem-vote.js:28 +#, javascript-format +msgid "Edit points vote (%s)" +msgstr "" + +#: resources/problem-vote.js:34 +#, javascript-format +msgid "Unable to cast vote: %s" +msgstr "" + +#: resources/problem-vote.js:63 +msgid "Number of votes for this point value" +msgstr "" + +#: resources/user_profile.js:47 +msgid "past year" +msgstr "" + +#: resources/user_profile.js:64 +msgid "%(cnt)d total submission" +msgid_plural "%(cnt)d total submissions" +msgstr[0] "" + +#: resources/user_profile.js:69 +msgid "%(cnt)d submission in the last year" +msgid_plural "%(cnt)d submissions in the last year" +msgstr[0] "" + +#: resources/user_profile.js:74 +msgid "%(cnt)d submission in %(year)d" +msgid_plural "%(cnt)d submissions in %(year)d" +msgstr[0] "" + +#: resources/user_profile.js:88 +msgid "%(cnt)d submission on %(date)s" +msgid_plural "%(cnt)d submissions on %(date)s" +msgstr[0] "" +