From 5732465ff28b0793d39ef5bc35acbb43b5db4ba5 Mon Sep 17 00:00:00 2001 From: dmoj-build Date: Mon, 5 Sep 2022 01:13:05 +0000 Subject: [PATCH] i18n: update translations from Crowdin --- locale/ar/LC_MESSAGES/django.po | 717 +++++++++++--------- locale/ca/LC_MESSAGES/django.po | 805 ++++++++++++---------- locale/de/LC_MESSAGES/django.po | 717 +++++++++++--------- locale/el/LC_MESSAGES/django.po | 825 ++++++++++++---------- locale/en/LC_MESSAGES/django.po | 725 +++++++++++--------- locale/es/LC_MESSAGES/django.po | 821 ++++++++++++---------- locale/fr/LC_MESSAGES/django.po | 978 +++++++++++++++------------ locale/hr/LC_MESSAGES/django.po | 729 +++++++++++--------- locale/hu/LC_MESSAGES/django.po | 759 ++++++++++++--------- locale/it/LC_MESSAGES/django.po | 717 +++++++++++--------- locale/ja/LC_MESSAGES/django.po | 779 +++++++++++---------- locale/ko/LC_MESSAGES/django.po | 785 +++++++++++---------- locale/lt/LC_MESSAGES/django.po | 717 +++++++++++--------- locale/nl/LC_MESSAGES/django.po | 717 +++++++++++--------- locale/pl/LC_MESSAGES/django.po | 731 +++++++++++--------- locale/pt/LC_MESSAGES/django.po | 717 +++++++++++--------- locale/ro/LC_MESSAGES/django.po | 883 +++++++++++++----------- locale/ru/LC_MESSAGES/django.po | 731 +++++++++++--------- locale/sr_Latn/LC_MESSAGES/django.po | 753 ++++++++++++--------- locale/tr/LC_MESSAGES/django.po | 769 ++++++++++++--------- locale/vi/LC_MESSAGES/django.po | 821 ++++++++++++---------- locale/zh_Hans/LC_MESSAGES/django.po | 817 ++++++++++++---------- locale/zh_Hant/LC_MESSAGES/django.po | 745 +++++++++++--------- 23 files changed, 9973 insertions(+), 7785 deletions(-) diff --git a/locale/ar/LC_MESSAGES/django.po b/locale/ar/LC_MESSAGES/django.po index 6ef0af16a0..d86f9e95ba 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-21 00:57\n" "Last-Translator: \n" "Language-Team: Arabic, Saudi Arabia\n" "Language: ar_SA\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "الكاتالونية" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "الألمانية" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "" + #: dmoj/settings.py:374 msgid "English" 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:190 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." @@ -146,6 +154,12 @@ msgstr "" msgid "Problem" msgstr "مسألة" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "الإعدادات" @@ -272,10 +286,6 @@ msgstr "افتراضي" msgid "link path" msgstr "سبيل الرابط" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "محتوى" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "ملخص" @@ -324,7 +334,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "" @@ -392,13 +402,13 @@ msgstr "" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "" @@ -408,8 +418,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 +436,7 @@ 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:77 @@ -488,7 +498,7 @@ msgstr "" #: judge/admin/submission.py:204 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] "" @@ -533,11 +543,11 @@ 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 @@ -659,106 +669,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "" @@ -841,7 +851,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "" @@ -924,7 +934,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "" @@ -932,7 +942,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:128 msgid "curators" msgstr "" @@ -940,7 +950,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:131 msgid "testers" msgstr "" @@ -976,7 +986,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -989,12 +999,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "" @@ -1031,7 +1041,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 +1056,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:182 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +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 @@ -1144,15 +1154,15 @@ 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/problem.py:166 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 +1177,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1180,7 +1190,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:162 msgid "personae non gratae" msgstr "" @@ -1342,14 +1352,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "" @@ -1445,6 +1455,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1485,7 +1503,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1542,7 +1560,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "" @@ -1554,7 +1572,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "" @@ -1562,10 +1580,6 @@ msgstr "" msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - #: judge/models/problem.py:63 msgid "link" msgstr "" @@ -1580,7 +1594,7 @@ msgid "short name" msgstr "" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1588,14 +1602,14 @@ msgid "icon" msgstr "" #: judge/models/problem.py:67 -msgid "URL to the icon" +msgid "URL to the icon." msgstr "" #: judge/models/problem.py:68 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "" @@ -1624,235 +1638,235 @@ msgid "problem code" msgstr "" #: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "" @@ -1917,7 +1931,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1973,11 +1987,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 +2003,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 +2015,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 +2023,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 +2039,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 @@ -2046,7 +2060,7 @@ 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 +2072,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 +2083,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 @@ -2099,7 +2109,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2173,7 +2183,7 @@ msgid "math engine" msgstr "" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2181,7 +2191,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2189,7 +2199,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2197,11 +2207,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2209,11 +2219,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2225,7 +2235,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2249,7 +2259,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2305,6 +2315,18 @@ msgstr "" msgid "state" msgstr "" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + #: judge/models/profile.py:366 msgid "reason" msgstr "" @@ -2342,7 +2364,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 +2444,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 +2452,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 @@ -3247,7 +3269,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3288,11 +3310,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3628,7 +3645,7 @@ msgstr "" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3662,13 +3679,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3732,7 +3744,7 @@ msgstr "" msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "" @@ -3799,10 +3811,20 @@ msgstr "" msgid "Ongoing contests" msgstr "" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3819,7 +3841,7 @@ msgstr "" 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 "" @@ -3882,7 +3904,7 @@ msgstr "" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "" @@ -3915,6 +3937,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -4017,7 +4051,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 +4068,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,14 +4076,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "" @@ -4192,8 +4256,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "" @@ -4227,36 +4291,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "" @@ -4278,7 +4362,7 @@ 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 @@ -4380,7 +4464,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4562,22 +4646,10 @@ msgstr "" msgid "Request" msgstr "" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "" @@ -5037,11 +5109,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -5072,7 +5145,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5085,41 +5158,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "" @@ -5128,7 +5197,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 +5230,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5176,6 +5249,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5193,19 +5267,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 "" @@ -5377,19 +5447,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 @@ -5515,10 +5589,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5551,136 +5621,151 @@ msgstr "" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5780,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 "" diff --git a/locale/ca/LC_MESSAGES/django.po b/locale/ca/LC_MESSAGES/django.po index fe49ee1f7b..93e21d4b48 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-22 00:59\n" "Last-Translator: \n" "Language-Team: Catalan\n" "Language: ca_ES\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Català" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Alemany" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Grec" + #: dmoj/settings.py:374 msgid "English" msgstr "Anglès" @@ -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:190 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." @@ -138,6 +146,12 @@ msgstr "Concursos inclosos" msgid "Problem" msgstr "Problema" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "Ajustaments" @@ -240,10 +254,6 @@ 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" @@ -292,7 +302,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Llenguatge" @@ -348,15 +358,15 @@ msgstr "zona horària" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" -msgstr "Zona Horària" +msgstr "Zona horària" #: judge/admin/profile.py:113 msgid "date joined" @@ -364,22 +374,22 @@ 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:77 msgid "Description" @@ -440,7 +450,7 @@ msgstr "Rejutja els enviaments seleccionats" #: judge/admin/submission.py:204 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." @@ -481,12 +491,12 @@ 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" @@ -599,106 +609,106 @@ 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." +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:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "El codi Scratch no és vàlid." -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "Subscriure's als canvis en els concursos" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "Activa les actualitzacions experimentals" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, 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." -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "Descarregar comentaris?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "Descarregar enviaments?" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "Filtrar per el glob del codi de problema:" -#: judge/forms.py:103 +#: judge/forms.py:99 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:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtra per resultats:" -#: judge/forms.py:112 +#: judge/forms.py:108 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:134 msgid "Any judge" msgstr "Qualsevol jutge" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Contrasenya" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "Longitud del codi invàlida." -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "Resposta WebAuthn invàlida." -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "No hi ha hagut resposta WebAuthn." -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "Credencial WebAuthn invàlida." -#: judge/forms.py:262 +#: judge/forms.py:258 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:262 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:266 judge/models/problem.py:120 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:271 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:276 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:281 msgid "Contest with key already exists." msgstr "Ja existeix un concurs amb aquesta clau." @@ -781,7 +791,7 @@ msgid "comments" msgstr "comentaris" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "Editorial de %s" @@ -864,7 +874,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:512 msgid "authors" msgstr "autors/es" @@ -872,7 +882,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:128 msgid "curators" msgstr "conservadors/es" @@ -880,7 +890,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:131 msgid "testers" msgstr "testers" @@ -916,7 +926,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:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "problemes" @@ -929,12 +939,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:138 +#: judge/models/problem.py:494 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:156 msgid "publicly visible" msgstr "visible públicament" @@ -971,7 +981,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 +996,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:182 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:180 #: 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 +1086,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 +1094,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/problem.py:166 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 +1117,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:168 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 +1130,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:162 msgid "personae non gratae" msgstr "persones non grates" @@ -1194,7 +1204,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" @@ -1282,14 +1292,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "punts" @@ -1385,6 +1395,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:61 +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 +1443,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:510 msgid "public visibility" msgstr "visibilitat pública" @@ -1482,7 +1500,7 @@ msgstr "nom de la categoria del problema" msgid "problem type" msgstr "tipus del problema" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "tipus de problemes" @@ -1494,7 +1512,7 @@ msgstr "ID del grup del problema" msgid "problem group name" msgstr "nom del grup del problema" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "grup del problema" @@ -1502,10 +1520,6 @@ msgstr "grup del problema" msgid "problem groups" msgstr "grups del problema" -#: judge/models/problem.py:61 -msgid "key" -msgstr "clau" - #: judge/models/problem.py:63 msgid "link" msgstr "enllaç" @@ -1520,22 +1534,22 @@ 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" +msgid "Displayed on pages under this license." +msgstr "Mostrat en pàgines sota aquesta llicència." #: judge/models/problem.py:67 msgid "icon" msgstr "icona" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL de l'icona" +msgid "URL to the icon." +msgstr "URL de la icona." #: judge/models/problem.py:68 msgid "license text" msgstr "text de la llicència" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "llicència" @@ -1564,235 +1578,235 @@ 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/" +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:122 msgid "problem name" msgstr "nom del problema" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 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:124 msgid "problem body" msgstr "cos del problema" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "creadors/es" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 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:137 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:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "curt circuit" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "permetre punts parcials" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "llenguatges permesos" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "Llista de llenguatges d'enviament permesos." -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "operat manualment" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 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:159 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:161 +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:163 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:165 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:167 msgid "problem summary" msgstr "resum del problema" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "nombre d'usuaris" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 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:171 msgid "solve rate" msgstr "percentatge d'usuaris que han resolt el problema" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "permet fer servir la llibreria sencera de Markdown" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 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:454 msgid "See hidden problems" msgstr "Veure problemes ocults" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "Editar problemes propis" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "Editar tots els problemes" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "Editar tots els problemes públics" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 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:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "Clonar problema" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "Cambiar camp is_public" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "Cambiar camp is_manually_managed" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 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:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "llenguatge" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "nom traduït" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "descripció traduïda" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "traducció del problema" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "traduccions del problema" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "problema aclarit" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "cos de l'aclariment" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "marca de temps de l'aclariment" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "límit de recursos específics per llenguatge" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "límits de recursos específics per llenguatge" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "problema associat" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "data de publicació" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "contingut de l'editorial" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "Veure solucions ocultes" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "solució" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "solucions" @@ -1857,8 +1871,8 @@ 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" +msgid "Checker arguments as a JSON object." +msgstr "Arguments del verificador como un objecte JSON." #: judge/models/problem_data.py:77 msgid "problem data set" @@ -1913,12 +1927,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 +1943,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 +1955,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 +1979,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 @@ -1986,7 +2000,7 @@ 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 +2012,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 +2023,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 @@ -2039,8 +2049,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" @@ -2113,48 +2123,48 @@ 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" +msgid "The rendering engine used to render math." +msgstr "El motor fet servir per a representar les matemàtiques." #: judge/models/profile.py:179 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" +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 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" +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 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" +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" +msgid "TOTP key must be empty or Base32." +msgstr "La clau TOTP ha d'estar buida o ser Base32." #: judge/models/profile.py:187 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" +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" +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 msgid "last TOTP timecode" @@ -2165,8 +2175,8 @@ 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" +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 msgid "API token must be None or hexadecimal" @@ -2189,7 +2199,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2245,6 +2255,18 @@ msgstr "data de solicitud" msgid "state" msgstr "estat" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Pendent" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Aprovat" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Rebutjat" + #: judge/models/profile.py:366 msgid "reason" msgstr "motiu" @@ -2282,8 +2304,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 +2384,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" @@ -3167,8 +3189,8 @@ msgstr "L'usuari que estas intentant expulsar no existeix!" #: judge/views/organization.py:377 #, 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 #, python-brace-format @@ -3208,11 +3230,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3544,7 +3561,7 @@ msgstr "j M Y, G:i" msgid "Preparing your data..." msgstr "Preparant les teves dates..." -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "Descarrega les teves dades" @@ -3578,14 +3595,9 @@ msgstr "Taula de classificació" 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:518 +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?" @@ -3648,7 +3660,7 @@ msgstr "Tanca la sessió" msgid "Log in" msgstr "Iniciar sessió" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "o" @@ -3715,10 +3727,20 @@ msgstr "No s'han fet aclariments de moment." msgid "Ongoing contests" msgstr "Concursos en curs" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "Concursos propers" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "Fil de comentaris" @@ -3735,7 +3757,7 @@ msgstr "Els meus tickets oberts" 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" @@ -3798,7 +3820,7 @@ msgstr "Nou comentari" msgid "Invalid comment body." msgstr "Cos de comentari invàlid." -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "Publica!" @@ -3831,6 +3853,18 @@ msgstr "Puntuació" msgid "No votes" msgstr "Sense vots" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 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." @@ -3933,7 +3967,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 +3984,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,14 +3992,44 @@ 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." +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" + #: templates/contest/contest.html:43 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,8 +4160,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "Usuaris" @@ -4131,36 +4195,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "Concursos en Curs" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" msgstr "Concursos Propers" -#: 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "Concursos Anteriors" @@ -4182,7 +4266,7 @@ 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 @@ -4284,8 +4368,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 @@ -4466,22 +4550,10 @@ msgstr "El teu motiu per a unir-te:" msgid "Request" msgstr "Sol·licitud" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Pendent" - #: 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" @@ -4921,11 +4993,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4956,7 +5029,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:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continua >" @@ -4969,41 +5042,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "Organitzacions afiliades" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "Registra't!" @@ -5012,8 +5081,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 +5114,17 @@ msgid "Enable Two Factor Authentication" msgstr "Activar Autenticació en Dos Passos" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5133,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5151,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 "" @@ -5261,20 +5331,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)" @@ -5395,10 +5469,6 @@ 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:364 msgid "Associated object" msgstr "Objecte associat" @@ -5431,137 +5501,152 @@ msgstr "Classificació" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +msgid "You will not be able to view your scratch codes after you leave this page!" +msgstr "No podràs veure els teus codis Scratch després de que deixis aquesta pàgina!" + +#: templates/user/edit-profile.html:278 msgid "Self-description" msgstr "Auto-descripció" -#: templates/user/edit-profile.html:291 +#: 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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "Tema de l'editor" -#: templates/user/edit-profile.html:305 +#: templates/user/edit-profile.html:299 msgid "Math engine" msgstr "Motor matemàtic" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "Canviar avatar" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "Canvia la teva contrasenya" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 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:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "Inhabilita" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "Codis Scratch:" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "Ocult" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "S'ha desactivat l'autenticació de dos passos" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "Habilita" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "Token de l'API" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "Claus de seguretat" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "Eliminar" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 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:429 msgid "Add" msgstr "Afegir" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "Script d'usuari" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5660,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" diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 7b2f3a53d5..5b294f659c 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-21 00:58\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Katalanisch" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Deutsch" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "" + #: dmoj/settings.py:374 msgid "English" msgstr "Englisch" @@ -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:190 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." @@ -138,6 +146,12 @@ msgstr "" msgid "Problem" msgstr "Problem" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "Einstellungen" @@ -240,10 +254,6 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" @@ -292,7 +302,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Programmiersprache" @@ -348,13 +358,13 @@ msgstr "" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "" @@ -364,8 +374,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 +388,7 @@ 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:77 @@ -440,7 +450,7 @@ msgstr "" #: judge/admin/submission.py:204 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] "" @@ -481,11 +491,11 @@ 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 @@ -599,106 +609,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "" @@ -781,7 +791,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "" @@ -864,7 +874,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "" @@ -872,7 +882,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:128 msgid "curators" msgstr "" @@ -880,7 +890,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:131 msgid "testers" msgstr "" @@ -916,7 +926,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -929,12 +939,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "" @@ -971,7 +981,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 +996,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:182 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1086,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 +1094,15 @@ 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/problem.py:166 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 +1117,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1120,7 +1130,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:162 msgid "personae non gratae" msgstr "" @@ -1282,14 +1292,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "" @@ -1385,6 +1395,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1425,7 +1443,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1482,7 +1500,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "" @@ -1494,7 +1512,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "" @@ -1502,10 +1520,6 @@ msgstr "" msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - #: judge/models/problem.py:63 msgid "link" msgstr "" @@ -1520,7 +1534,7 @@ msgid "short name" msgstr "" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1528,14 +1542,14 @@ msgid "icon" msgstr "" #: judge/models/problem.py:67 -msgid "URL to the icon" +msgid "URL to the icon." msgstr "" #: judge/models/problem.py:68 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "" @@ -1564,235 +1578,235 @@ msgid "problem code" msgstr "" #: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "" @@ -1857,7 +1871,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1913,11 +1927,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 +1943,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 +1955,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 +1963,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 +1979,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 @@ -1986,7 +2000,7 @@ 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 +2012,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 +2023,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 @@ -2039,7 +2049,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2113,7 +2123,7 @@ msgid "math engine" msgstr "" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2121,7 +2131,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2129,7 +2139,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2137,11 +2147,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2149,11 +2159,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2165,7 +2175,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2189,7 +2199,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2245,6 +2255,18 @@ msgstr "" msgid "state" msgstr "" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + #: judge/models/profile.py:366 msgid "reason" msgstr "" @@ -2282,7 +2304,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 +2384,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 +2392,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 @@ -3167,7 +3189,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3208,11 +3230,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3544,7 +3561,7 @@ msgstr "" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3578,13 +3595,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3648,7 +3660,7 @@ msgstr "" msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "" @@ -3715,10 +3727,20 @@ msgstr "" msgid "Ongoing contests" msgstr "" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3735,7 +3757,7 @@ msgstr "" 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 "" @@ -3798,7 +3820,7 @@ msgstr "" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "" @@ -3831,6 +3853,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3933,7 +3967,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 +3984,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,14 +3992,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "" @@ -4096,8 +4160,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "" @@ -4131,36 +4195,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "" @@ -4182,7 +4266,7 @@ 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 @@ -4284,7 +4368,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4466,22 +4550,10 @@ msgstr "" msgid "Request" msgstr "" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "" @@ -4921,11 +4993,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4956,7 +5029,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4969,41 +5042,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "" @@ -5012,7 +5081,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 +5114,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5133,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5151,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 "" @@ -5261,19 +5331,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 @@ -5395,10 +5469,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5431,136 +5501,151 @@ msgstr "" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5660,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 "" diff --git a/locale/el/LC_MESSAGES/django.po b/locale/el/LC_MESSAGES/django.po index ec44414bd3..0d7a7afdd3 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-22 01:00\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Καταλανικά" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Γερμανικά" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Ελληνικά" + #: dmoj/settings.py:374 msgid "English" 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:190 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." @@ -138,6 +146,12 @@ msgstr "Συμπεριλαμβανόμενοι διαγωνισμοί" msgid "Problem" msgstr "Πρόβλημα" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "Ρυθμίσεις" @@ -240,10 +254,6 @@ msgstr "εικονικό" msgid "link path" msgstr "διαδρομή συνδέσμου" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Περιεχόμενο" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Περίληψη" @@ -292,7 +302,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Γλώσσα" @@ -348,13 +358,13 @@ msgstr "ζώνη ώρας" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "Ζώνη ώρας" @@ -364,8 +374,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 +388,8 @@ 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:77 msgid "Description" @@ -440,7 +450,7 @@ msgstr "Επανεξέταση των επιλεγμένων υποβολών" #: judge/admin/submission.py:204 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 υποβολές αναβαθμολογήθηκαν επιτυχώς." @@ -481,12 +491,12 @@ 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" @@ -599,106 +609,106 @@ msgid "Invalid two-factor authentication token." msgstr "Μη έγκυρο διακριτικό ελέγχου ταυτότητας δύο παραγόντων." #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "Οι κωδικοί scratch πρέπει να είναι 16 χαρακτήρες βάσης32." -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "Μη έγκυρος κωδικός scratch." -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "Εγγραφείτε σε ενημερώσεις διαγωνισμού" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "Ενεργοποίηση πειραματικών λειτουργιών" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "Δεν μπορείτε να είστε μέλος σε περισσότερους από {count} δημόσιους οργανισμούς." -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "Λήψη σχολίων;" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "Λήψη υποβολών;" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "Φιλτράρισμα ανά glob κώδικα προγράμματος:" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "Αφήστε κενό για να συμπεριλάβετε όλες τις υποβολές" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Φιλτράρισμα κατά αποτέλεσμα:" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "Παρακαλώ επιλέξτε τουλάχιστον ένα πράγμα για λήψη." -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "Οποιοσδήποτε κριτής" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Κωδικόs πρόσβασης" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "Μη έγκυρο μήκος κωδικού." -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "Άκυρη WebAuthn απάντηση." -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "Δεν υπάρχει πρόκληση WebAuthn." -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "Μη έγκυρο αναγνωριστικό ID διαπιστευτηρίου WebAuthn." -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "Μη έγκυρο διακριτικό ελέγχου ταυτότητας δύο παραγόντων ή κωδικού scratch." -#: judge/forms.py:266 +#: judge/forms.py:262 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:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Ο κωδικός προβλήματος πρέπει να είναι ^[a-z0-9]+$" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "Πρόβλημα με αυτόν τον κωδικό υπάρχει ήδη." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "Το αναγνωριστικό του διαγωνισμού πρέπει να είναι ^[a-z0-9]+$" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "Διαγωνισμός με αυτό το κλειδί υπάρχει ήδη." @@ -781,7 +791,7 @@ msgid "comments" msgstr "σχόλια" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "Εξήγηση για %s" @@ -864,7 +874,7 @@ msgid "contest name" msgstr "όνομα διαγωνισμού" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "συγγραφείς" @@ -872,7 +882,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:128 msgid "curators" msgstr "επιμελητές" @@ -880,7 +890,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:131 msgid "testers" msgstr "δοκιμαστές" @@ -916,7 +926,7 @@ msgstr "Αυτοί οι χρήστες θα είναι σε θέση να παρ msgid "description" msgstr "περιγραφή" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "προβλήματα" @@ -929,12 +939,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "χρονικό όριο" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "δημόσια ορατό" @@ -971,8 +981,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 +996,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:182 msgid "private to organizations" msgstr "ιδιωτικό για οργανισμούς" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1086,24 @@ 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/problem.py:166 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 +1117,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "Απλό κείμενο, που εμφανίζεται στην ετικέτα meta, π.χ. για τα μέσα κοινωνικής δικτύωσης." @@ -1120,7 +1130,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:162 msgid "personae non gratae" msgstr "personae non gratae" @@ -1282,14 +1292,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "πόντοι" @@ -1385,6 +1395,14 @@ msgstr "αποτέλεσμα διαγωνισμού moss" msgid "contest moss results" msgstr "αποτελέσματα διαγωνισμού moss" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "κλειδί" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "τιμή" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "στοιχείο ρυθμίσεων" @@ -1425,7 +1443,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:510 msgid "public visibility" msgstr "δημόσια ορατότητα" @@ -1482,7 +1500,7 @@ msgstr "όνομα κατηγορίας προβλήματος" msgid "problem type" msgstr "τύπος προβλήματος" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "τύποι προβλήματος" @@ -1494,7 +1512,7 @@ msgstr "ID ομάδας προβλημάτων" msgid "problem group name" msgstr "όνομα ομάδας προβλημάτων" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "ομάδα προβλημάτων" @@ -1502,10 +1520,6 @@ msgstr "ομάδα προβλημάτων" msgid "problem groups" msgstr "ομάδες προβλημάτων" -#: judge/models/problem.py:61 -msgid "key" -msgstr "κλειδί" - #: judge/models/problem.py:63 msgid "link" msgstr "σύνδεσμος" @@ -1520,22 +1534,22 @@ msgid "short name" msgstr "υποκοριστικό ονόματος" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "Εμφανίζεται σε σελίδες με αυτή την άδεια χρήσης" +msgid "Displayed on pages under this license." +msgstr "Εμφανίζεται σε σελίδες με αυτή την άδεια χρήσης." #: judge/models/problem.py:67 msgid "icon" msgstr "εικονίδιο" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL για το εικονίδιο" +msgid "URL to the icon." +msgstr "URL για το εικονίδιο." #: judge/models/problem.py:68 msgid "license text" msgstr "κείμενο άδειας χρήσης" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "άδεια" @@ -1564,235 +1578,235 @@ 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/" +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:122 msgid "problem name" msgstr "όνομα προβλήματος" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "Το πλήρες όνομα του προβλήματος, όπως φαίνεται στη λίστα προβλημάτων." -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "σώμα προβλήματος" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "δημιουργοί" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "Ο τύπος του προβλήματος, όπως εμφανίζεται στη σελίδα του προβλήματος." -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "Η ομάδα του προβλήματος, όπως εμφανίζεται στην Κατηγορία στη λίστα προβλημάτων." -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "βραχυκύκλωμα" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "επιτρέπεται μερική βαθμολόγηση" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "επιτρεπόμενες γλώσσες" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "Λίστα επιτρεπόμενων γλωσσών υποβολής." -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "χειροκίνητη διαχείριση" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "Αν οι κριτές θα επιτρέπεται να διαχειρίζονται δεδομένα ή όχι." -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." +msgstr "Δεν έχει μαγική ικανότητα αυτόματης δημοσίευσης λόγω οπισθόδρομης συμβατότητας." -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "Απαγορεύει στους επιλεγμένους χρήστες την υποβολή σε αυτό το πρόβλημα." -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "Η άδεια χρήσης υπό την οποία δημοσιεύεται αυτό το πρόβλημα." -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "σύνοψη προβλήματος" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "αριθμός χρηστών" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "Ο αριθμός των χρηστών που έλυσαν το πρόβλημα." -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "ρυθμός επίλυσης" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "επιτρέπει πλήρη πρόσβαση markdown" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "ορατότητα πηγής υποβολής" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "Εάν ιδιωτικό, μόνο αυτοί οι οργανισμοί μπορούν να δουν το πρόβλημα." -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "Δείτε κρυμμένα προβλήματα" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "Επεξεργασία δικών σας προβλημάτων" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "Επεξεργασία όλων των προβλημάτων" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "Επεξεργασία όλων των δημόσιων προβλημάτων" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "Επεξεργασία προβλημάτων με πλήρη markup" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "Κλωνοποίηση προβλήματος" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "Αλλαγή is_public πεδίου" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "Αλλαγή is_manually_managed πεδίου" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "Δείτε ιδιωτικά-οργανισμών προβλήματα" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "γλώσσα" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "μεταφρασμένο όνομα" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "μεταφρασμένη περιγραφή" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "μετάφραση προβλήματος" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "μεταφράσεις προβλήματος" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "διευκρινισμένο πρόβλημα" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "σώμα διευκρίνησης" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "χρονοσφραγίδα διευκρίνησης" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "διευκρίνηση προβλήματος" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "διευκρινίσεις προβλήματος" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "ειδικό όριο πόρων για τη γλώσσα" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "ειδικά όρια πόρων για τη γλώσσα" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "συσχετιζόμενο πρόβλημα" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "ημερομηνία δημοσίευσης" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "περιεχόμενο εξήγησης" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "Δείτε κρυφές λύσεις" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "λύση" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "λύσεις" @@ -1857,8 +1871,8 @@ 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" +msgid "Checker arguments as a JSON object." +msgstr "Ορίσματα ελεγκτή ως αντικείμενο JSON." #: judge/models/problem_data.py:77 msgid "problem data set" @@ -1913,12 +1927,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 +1943,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 +1955,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 +1979,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" @@ -1986,8 +2000,8 @@ 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 +2012,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 +2023,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" @@ -2039,8 +2049,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" @@ -2113,48 +2123,48 @@ msgid "math engine" msgstr "μηχανή μαθηματικών" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "η μηχανή απεικόνισης που χρησιμοποιείται για την απεικόνιση μαθηματικών" +msgid "The rendering engine used to render math." +msgstr "Η μηχανή απεικόνισης που χρησιμοποιείται για την απεικόνιση μαθηματικών." #: judge/models/profile.py:179 msgid "TOTP 2FA enabled" msgstr "TOTP 2FA ενεργοποιημένο" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" -msgstr "τσεκάρετε για να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων βάσει TOTP" +msgid "Check to enable TOTP-based two-factor authentication." +msgstr "Τσεκάρετε για να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων βάσει TOTP." #: judge/models/profile.py:181 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn 2FA ενεργοποιημένο" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" -msgstr "τσεκάρετε για να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων βάσει WebAuthn" +msgid "Check to enable WebAuthn-based two-factor authentication." +msgstr "Τσεκάρετε για να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων βάσει WebAuthn." #: judge/models/profile.py:183 msgid "TOTP key" msgstr "TOTP κλειδί" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" -msgstr "32 χαρακτήρων βάσης32-κωδικοποιημένο κλειδί για TOTP" +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" +msgid "TOTP key must be empty or Base32." +msgstr "Το κλειδί TOTP πρέπει να είναι άδειο ή βάσης32." #: judge/models/profile.py:187 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" +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" +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 msgid "last TOTP timecode" @@ -2165,8 +2175,8 @@ msgid "API token" msgstr "Διακριτικό API" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" -msgstr "hex-κωδικοποιημένο διακριτικό πρόσβασης API 64 χαρακτήρων" +msgid "64-character hex-encoded API access token." +msgstr "Hex-κωδικοποιημένο διακριτικό πρόσβασης API 64 χαρακτήρων." #: judge/models/profile.py:198 msgid "API token must be None or hexadecimal" @@ -2189,8 +2199,8 @@ msgid "display name override" msgstr "παράκαμψη εμφάνιση ονόματος" #: judge/models/profile.py:203 -msgid "name displayed in place of username" -msgstr "εμφάνιση ονόματος στη θέση του ονόματος χρήστη" +msgid "Name displayed in place of username." +msgstr "Εμφάνιση ονόματος στη θέση του ονόματος χρήστη." #: judge/models/profile.py:317 msgid "Shows in-progress development stuff" @@ -2206,7 +2216,7 @@ msgstr "προφίλ χρήστη" #: judge/models/profile.py:321 msgid "user profiles" -msgstr "προφίλ χρήστη" +msgstr "προφίλ χρηστών" #: judge/models/profile.py:327 msgid "device name" @@ -2245,6 +2255,18 @@ msgstr "ώρα αιτήματος" msgid "state" msgstr "κατάσταση" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Εκκρεμεί" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Εγκρίθηκε" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Απορρίφθηκε" + #: judge/models/profile.py:366 msgid "reason" msgstr "αιτία" @@ -2282,8 +2304,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 +2384,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" @@ -3167,8 +3189,8 @@ msgstr "Ο χρήστης που προσπαθείτε να αποβάλλετ #: judge/views/organization.py:377 #, 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 #, python-brace-format @@ -3208,11 +3230,6 @@ msgstr "Δεν υπάρχει τέτοια εξήγηση" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3544,7 +3561,7 @@ msgstr "j M Y, G:i" msgid "Preparing your data..." msgstr "Προετοιμασία των δεδομένων σας..." -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "Λήψη των δεδομένων σας" @@ -3578,14 +3595,9 @@ msgstr "Πίνακας Κατάταξης" 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:518 +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?" @@ -3648,7 +3660,7 @@ msgstr "Αποσύνδεση" msgid "Log in" msgstr "Σύνδεση" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "ή" @@ -3715,10 +3727,20 @@ msgstr "Δεν έχουν γίνει διευκρινίσεις μέχρι στ msgid "Ongoing contests" msgstr "Διαγωνισμοί σε εξέλιξη" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "Επερχόμενοι διαγωνισμοί" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "Ροή σχολίων" @@ -3735,7 +3757,7 @@ msgstr "Τα ανοιχτά μου αιτήματα" 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 "Σχόλια" @@ -3798,7 +3820,7 @@ msgstr "Νέο σχόλιο" msgid "Invalid comment body." msgstr "Μη έγκυρο σώμα σχολίου." -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "Ανάρτηση!" @@ -3831,6 +3853,18 @@ msgstr "Βαθμολογία" msgid "No votes" msgstr "Δεν υπάρχουν ψήφοι" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "Μη έγκυρος κωδικός πρόσβασης." @@ -3933,7 +3967,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 +3984,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,14 +3992,44 @@ 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 "Εικονική συμμετοχή." +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "j F Y, G:i T" @@ -4096,8 +4160,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "Χρήστες" @@ -4131,36 +4195,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "Διαγωνισμοί Σε Εξέλιξη" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "Παλαιότεροι Διαγωνισμοί" @@ -4182,7 +4266,7 @@ 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 @@ -4284,8 +4368,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 @@ -4466,22 +4550,10 @@ msgstr "Ο λόγος για την εγγραφή σας:" msgid "Request" msgstr "Αίτηση" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "Αποβολή" @@ -4921,11 +4993,12 @@ msgstr "Ξεχάσατε τον κωδικό σας στο %(site_name)s; Μην 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 στο" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "Τα λέμε σύντομα!" @@ -4956,7 +5029,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:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Συνέχεια >" @@ -4969,41 +5042,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "Συνδεδεμένοι οργανισμοί" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "Με την εγγραφή σας, συμφωνείτε με τους [Όροι & Προϋποθέσεις][0] μας." -#: templates/registration/registration_form.html:205 -msgid "Terms & Conditions" -msgstr "Όροι & Προϋποθέσεις" - -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "Εγγραφή!" @@ -5012,8 +5081,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 +5114,17 @@ msgid "Enable Two Factor Authentication" msgstr "Ενεργοποίηση Ταυτοποίησης Δύο Παραγόντων" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "Παρακάτω είναι μια λίστα μίας χρήσης κωδικών scratch." #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "Μπορείτε να χρησιμοποιήσετε αυτούς τους κωδικούς για να συνδεθείτε στο λογαριασμό σας ή να απενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων." @@ -5060,6 +5133,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:379 msgid "Please write these down and keep them in a secure location." msgstr "Παρακαλώ καταγράψτε και αποθηκεύστε τους σε ασφαλές σημείο." @@ -5077,19 +5151,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-χαρακτήρων:" @@ -5261,20 +5331,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)" @@ -5395,10 +5469,6 @@ 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:364 msgid "Associated object" msgstr "Συσχετιζόμενο αντικείμενο" @@ -5431,137 +5501,152 @@ msgstr "Βαθμίδα" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "Μοτίβο συντάκτη" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "Αλλάξτε το avatar σας" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "Αλλάξτε τον κωδικό σας" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "Η ταυτοποίηση δύο παραγόντων είναι ενεργοποιημένη" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "Απενεργοποίηση" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "Ανανέωση" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "Κωδικοί Scratch:" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "Κρυφό" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "Η ταυτοποίηση δύο παραγόντων είναι απενεργοποιημένη" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "Ενεργοποίηση" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "API Διακριτικό" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "Κλειδιά ασφαλείας" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "Διαγραφή" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "Εισάγετε όνομα για αυτό το κλειδί" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "Προσθήκη" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "Script χρήστη" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5660,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 "Λήψη δεδομένων" diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 03ed00dfc3..23647666a4 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: 2022-08-21 00:57+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,14 +18,18 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "" + #: dmoj/settings.py:374 msgid "English" 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:190 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." @@ -139,6 +147,12 @@ msgstr "" msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "" @@ -241,10 +255,6 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" @@ -293,7 +303,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "" @@ -349,13 +359,13 @@ msgstr "" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "" @@ -365,8 +375,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 +389,7 @@ 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:77 @@ -441,7 +451,7 @@ msgstr "" #: judge/admin/submission.py:204 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] "" @@ -482,11 +492,11 @@ 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 @@ -621,106 +631,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "" @@ -803,7 +813,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "" @@ -886,7 +896,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "" @@ -894,7 +904,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:128 msgid "curators" msgstr "" @@ -904,7 +914,7 @@ msgid "" "authors." msgstr "" -#: judge/models/contest.py:77 judge/models/problem.py:133 +#: judge/models/contest.py:77 judge/models/problem.py:131 msgid "testers" msgstr "" @@ -942,7 +952,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -955,12 +965,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "" @@ -999,7 +1009,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 +1024,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:182 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1119,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 +1127,15 @@ 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/problem.py:166 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 +1151,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1156,7 +1166,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:162 msgid "personae non gratae" msgstr "" @@ -1325,14 +1335,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "" @@ -1429,6 +1439,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1469,7 +1487,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1526,7 +1544,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "" @@ -1538,7 +1556,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "" @@ -1546,10 +1564,6 @@ msgstr "" msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - #: judge/models/problem.py:63 msgid "link" msgstr "" @@ -1564,7 +1578,7 @@ msgid "short name" msgstr "" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1572,14 +1586,14 @@ msgid "icon" msgstr "" #: judge/models/problem.py:67 -msgid "URL to the icon" +msgid "URL to the icon." msgstr "" #: judge/models/problem.py:68 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "" @@ -1608,243 +1622,243 @@ msgid "problem code" msgstr "" #: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 msgid "memory limit" msgstr "" -#: judge/models/problem.py:147 +#: judge/models/problem.py:144 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:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 msgid "date of publishing" msgstr "" -#: judge/models/problem.py:163 +#: judge/models/problem.py:161 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:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "" @@ -1909,7 +1923,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1965,11 +1979,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 +1995,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 +2007,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 +2017,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 +2035,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 @@ -2043,7 +2057,7 @@ 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 +2069,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 +2080,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 @@ -2096,7 +2106,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2170,7 +2180,7 @@ msgid "math engine" msgstr "" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2178,7 +2188,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2186,7 +2196,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2194,11 +2204,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2206,12 +2216,12 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +"Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2223,7 +2233,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2247,7 +2257,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2303,6 +2313,18 @@ msgstr "" msgid "state" msgstr "" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + #: judge/models/profile.py:366 msgid "reason" msgstr "" @@ -2345,7 +2367,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 +2453,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 +2461,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 @@ -3242,7 +3264,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3283,11 +3305,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3625,7 +3642,7 @@ msgstr "" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3659,13 +3676,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3729,7 +3741,7 @@ msgstr "" msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "" @@ -3796,10 +3808,20 @@ msgstr "" msgid "Ongoing contests" msgstr "" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3816,7 +3838,7 @@ msgstr "" 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 "" @@ -3879,7 +3901,7 @@ msgstr "" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "" @@ -3912,6 +3934,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -4014,7 +4048,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 +4065,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,14 +4073,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "" @@ -4194,8 +4258,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "" @@ -4231,36 +4295,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "" @@ -4285,7 +4369,7 @@ 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 @@ -4387,7 +4471,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4577,22 +4661,10 @@ msgstr "" msgid "Request" msgstr "" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "" @@ -5049,13 +5121,14 @@ msgid "" "below." msgstr "" -#: templates/registration/password_reset_email.html:15 +#: templates/registration/password_reset_email.html:16 +#, python-format msgid "" -"See you soon! If you have problems resetting your email, feel free to shoot " -"us an email at" +"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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -5088,7 +5161,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5103,41 +5176,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +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:213 msgid "Register!" msgstr "" @@ -5148,9 +5217,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 +5252,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "" "You can use these codes to login to your account or disable two-factor " "authentication." @@ -5202,6 +5275,7 @@ msgid "" msgstr "" #: templates/registration/totp_enable.html:102 +#: templates/user/edit-profile.html:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5224,21 +5298,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 "" @@ -5414,19 +5482,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 @@ -5551,10 +5623,6 @@ msgid "" "a problem, ask in the comments instead." msgstr "" -#: templates/ticket/ticket.html:356 -msgid "Post" -msgstr "" - #: templates/ticket/ticket.html:364 msgid "Associated object" msgstr "" @@ -5587,137 +5655,156 @@ msgstr "" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5819,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 "" diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 1c81ebfe82..a7a69551b3 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-23 01:08\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Catalán" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Alemán" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Griego" + #: dmoj/settings.py:374 msgid "English" msgstr "Inglés" @@ -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:190 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." @@ -138,6 +146,12 @@ msgstr "Concursos incluidos" msgid "Problem" msgstr "Problema" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "Ajustes" @@ -240,10 +254,6 @@ 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" @@ -292,7 +302,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Lenguaje" @@ -348,13 +358,13 @@ msgstr "zona horaria" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "Zona horaria" @@ -364,8 +374,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 +388,8 @@ 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:77 msgid "Description" @@ -440,7 +450,7 @@ msgstr "Rejuzgar los envíos seleccionados" #: judge/admin/submission.py:204 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." @@ -481,12 +491,12 @@ 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" @@ -599,106 +609,106 @@ 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." +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:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "Código de scratch inválido." -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "Subscribirse en las actualizaciones de los concursos" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "Habilitar las actualizaciones experimentales" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, 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." -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "¿Descargar comentarios?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "¿Descargar envíos?" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "Filtrar por código glob del problema:" -#: judge/forms.py:103 +#: judge/forms.py:99 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:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtrar por resultado:" -#: judge/forms.py:112 +#: judge/forms.py:108 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:134 msgid "Any judge" msgstr "Cualquier juez" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Contraseña" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "Longitud de código inválida." -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "Respuesta WebAuthn inválida." -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "Ningúna respuesta de WebAuthn emitida." -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "ID de credencial de WebAuthn inválida." -#: judge/forms.py:262 +#: judge/forms.py:258 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:262 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:266 judge/models/problem.py:120 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:271 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:276 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:281 msgid "Contest with key already exists." msgstr "Ya existe un concurso con esta llave primaria." @@ -781,7 +791,7 @@ msgid "comments" msgstr "comentarios" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "Editorial para %s" @@ -864,7 +874,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:512 msgid "authors" msgstr "autores" @@ -872,7 +882,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:128 msgid "curators" msgstr "curadores" @@ -880,7 +890,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:131 msgid "testers" msgstr "probadores" @@ -916,7 +926,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:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "problemas" @@ -929,12 +939,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:138 +#: judge/models/problem.py:494 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:156 msgid "publicly visible" msgstr "publicidad visible" @@ -971,7 +981,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 +996,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:182 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:180 #: 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 +1086,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 +1094,16 @@ 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/problem.py:166 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 +1117,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:168 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 +1130,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:162 msgid "personae non gratae" msgstr "persona no grata" @@ -1266,12 +1276,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" @@ -1282,14 +1292,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "puntos" @@ -1385,6 +1395,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:61 +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 +1443,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:510 msgid "public visibility" msgstr "visibilidad pública" @@ -1482,7 +1500,7 @@ msgstr "nombre de categoría de problema" msgid "problem type" msgstr "tipo de problema" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "tipos de problema" @@ -1494,7 +1512,7 @@ msgstr "ID de grupo de problema" msgid "problem group name" msgstr "nombre de grupo de problema" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "grupo de problema" @@ -1502,10 +1520,6 @@ msgstr "grupo de problema" msgid "problem groups" msgstr "grupos de problemas" -#: judge/models/problem.py:61 -msgid "key" -msgstr "llave" - #: judge/models/problem.py:63 msgid "link" msgstr "enlace" @@ -1520,22 +1534,22 @@ 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" +msgid "Displayed on pages under this license." +msgstr "Mostrar en páginas bajo esta licencia." #: judge/models/problem.py:67 msgid "icon" msgstr "icono" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL al icono" +msgid "URL to the icon." +msgstr "URL al icono." #: judge/models/problem.py:68 msgid "license text" msgstr "texto de licencia" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "licencia" @@ -1564,235 +1578,235 @@ 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/" +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:122 msgid "problem name" msgstr "nombre del problema" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 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:124 msgid "problem body" msgstr "cuerpo del problema" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "creadores" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 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:137 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:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "circuito corto" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "permitir puntos parciales" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "lenguajes permitidos" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 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:157 msgid "manually managed" msgstr "manejado manualmente" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 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:159 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:161 +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:163 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:165 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:167 msgid "problem summary" msgstr "resumen del problema" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "número de usuarios" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 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:171 msgid "solve rate" msgstr "porcentaje de solucionados" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "permitir acceso completo al markdown" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "visibilidad de la fuente de envío" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 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:454 msgid "See hidden problems" msgstr "Ver problemas ocultos" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "Editar problemas propios" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "Editar todos los problemas" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "Editar todos los problemas públicos" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 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:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "Clonar problema" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "Cambiar campo is_public" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "Cambiar campo is_manually_managed" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 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:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "lenguaje" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "nombre traducido" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "descripción traducida" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "traducción del problema" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "traducciones del problema" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "problema aclarado" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "cuerpo de la aclaración" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "hora de la aclaración" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "aclaración del problema" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "aclaraciones del problema" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "límite de recursos específicos del lenguaje" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "límites de recursos específicos del lenguaje" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "problema asociado" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "fecha de publicación" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "contenido editorial" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "Ver soluciones ocultas" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "solución" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "soluciones" @@ -1857,8 +1871,8 @@ 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" +msgid "Checker arguments as a JSON object." +msgstr "Argumentos del verificador como un objetivo JSON." #: judge/models/problem_data.py:77 msgid "problem data set" @@ -1913,12 +1927,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 +1943,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 +1955,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 +1979,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 @@ -1986,7 +2000,7 @@ 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 +2012,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 +2023,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 @@ -2039,8 +2049,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" @@ -2113,48 +2123,48 @@ 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" +msgid "The rendering engine used to render math." +msgstr "El motor de renderizado utilizado para representar las matemáticas." #: judge/models/profile.py:179 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" +msgid "Check to enable TOTP-based two-factor authentication." +msgstr "Activar autenticación de dos pasos basada en TOTP." #: judge/models/profile.py:181 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" +msgid "Check to enable WebAuthn-based two-factor authentication." +msgstr "Activar autenticación de dos pasos basada en WebAuthn." #: judge/models/profile.py:183 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" +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" +msgid "TOTP key must be empty or Base32." +msgstr "La llave TOTP debe estar vacía o ser Base32." #: judge/models/profile.py:187 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" +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" +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 msgid "last TOTP timecode" @@ -2165,12 +2175,12 @@ 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" +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 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 msgid "internal notes" @@ -2189,8 +2199,8 @@ 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" +msgid "Name displayed in place of username." +msgstr "Nombre mostrado en lugar del nombre de usuario." #: judge/models/profile.py:317 msgid "Shows in-progress development stuff" @@ -2245,6 +2255,18 @@ msgstr "tiempo requerido" msgid "state" msgstr "estado" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Pendiente" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Aprobado" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Rechazado" + #: judge/models/profile.py:366 msgid "reason" msgstr "razón" @@ -2282,8 +2304,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 +2384,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" @@ -3007,7 +3029,7 @@ msgstr "Participación de %s en %s" #: judge/views/contests.py:763 msgid "Live" -msgstr "En Vivo" +msgstr "En vivo" #: judge/views/contests.py:775 templates/contest/contest-tabs.html:13 msgid "Participation" @@ -3167,8 +3189,8 @@ msgstr "¡El usuario que estás intentando expulsar no existe!" #: judge/views/organization.py:377 #, 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 #, python-brace-format @@ -3208,11 +3230,6 @@ msgstr "No hay tal editorial" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3544,7 +3561,7 @@ msgstr "j M Y, G:i" msgid "Preparing your data..." msgstr "Preparando tus datos..." -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "Descargar tus datos" @@ -3578,14 +3595,9 @@ msgstr "Tabla de calificación" 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:518 +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?" @@ -3648,7 +3660,7 @@ msgstr "Cerrar sesión" msgid "Log in" msgstr "Iniciar sesión" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "o" @@ -3713,12 +3725,22 @@ msgstr "No se han hecho aclaraciones en este momento." #: templates/blog/list.html:155 msgid "Ongoing contests" -msgstr "Concursos en marcha" +msgstr "Concursos en curso" + +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "Termina en %(countdown)s." #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "Próximos concursos" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "Comenzando a partir de %(countdown)s." + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "Corriente de comentarios" @@ -3735,7 +3757,7 @@ msgstr "Mis tickets abiertos" 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" @@ -3798,7 +3820,7 @@ msgstr "Comentario nuevo" msgid "Invalid comment body." msgstr "Cuerpo del comentario inválido." -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "¡Publicar!" @@ -3831,6 +3853,18 @@ msgstr "Puntuación" msgid "No votes" msgstr "No hay votos" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "Copiar" + +#: templates/common-content.html:46 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." @@ -3933,7 +3967,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 +3984,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,14 +3992,44 @@ 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." +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "Comenzando a partir de %(countdown)s" + #: templates/contest/contest.html:43 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,8 +4160,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "Usuarios" @@ -4131,36 +4195,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "Concursos en Curso" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" msgstr "Próximos Concursos" -#: 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "Concursos Pasados" @@ -4182,7 +4266,7 @@ 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 @@ -4284,8 +4368,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 @@ -4466,22 +4550,10 @@ msgstr "Su razón para unirse:" msgid "Request" msgstr "Solicitud" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Pendiente" - #: 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" @@ -4921,11 +4993,12 @@ msgstr "¿Has olvidado tu contraseña de %(site_name)s? ¡No te preocupes!" 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." -#: 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:16 +#, 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.html:17 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "¡Hasta pronto!" @@ -4956,7 +5029,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:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continuar >" @@ -4969,41 +5042,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "Organizaciones afiliadas" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +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:213 msgid "Register!" msgstr "¡Registrarse!" @@ -5012,8 +5081,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 +5114,17 @@ msgid "Enable Two Factor Authentication" msgstr "Habilitar Autenticación en Dos Pasos" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5133,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5151,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 "" @@ -5261,20 +5331,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)" @@ -5332,7 +5406,7 @@ 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 @@ -5395,10 +5469,6 @@ 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:364 msgid "Associated object" msgstr "Objeto asociado" @@ -5431,137 +5501,152 @@ msgstr "Rango" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 "Descripción propia" -#: templates/user/edit-profile.html:291 +#: 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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "Tema editor" -#: templates/user/edit-profile.html:305 +#: templates/user/edit-profile.html:299 msgid "Math engine" msgstr "Motor matemático" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "Cambiar tu avatar" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "Cambiar tu contraseña" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "Autenticación en dos pasos habilitada" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "Desactivar" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "Códigos Scratch:" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "Oculto" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "Autenticación en dos pasos deshabilitada" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "Activar" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" -msgstr "Token de la API" +msgstr "Token API" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "Claves de seguridad" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "Eliminar" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 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:429 msgid "Add" msgstr "Añadir" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "Script de usuario" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5660,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" diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 8d09c132b4..6d60538443 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-09-05 01:12\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Catalan" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Allemand" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Grec" + #: dmoj/settings.py:374 msgid "English" msgstr "Anglais" @@ -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:190 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." @@ -138,6 +146,12 @@ msgstr "Concours inclus" msgid "Problem" msgstr "Problème" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "Réglages" @@ -240,10 +254,6 @@ 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é" @@ -292,7 +302,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Langage" @@ -348,13 +358,13 @@ msgstr "fuseau horaire" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "Fuseau horaire" @@ -364,8 +374,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 +388,8 @@ 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:77 msgid "Description" @@ -413,7 +423,7 @@ msgstr "Non accepté" #: judge/admin/submission.py:85 #, python-format msgid "%s (spectating)" -msgstr "%s (spectateur)" +msgstr "%s (observateur)" #: judge/admin/submission.py:87 #, python-format @@ -440,7 +450,7 @@ msgstr "Rejuger les soumissions sélectionnées" #: judge/admin/submission.py:204 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." @@ -481,12 +491,12 @@ 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" @@ -515,7 +525,7 @@ 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 @@ -599,106 +609,106 @@ 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." +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:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "Code scratch invalide." -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "S'abonner aux nouvelles du concours" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "Activer les fonctionnalités expérimentales" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, 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." -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "Télécharger les commentaires ?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "Télécharger les soumissions ?" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "Filtrer par code de problème glob :" -#: judge/forms.py:103 +#: judge/forms.py:99 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:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtrer par résultat :" -#: judge/forms.py:112 +#: judge/forms.py:108 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:134 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:155 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:156 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:188 msgid "Invalid code length." msgstr "Longueur de code invalide." -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "Réponse WebAuthn invalide." -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "Aucun défi WebAuthn n'a été lancé." -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 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:262 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:266 judge/models/problem.py:120 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:271 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:276 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:281 msgid "Contest with key already exists." msgstr "Le concours avec la clé existe déjà." @@ -781,7 +791,7 @@ msgid "comments" msgstr "commentaires" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "Éditorial pour %s" @@ -864,29 +874,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:512 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:128 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:131 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 +916,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:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "problèmes" @@ -929,12 +939,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:138 +#: judge/models/problem.py:494 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:156 msgid "publicly visible" msgstr "visible publiquement" @@ -956,7 +966,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 +974,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 +996,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:182 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:180 #: 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 +1086,24 @@ 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/problem.py:166 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 +1117,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:168 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 +1130,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:162 msgid "personae non gratae" msgstr "personae non gratae" @@ -1261,7 +1271,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 @@ -1282,14 +1292,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "points" @@ -1319,7 +1329,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" @@ -1385,6 +1395,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:61 +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 +1443,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:510 msgid "public visibility" msgstr "visibilité publique" @@ -1482,7 +1500,7 @@ msgstr "nom de la catégorie de problème" msgid "problem type" msgstr "type de problème" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "types de problème" @@ -1494,7 +1512,7 @@ msgstr "ID du groupe de problème" 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:56 judge/models/problem.py:136 msgid "problem group" msgstr "groupe de problème" @@ -1502,10 +1520,6 @@ msgstr "groupe de problème" msgid "problem groups" msgstr "groupes de problème" -#: judge/models/problem.py:61 -msgid "key" -msgstr "clé" - #: judge/models/problem.py:63 msgid "link" msgstr "lien" @@ -1520,22 +1534,22 @@ 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" +msgid "Displayed on pages under this license." +msgstr "Affiché sur les pages avec cette licence." #: judge/models/problem.py:67 msgid "icon" msgstr "icône" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL de l'icône" +msgid "URL to the icon." +msgstr "URL de l'icône." #: judge/models/problem.py:68 msgid "license text" msgstr "texte de la licence" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "licence" @@ -1564,235 +1578,235 @@ 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/" +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:122 msgid "problem name" msgstr "nom du problème" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 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:124 msgid "problem body" msgstr "corps du problème" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "créateurs" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 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:137 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:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "court circuit" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "permet des points partiels" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "langages autorisés" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "Liste des langages de soumission autorisés." -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "géré manuellement" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 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:159 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:161 +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:163 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:165 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:167 msgid "problem summary" msgstr "résumé du problème" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "nombre d'utilisateurs" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 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:171 msgid "solve rate" msgstr "taux de résolution" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "autoriser l'accès complet au markdown" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "visibilité de la source de soumission" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 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:454 msgid "See hidden problems" msgstr "Voir les problèmes cachés" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "Modifier ses propres problèmes" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "Modifier tous les problèmes" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "Modifier tous les problèmes publics" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 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:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "Cloner problème" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "Changer le champ is_public" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "Changer le champ is_manually_managed" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 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:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "langue" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "nom traduit" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "description traduite" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "traduction du problème" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "traductions du problème" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "problème clarifié" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "corps de la clarification" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "horodatage de clarification" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "clarification de problème" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "clarifications de problème" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "limite de ressources spécifiques à un langage" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "limites de ressources spécifiques à un langage" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "problème associé" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "date de publication" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "contenu éditorial" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "Voir les solutions cachées" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "solution" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "solutions" @@ -1857,8 +1871,8 @@ 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" +msgid "Checker arguments as a JSON object." +msgstr "Arguments du vérificateur en tant qu'objet JSON." #: judge/models/problem_data.py:77 msgid "problem data set" @@ -1913,12 +1927,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 +1943,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 +1955,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 +1979,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 @@ -1986,8 +2000,8 @@ 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 +2012,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 +2023,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" @@ -2039,8 +2049,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" @@ -2113,47 +2123,47 @@ 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" +msgid "The rendering engine used to render math." +msgstr "Le moteur de rendu utilisé pour rendre les mathématiques." #: judge/models/profile.py:179 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" +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 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" +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 msgid "TOTP key" msgstr "Clé TOTP" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +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" +msgid "TOTP key must be empty or Base32." +msgstr "La clé TOTP doit être vide ou Base32." #: judge/models/profile.py:187 msgid "scratch codes" msgstr "codes scratch" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2165,7 +2175,7 @@ msgid "API token" msgstr "Jeton API" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2189,8 +2199,8 @@ 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" +msgid "Name displayed in place of username." +msgstr "Nom affiché à la place du nom d'utilisateur." #: judge/models/profile.py:317 msgid "Shows in-progress development stuff" @@ -2227,15 +2237,15 @@ msgstr "" #: judge/models/profile.py:348 #, python-format msgid "WebAuthn credential: %(name)s" -msgstr "" +msgstr "Identifiant WebAuthn : %(name)s" #: judge/models/profile.py:351 msgid "WebAuthn credential" -msgstr "" +msgstr "identifiant WebAuthn" #: judge/models/profile.py:352 msgid "WebAuthn credentials" -msgstr "" +msgstr "identifiants WebAuthn" #: judge/models/profile.py:359 msgid "request time" @@ -2245,6 +2255,18 @@ msgstr "" msgid "state" msgstr "état" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "En attente" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Approuvé" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Rejeté" + #: judge/models/profile.py:366 msgid "reason" msgstr "raison" @@ -2271,7 +2293,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 +2304,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 +2313,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 +2353,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 +2384,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 +2392,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" @@ -2486,7 +2508,7 @@ 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" @@ -2628,11 +2650,11 @@ msgstr "numéro de lot" #: judge/models/submission.py:263 msgid "judging feedback" -msgstr "" +msgstr "commentaires du juge" #: judge/models/submission.py:264 msgid "extended judging feedback" -msgstr "" +msgstr "commentaires étendus du juge" #: judge/models/submission.py:265 msgid "program output" @@ -2770,11 +2792,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." @@ -2904,12 +2926,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 +2939,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 +2962,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,12 +2983,12 @@ 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\"." +msgstr "Vous n'êtes pas dans le concours « %s »." #: judge/views/contests.py:459 msgid "ContestCalendar requires integer year and month" @@ -3035,7 +3057,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,7 +3067,7 @@ 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 #: templates/status/status-tabs.html:5 @@ -3054,16 +3076,16 @@ 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 @@ -3095,7 +3117,7 @@ msgstr "Quitter l'organisation" #: judge/views/organization.py:158 #, 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 #, python-format @@ -3167,8 +3189,8 @@ msgstr "L'utilisateur que vous essayez d'expulser n'existe pas !" #: judge/views/organization.py:377 #, 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 #, python-brace-format @@ -3187,12 +3209,12 @@ msgstr "Demande de rejoindre {name} dans {organization}" #: judge/views/problem.py:71 msgid "No such problem" -msgstr "" +msgstr "Ce problème n'existe pas" #: judge/views/problem.py:72 #, 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 #, python-brace-format @@ -3201,17 +3223,12 @@ msgstr "Éditorial pour {0}" #: judge/views/problem.py:137 msgid "No such editorial" -msgstr "" +msgstr "Cet éditorial n'existe pas" #: judge/views/problem.py:138 #, 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 "Problèmes" +msgstr "Impossible de trouver un éditorial avec le code « %s »." #: judge/views/problem.py:568 judge/views/problem.py:576 #, python-format @@ -3327,7 +3344,7 @@ 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." @@ -3516,12 +3533,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" @@ -3544,7 +3561,7 @@ msgstr "j M Y, G \\h i" 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:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "Télécharger vos données" @@ -3578,14 +3595,9 @@ msgstr "Tableau de Classement" 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:518 +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?" @@ -3648,7 +3660,7 @@ msgstr "Se déconnecter" msgid "Log in" msgstr "Se connecter" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "ou" @@ -3658,7 +3670,7 @@ msgstr "S'inscrire" #: templates/base.html:250 msgid "spectating" -msgstr "spectateur" +msgstr "en observant" #: templates/base.html:263 msgid "This site works best with JavaScript enabled." @@ -3715,10 +3727,20 @@ msgstr "Aucune clarification n'a été apportée pour l'instant." msgid "Ongoing contests" msgstr "Concours en cours" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "Se termine dans %(countdown)s." + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "Concours à venir" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "Commence dans %(countdown)s." + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "Flux de commentaire" @@ -3735,7 +3757,7 @@ msgstr "Mes tickets ouverts" 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" @@ -3798,7 +3820,7 @@ msgstr "Nouveau commentaire" msgid "Invalid comment body." msgstr "Corps du commentaire invalide." -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "Poster !" @@ -3831,6 +3853,18 @@ msgstr "Score" msgid "No votes" msgstr "Aucun vote" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "Cliquez pour copier" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "Copier" + +#: templates/common-content.html:46 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." @@ -3933,13 +3967,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 +3982,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,14 +3992,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "Commence dans %(countdown)s" + #: templates/contest/contest.html:43 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 +4061,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 +4117,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,8 +4160,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "Utilisateurs" @@ -4131,36 +4195,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "Concours en Cours" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" msgstr "Concours à Venir" -#: 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "Concours Passés" @@ -4182,7 +4266,7 @@ 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 @@ -4203,7 +4287,7 @@ 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:" @@ -4284,8 +4368,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 +4377,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 +4388,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 +4414,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 +4430,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 @@ -4466,22 +4550,10 @@ msgstr "Votre raison d'adhérer :" msgid "Request" msgstr "Demander" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "En attente" - #: 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" @@ -4919,28 +4991,30 @@ msgstr "Vous avez oublié votre mot de passe sur %(site_name)s ? Ne vous inquié #: templates/registration/password_reset_email.html:10 #, 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." +msgstr "Pour réinitialiser le mot de passe de votre compte « %(username)s », cliquez sur le bouton 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:16 +#, 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 +#: templates/registration/password_reset_email.html:19 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 +5030,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:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continuer >" @@ -4969,41 +5043,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "Organisations affiliées" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +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:213 msgid "Register!" msgstr "S'inscrire !" @@ -5012,8 +5082,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 +5115,26 @@ msgid "Enable Two Factor Authentication" msgstr "Activer l'Authentification à Deux Facteurs" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 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:376 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:377 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:379 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 +5152,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 :" @@ -5165,19 +5236,19 @@ 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 msgid "Filter by status..." @@ -5261,20 +5332,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 +5357,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:" @@ -5395,10 +5470,6 @@ 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:364 msgid "Associated object" msgstr "Objet associé" @@ -5431,137 +5502,152 @@ msgstr "Rang" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 "Auto-description" -#: 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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "Thème de l'éditeur" -#: templates/user/edit-profile.html:305 +#: templates/user/edit-profile.html:299 msgid "Math engine" msgstr "Moteur mathématique" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "Changer votre avatar" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "Changer votre mot de passe" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "L'authentification à deux facteurs est activée" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "Désactiver" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "Réactiver" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "Codes Scratch :" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "Caché" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +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:386 msgid "Two-factor Authentication is disabled" msgstr "L'authentification à deux facteurs est désactivée" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "Activer" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "Jeton API" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "Clés de sécurité" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "Supprimer" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 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:429 msgid "Add" msgstr "Ajouter" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "Script utilisateur" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5659,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:86 +#: 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: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" diff --git a/locale/hr/LC_MESSAGES/django.po b/locale/hr/LC_MESSAGES/django.po index 2ed3d91bdc..91681ff244 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-22 01:00\n" "Last-Translator: \n" "Language-Team: Croatian\n" "Language: hr_HR\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Njemački" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Grčki" + #: dmoj/settings.py:374 msgid "English" msgstr "Engleski" @@ -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:190 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." @@ -140,6 +148,12 @@ msgstr "Uključena natjecanja" msgid "Problem" msgstr "Zadatak" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "" @@ -248,10 +262,6 @@ 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" @@ -300,7 +310,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Jezik" @@ -359,13 +369,13 @@ msgstr "vremenska zona" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "Vremenska zona" @@ -375,8 +385,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 +400,8 @@ 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:77 msgid "Description" @@ -452,7 +462,7 @@ msgstr "Reevaluiraj označena predana rješenja" #: judge/admin/submission.py:204 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." @@ -494,12 +504,12 @@ 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" @@ -614,106 +624,106 @@ 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." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "Pretplati se na novosti na natjecanju" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "Uključi eksperimentalne opcije" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, 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." -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "Preuzmi komentare?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "Preuzmi predana rješenja?" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtriraj prema rezultatu:" -#: judge/forms.py:112 +#: judge/forms.py:108 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:134 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:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Lozinka" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "Pogrešan WebAuthn odgovor." -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "ID zadatka mora biti ^[a-z0-9]+$" -#: judge/forms.py:275 +#: judge/forms.py:271 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:276 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:281 msgid "Contest with key already exists." msgstr "Već postoji natjecanje koje koristi taj ID." @@ -796,7 +806,7 @@ msgid "comments" msgstr "komentari" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "Objašnjenje za %s" @@ -879,7 +889,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:512 msgid "authors" msgstr "autori" @@ -887,7 +897,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:128 msgid "curators" msgstr "" @@ -895,7 +905,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:131 msgid "testers" msgstr "" @@ -931,7 +941,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:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "zadaci" @@ -944,12 +954,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:138 +#: judge/models/problem.py:494 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:156 msgid "publicly visible" msgstr "javno vidljivo" @@ -986,7 +996,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 +1011,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:182 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:180 #: 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 +1101,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 +1109,15 @@ 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/problem.py:166 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 +1132,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1135,7 +1145,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:162 msgid "personae non gratae" msgstr "persona non grata" @@ -1297,14 +1307,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "bodovi" @@ -1400,6 +1410,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "vrijednost" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1440,7 +1458,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1497,7 +1515,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "" @@ -1509,7 +1527,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "" @@ -1517,10 +1535,6 @@ msgstr "" msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - #: judge/models/problem.py:63 msgid "link" msgstr "" @@ -1535,7 +1549,7 @@ msgid "short name" msgstr "" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1543,14 +1557,14 @@ msgid "icon" msgstr "" #: judge/models/problem.py:67 -msgid "URL to the icon" +msgid "URL to the icon." msgstr "" #: judge/models/problem.py:68 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "" @@ -1579,235 +1593,235 @@ 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/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "ime zadatka" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "dopušteno djelomično bodovanje" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "dopušteni programski jezici" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "ručno upravljano" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "sažetak zadatka" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "jezik" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "" @@ -1872,7 +1886,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1928,11 +1942,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 +1958,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 +1970,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 +1978,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 +1994,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 @@ -2001,7 +2015,7 @@ 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 +2027,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 +2038,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 @@ -2054,8 +2064,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" @@ -2128,7 +2138,7 @@ msgid "math engine" msgstr "" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2136,7 +2146,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2144,7 +2154,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2152,11 +2162,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2164,11 +2174,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2180,7 +2190,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2204,7 +2214,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2260,6 +2270,18 @@ msgstr "" msgid "state" msgstr "" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + #: judge/models/profile.py:366 msgid "reason" msgstr "" @@ -2297,7 +2319,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 +2399,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 +2407,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 @@ -3187,8 +3209,8 @@ msgstr "Korisnik kojeg pokušavate izbaciti ne postoji!" #: judge/views/organization.py:377 #, 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 #, python-brace-format @@ -3228,11 +3250,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3565,7 +3582,7 @@ msgstr "j. M Y. G:i" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3599,13 +3616,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3669,7 +3681,7 @@ msgstr "" msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "" @@ -3736,10 +3748,20 @@ msgstr "" msgid "Ongoing contests" msgstr "" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3756,7 +3778,7 @@ msgstr "" 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" @@ -3819,7 +3841,7 @@ msgstr "" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "" @@ -3852,6 +3874,18 @@ msgstr "Bodovi" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3954,7 +3988,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 +4005,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,14 +4013,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "j. F Y. G:i T" @@ -4120,8 +4184,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "" @@ -4155,36 +4219,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "" @@ -4206,7 +4290,7 @@ 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 @@ -4308,7 +4392,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4490,22 +4574,10 @@ msgstr "" msgid "Request" msgstr "" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "" @@ -4950,11 +5022,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4985,7 +5058,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4998,41 +5071,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "" @@ -5041,7 +5110,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 +5143,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5089,6 +5162,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5106,19 +5180,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 "" @@ -5290,19 +5360,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 @@ -5425,10 +5499,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5461,136 +5531,151 @@ msgstr "" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5690,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 "" diff --git a/locale/hu/LC_MESSAGES/django.po b/locale/hu/LC_MESSAGES/django.po index 4dc28cfd66..8d8ec6dec2 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-22 01:00\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Német" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Görög" + #: dmoj/settings.py:374 msgid "English" msgstr "Angol" @@ -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:190 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." @@ -138,6 +146,12 @@ msgstr "Hozzárendelt versenyek" msgid "Problem" msgstr "Feladat" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "" @@ -240,10 +254,6 @@ 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" @@ -292,7 +302,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Nyelv" @@ -348,13 +358,13 @@ msgstr "időzóna" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "Időzóna" @@ -364,8 +374,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 +388,8 @@ 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:77 msgid "Description" @@ -440,7 +450,7 @@ msgstr "A kiválasztott feltöltések újratesztelése" #: judge/admin/submission.py:204 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." @@ -481,12 +491,12 @@ 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" @@ -599,106 +609,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "Iratkozz fel hírlevelünkre" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "Kísérleti funkciók engedélyezése" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, 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." -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Jelszó" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 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:271 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 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:281 msgid "Contest with key already exists." msgstr "" @@ -781,7 +791,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:523 #, python-format msgid "Editorial for %s" msgstr "Megoldási útmutató %s-hez" @@ -864,7 +874,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:512 msgid "authors" msgstr "szerzők" @@ -872,7 +882,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:128 msgid "curators" msgstr "kurátorok" @@ -880,7 +890,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:131 msgid "testers" msgstr "tesztelők" @@ -916,7 +926,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:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "feladatok" @@ -929,12 +939,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:138 +#: judge/models/problem.py:494 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:156 msgid "publicly visible" msgstr "nyilvánosan látható" @@ -971,7 +981,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 +996,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:182 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:180 #: 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 +1086,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 +1094,15 @@ 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/problem.py:166 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 +1117,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1120,7 +1130,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:162 msgid "personae non gratae" msgstr "nemkívánatos személy" @@ -1282,14 +1292,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "pontok" @@ -1385,6 +1395,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +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 +1443,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:510 msgid "public visibility" msgstr "láthatóság" @@ -1482,7 +1500,7 @@ msgstr "feladat kategória név" msgid "problem type" msgstr "feladat típus" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "feladat típusok" @@ -1494,7 +1512,7 @@ msgstr "feladat csoport azonosító" msgid "problem group name" msgstr "feladat csoport név" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "feladat csoport" @@ -1502,10 +1520,6 @@ msgstr "feladat csoport" msgid "problem groups" msgstr "feladat csoport nevek" -#: judge/models/problem.py:61 -msgid "key" -msgstr "kulcs" - #: judge/models/problem.py:63 msgid "link" msgstr "link" @@ -1520,7 +1534,7 @@ msgid "short name" msgstr "rövid név" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1528,14 +1542,14 @@ msgid "icon" msgstr "ikon" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL az ikonhoz" +msgid "URL to the icon." +msgstr "URL az ikonhoz." #: judge/models/problem.py:68 msgid "license text" msgstr "licenc szöveg" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "licenc" @@ -1564,235 +1578,235 @@ 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/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "feladat név" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "feladat törzs" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "szerzők" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "részleges pontok engedélyezése" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "engedélyezett nyelvek" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "manuáisan kezelt" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "feladat összefoglaló" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "Feladat klónozása" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "nyelv" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "lefordított név" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "lefordított leírás" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "feladat fordítás" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "feladat fordítások" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "pontosított feladat" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "pontosítás törzse" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "pontosítás időbélyege" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "nyelv specifikus erőforrás korlát" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "nyelv specifikus erőforrás korlátok" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "hozzárendelt probléma" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "publikálás dátuma" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "megoldási útmutató tartalom" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "megoldás" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "megoldások" @@ -1857,8 +1871,8 @@ 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" +msgid "Checker arguments as a JSON object." +msgstr "Checker argumentumai JSON objektumként." #: judge/models/problem_data.py:77 msgid "problem data set" @@ -1913,12 +1927,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 +1943,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 +1955,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 +1979,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 @@ -1986,7 +2000,7 @@ 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 +2012,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 +2023,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 @@ -2039,8 +2049,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" @@ -2113,15 +2123,15 @@ 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" +msgid "The rendering engine used to render math." +msgstr "A matek ábrákat renderelő motor." #: judge/models/profile.py:179 msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2129,7 +2139,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2137,11 +2147,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2149,11 +2159,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2165,7 +2175,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2189,7 +2199,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2245,6 +2255,18 @@ msgstr "kérési idő" msgid "state" msgstr "állapot" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Elbírálás alatt" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Jóváhagyva" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Elutasítva" + #: judge/models/profile.py:366 msgid "reason" msgstr "ok" @@ -2282,7 +2304,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 +2384,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" @@ -3167,8 +3189,8 @@ msgstr "A felhasználó akit megpróbálsz kirúgni nem létezik!" #: judge/views/organization.py:377 #, 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 #, python-brace-format @@ -3208,11 +3230,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3544,7 +3561,7 @@ msgstr "Y. M j., G:i" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3578,15 +3595,10 @@ msgstr "Ranglista" 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:518 +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 "" @@ -3648,7 +3660,7 @@ msgstr "Kilépés" msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "vagy" @@ -3715,10 +3727,20 @@ msgstr "Nem jelentek meg pontosítások még." msgid "Ongoing contests" msgstr "Folyamatban lévő versenyek" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "Közelgő versenyek" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "Kommentfolyam" @@ -3735,7 +3757,7 @@ msgstr "Nyitott hibajegyeim" 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" @@ -3798,7 +3820,7 @@ msgstr "Új hozzászólás" msgid "Invalid comment body." msgstr "Érvénytelen hozzászólás törzs." -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "Küld!" @@ -3831,6 +3853,18 @@ msgstr "Pont" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3933,7 +3967,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 +3984,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,14 +3992,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" + #: templates/contest/contest.html:43 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,8 +4160,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "Felhasználók" @@ -4131,36 +4195,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "Folyamatban lévő Versenyek" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" msgstr "Közelgő Versenyek" -#: 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "Elmúlt Versenyek" @@ -4182,7 +4266,7 @@ 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 @@ -4284,8 +4368,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 @@ -4466,22 +4550,10 @@ msgstr "A csatlakozás oka:" msgid "Request" msgstr "Kérés" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Elbírálás alatt" - #: 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" @@ -4921,11 +4993,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4956,7 +5029,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Folytatás >" @@ -4969,41 +5042,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "Kapcsolódó csoportok" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +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:213 msgid "Register!" msgstr "" @@ -5012,7 +5081,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 +5114,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5133,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5151,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 "" @@ -5261,20 +5331,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)" @@ -5395,10 +5469,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5431,136 +5501,151 @@ msgstr "" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 "Önleírás" -#: 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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: templates/user/edit-profile.html:299 msgid "Math engine" msgstr "Matek motor" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5660,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 "" diff --git a/locale/it/LC_MESSAGES/django.po b/locale/it/LC_MESSAGES/django.po index 6f428d777e..c3a7c0bfeb 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-22 01:00\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Catalano" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Tedesco" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Greco" + #: dmoj/settings.py:374 msgid "English" msgstr "Inglese" @@ -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:190 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." @@ -138,6 +146,12 @@ msgstr "" msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "" @@ -240,10 +254,6 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" @@ -292,7 +302,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "" @@ -348,13 +358,13 @@ msgstr "" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "" @@ -364,8 +374,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 +388,7 @@ 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:77 @@ -440,7 +450,7 @@ msgstr "" #: judge/admin/submission.py:204 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] "" @@ -481,11 +491,11 @@ 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 @@ -599,106 +609,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "" @@ -781,7 +791,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "" @@ -864,7 +874,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "" @@ -872,7 +882,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:128 msgid "curators" msgstr "" @@ -880,7 +890,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:131 msgid "testers" msgstr "" @@ -916,7 +926,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -929,12 +939,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "" @@ -971,7 +981,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 +996,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:182 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1086,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 +1094,15 @@ 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/problem.py:166 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 +1117,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1120,7 +1130,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:162 msgid "personae non gratae" msgstr "" @@ -1282,14 +1292,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "" @@ -1385,6 +1395,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1425,7 +1443,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1482,7 +1500,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "" @@ -1494,7 +1512,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "" @@ -1502,10 +1520,6 @@ msgstr "" msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - #: judge/models/problem.py:63 msgid "link" msgstr "" @@ -1520,7 +1534,7 @@ msgid "short name" msgstr "" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1528,14 +1542,14 @@ msgid "icon" msgstr "" #: judge/models/problem.py:67 -msgid "URL to the icon" +msgid "URL to the icon." msgstr "" #: judge/models/problem.py:68 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "" @@ -1564,235 +1578,235 @@ msgid "problem code" msgstr "" #: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "" @@ -1857,7 +1871,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1913,11 +1927,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 +1943,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 +1955,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 +1963,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 +1979,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 @@ -1986,7 +2000,7 @@ 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 +2012,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 +2023,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 @@ -2039,7 +2049,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2113,7 +2123,7 @@ msgid "math engine" msgstr "" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2121,7 +2131,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2129,7 +2139,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2137,11 +2147,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2149,11 +2159,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2165,7 +2175,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2189,7 +2199,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2245,6 +2255,18 @@ msgstr "" msgid "state" msgstr "" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + #: judge/models/profile.py:366 msgid "reason" msgstr "" @@ -2282,7 +2304,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 +2384,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 +2392,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 @@ -3167,7 +3189,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3208,11 +3230,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3544,7 +3561,7 @@ msgstr "" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3578,13 +3595,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3648,7 +3660,7 @@ msgstr "" msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "" @@ -3715,10 +3727,20 @@ msgstr "" msgid "Ongoing contests" msgstr "" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3735,7 +3757,7 @@ msgstr "" 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 "" @@ -3798,7 +3820,7 @@ msgstr "" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "" @@ -3831,6 +3853,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3933,7 +3967,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 +3984,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,14 +3992,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "" @@ -4096,8 +4160,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "" @@ -4131,36 +4195,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "" @@ -4182,7 +4266,7 @@ 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 @@ -4284,7 +4368,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4466,22 +4550,10 @@ msgstr "" msgid "Request" msgstr "" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "" @@ -4921,11 +4993,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4956,7 +5029,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4969,41 +5042,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "" @@ -5012,7 +5081,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 +5114,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5133,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5151,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 "" @@ -5261,19 +5331,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 @@ -5395,10 +5469,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5431,136 +5501,151 @@ msgstr "" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5660,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 "" diff --git a/locale/ja/LC_MESSAGES/django.po b/locale/ja/LC_MESSAGES/django.po index 743c5d843e..dde3949398 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-28 01:02\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "カタロニア語" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "ドイツ語" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "ギリシャ語" + #: dmoj/settings.py:374 msgid "English" 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:190 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,6 +144,12 @@ msgstr "含まれているコンテスト" msgid "Problem" msgstr "課題" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "設定" @@ -232,10 +246,6 @@ msgstr "仮想" msgid "link path" msgstr "リンクパス" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "内容" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "概要" @@ -284,7 +294,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "言語" @@ -337,13 +347,13 @@ msgstr "時間帯" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "時間帯" @@ -353,8 +363,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 +376,8 @@ 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:77 msgid "Description" @@ -428,7 +438,7 @@ msgstr "選択された提出物を再判定する" #: judge/admin/submission.py:204 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個の提出物が正常に再採点されました。" @@ -468,12 +478,12 @@ 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" @@ -584,106 +594,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "コンテストの更新を購読する" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "実験的な機能を有効化する" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "あなたは{count}個以上の公開組織に参加できない場合があります。" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "結果で絞り込む:" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "パスワード" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "課題のコードは ^[a-z0-9]+$ でなければなりません" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "このコードを使用している問題はすでに存在しています。" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 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:281 msgid "Contest with key already exists." msgstr "同じキーを持つコンテストはすでに存在しています。" @@ -766,7 +776,7 @@ msgid "comments" msgstr "コメント" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "%s の論説" @@ -849,7 +859,7 @@ msgid "contest name" msgstr "コンテスト名" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "著者" @@ -857,7 +867,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:128 msgid "curators" msgstr "キュレーター" @@ -865,7 +875,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:131 msgid "testers" msgstr "テスター" @@ -901,7 +911,7 @@ msgstr "" msgid "description" msgstr "説明" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "課題" @@ -914,12 +924,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "時間制限" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "公開されています" @@ -956,7 +966,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 +981,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:182 msgid "private to organizations" msgstr "組織へプライベートにする" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1071,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 +1079,15 @@ 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/problem.py:166 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 +1102,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "ソーシャルメディアなどのメタ説明タグに表示されるプレーンテキスト。" @@ -1105,7 +1115,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:162 msgid "personae non gratae" msgstr "感謝しない人" @@ -1267,14 +1277,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "点数" @@ -1370,6 +1380,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "鍵" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "値" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "構成項目" @@ -1410,7 +1428,7 @@ msgstr "投稿の題目" msgid "slug" msgstr "スラグ" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "一般公開" @@ -1467,7 +1485,7 @@ msgstr "課題分類名" msgid "problem type" msgstr "課題のタイプ" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "課題のタイプ" @@ -1479,7 +1497,7 @@ msgstr "課題のグループ ID" msgid "problem group name" msgstr "課題のグループ名" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "課題グループ" @@ -1487,10 +1505,6 @@ msgstr "課題グループ" msgid "problem groups" msgstr "課題グループ" -#: judge/models/problem.py:61 -msgid "key" -msgstr "鍵" - #: judge/models/problem.py:63 msgid "link" msgstr "リンク" @@ -1505,22 +1519,22 @@ msgid "short name" msgstr "短縮名" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "このライセンスの下でページに表示される" +msgid "Displayed on pages under this license." +msgstr "このライセンスの下でページに表示される。" #: judge/models/problem.py:67 msgid "icon" msgstr "アイコン" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "アイコンへの URL" +msgid "URL to the icon." +msgstr "アイコンへの URL。" #: judge/models/problem.py:68 msgid "license text" msgstr "ライセンス本文" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "ライセンス" @@ -1549,235 +1563,235 @@ 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/ の後に使用される" +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:122 msgid "problem name" msgstr "課題名" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "課題本文" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "作成者" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "短絡" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "部分点を許す" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "許可されている言語" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "手動で管理されている" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." +msgstr "下位互換性を保つのために自動発行する魔法のような能力は持ちません。" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "課題の概要" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "課題を複製する" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "言語" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "翻訳された名前" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "翻訳された説明" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "翻訳された課題" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "翻訳された課題" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "解説された課題" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "解説本文" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "解説のタイムスタンプ" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "言語固有のリソース制限" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "言語固有のリソース制限" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "関連する課題" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "発行日" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "編集内容" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "解答" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "解答" @@ -1842,8 +1856,8 @@ 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 オブジェクトとしてのチェッカー引数" +msgid "Checker arguments as a JSON object." +msgstr "JSON オブジェクトとしてのチェッカー引数。" #: judge/models/problem_data.py:77 msgid "problem data set" @@ -1898,12 +1912,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 +1928,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 +1940,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 +1964,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 @@ -1971,7 +1985,7 @@ 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 +1997,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 +2008,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 @@ -2024,8 +2034,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" @@ -2098,15 +2108,15 @@ msgid "math engine" msgstr "数式エンジン" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "数式の表示に使用されるレンダリングエンジン" +msgid "The rendering engine used to render math." +msgstr "数式の表示に使用されるレンダリングエンジン。" #: judge/models/profile.py:179 msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2114,7 +2124,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2122,11 +2132,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2134,11 +2144,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2150,7 +2160,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2174,7 +2184,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2230,6 +2240,18 @@ msgstr "要求時刻" msgid "state" msgstr "状態" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "保留中" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "承認済" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "却下された" + #: judge/models/profile.py:366 msgid "reason" msgstr "理由" @@ -2267,7 +2289,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 +2369,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" @@ -3147,7 +3169,7 @@ msgstr "あなたが追い出そうとしている利用者は存在しません #: judge/views/organization.py:377 #, 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 @@ -3188,11 +3210,6 @@ msgstr "そのような論説はありません" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3523,7 +3540,7 @@ msgstr "Y年n月j日 G:i" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3557,14 +3574,9 @@ msgstr "リーダーボード" 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:518 +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?" @@ -3627,7 +3639,7 @@ msgstr "ログアウト" msgid "Log in" msgstr "ログイン" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "または" @@ -3694,10 +3706,20 @@ msgstr "現時点では何も解説されていません。" msgid "Ongoing contests" msgstr "開催中のコンテスト" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "近日開催予定のコンテスト" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "コメントストリーム" @@ -3714,7 +3736,7 @@ msgstr "私のオープンチケット" 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 "コメント" @@ -3777,7 +3799,7 @@ msgstr "新しいコメント" msgid "Invalid comment body." msgstr "不正なコメント本文。" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "投稿!" @@ -3810,6 +3832,18 @@ msgstr "得点" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "不正なアクセスコード。" @@ -3912,7 +3946,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 +3963,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,14 +3971,44 @@ 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 "仮想的に参加している。" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "Y年n月j日 G:i T" @@ -4072,8 +4136,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "利用者" @@ -4097,46 +4161,66 @@ msgstr "コンテストに参加するとあなたのタイマーがスタート #: templates/contest/list.html:64 msgid "hidden" -msgstr "" +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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "開催中のコンテスト" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "過去のコンテスト" @@ -4158,7 +4242,7 @@ 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 @@ -4260,8 +4344,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 @@ -4442,22 +4526,10 @@ msgstr "参加するためのあなたの理由:" msgid "Request" msgstr "要求" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "追い出す" @@ -4892,11 +4964,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4927,7 +5000,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:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "続行 >" @@ -4940,41 +5013,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "所属組織" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "登録!" @@ -4983,7 +5052,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 +5085,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5031,6 +5104,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5040,7 +5114,7 @@ msgstr "" #: templates/registration/totp_enable.html:108 msgid "Important" -msgstr "" +msgstr "重要" #: templates/registration/totp_enable.html:109 #, python-format @@ -5048,19 +5122,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 "" @@ -5232,20 +5302,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)" @@ -5365,10 +5439,6 @@ 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:364 msgid "Associated object" msgstr "関連するオブジェクト" @@ -5401,137 +5471,152 @@ msgstr "ランク" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "エディタのテーマ" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "アバターを変更する" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "パスワードを変更する" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" +msgstr "非表示" + +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "利用者スクリプト" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5630,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,7 +5726,7 @@ msgstr "" #: templates/user/user-about.html:112 msgid "Rating history" -msgstr "" +msgstr "評価履歴" #: templates/user/user-about.html:183 msgid "past year" diff --git a/locale/ko/LC_MESSAGES/django.po b/locale/ko/LC_MESSAGES/django.po index db112f90a7..bcf3b4370a 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-22 01:00\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "카탈루냐어" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "독일어" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "그리스어" + #: dmoj/settings.py:374 msgid "English" 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:190 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,6 +144,12 @@ msgstr "포함된 대회" msgid "Problem" msgstr "문제" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "설정" @@ -232,10 +246,6 @@ msgstr "가상" msgid "link path" msgstr "링크 경로" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "내용" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "요약" @@ -284,7 +294,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "언어" @@ -337,13 +347,13 @@ msgstr "시간대" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "시간대" @@ -353,8 +363,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 +376,8 @@ 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:77 msgid "Description" @@ -428,7 +438,7 @@ msgstr "선택한 제출 재채점" #: judge/admin/submission.py:204 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개의 제출이 성공적으로 재채점되었습니다." @@ -468,12 +478,12 @@ 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" @@ -584,106 +594,106 @@ msgid "Invalid two-factor authentication token." msgstr "잘못된 이중 인증 토큰입니다." #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." -msgstr "스크래치 코드는 16 base32 문자여야 합니다." +msgid "Scratch codes must be 16 Base32 characters." +msgstr "스크래치 코드는 16 Base32 문자여야 합니다." -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "유효하지 않은 접근 코드입니다." -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "대회 업데이트를 구독하세요" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "베타 기능 활성화" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "{count}개보다 많은 공개 조직에 소속될 수 없습니다." -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "주석을 다운로드하시겠습니까?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "제출물을 다운로드하시겠습니까?" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "문제 코드로 필터링:" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "모든 제출물을 포함하려면 비워 둡니다" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "결과 필터링:" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "다운 받을 것을 최소 한 개 선택해주세요." -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "모든 judge" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "비밀번호" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "잘못된 코드 길이입니다." -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "잘못된 WebAuthn 응답입니다." -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "WebAuthn 챌린지가 발행되지 않았습니다." -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "잘못된 WebAuthn 자격 증명 ID입니다." -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "잘못된 2단계 인증 토큰 또는 접근 코드입니다." -#: judge/forms.py:266 +#: judge/forms.py:262 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:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "문제 코드는 ^[a-z0-9]+$ 이어야 합니다" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "코드에 문제가 이미 있습니다." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "대회 아이디 ^[a-z0-9]+$ 이어야 합니다" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "키가 있는 콘테스트가 이미 존재합니다." @@ -766,7 +776,7 @@ msgid "comments" msgstr "코멘트" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "%s에 대한 편집" @@ -849,7 +859,7 @@ msgid "contest name" msgstr "대회 이름" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "저자" @@ -857,7 +867,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:128 msgid "curators" msgstr "curators" @@ -865,7 +875,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:131 msgid "testers" msgstr "testers" @@ -901,7 +911,7 @@ msgstr "" msgid "description" msgstr "설명" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "문제" @@ -914,12 +924,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "시간 제한" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "공개" @@ -956,8 +966,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 +981,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:182 msgid "private to organizations" msgstr "조직에 비공개" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1071,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 +1079,15 @@ 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/problem.py:166 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 +1102,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "메타 설명 태그에 표시되는 일반 텍스트(예: 소셜 미디어용)." @@ -1105,7 +1115,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:162 msgid "personae non gratae" msgstr "해당 인물 없음" @@ -1267,14 +1277,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "점수" @@ -1370,6 +1380,14 @@ msgstr "대회 코드 카피 체크 결과" msgid "contest moss results" msgstr "대회 코드 카피 체크 결과" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "키" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "값" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "설정 항목" @@ -1410,7 +1428,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:510 msgid "public visibility" msgstr "공개 여부" @@ -1467,7 +1485,7 @@ msgstr "문제 범주 이름" msgid "problem type" msgstr "문제 유형" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "문제 유형" @@ -1479,7 +1497,7 @@ msgstr "문제 그룹 ID" msgid "problem group name" msgstr "문제 그룹" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "문제 그룹" @@ -1487,10 +1505,6 @@ msgstr "문제 그룹" msgid "problem groups" msgstr "문제 그룹" -#: judge/models/problem.py:61 -msgid "key" -msgstr "키" - #: judge/models/problem.py:63 msgid "link" msgstr "링크" @@ -1505,22 +1519,22 @@ msgid "short name" msgstr "짧은 이름" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "이 라이센스에 의해 표시됨" +msgid "Displayed on pages under this license." +msgstr "이 라이센스에 의해 표시됨." #: judge/models/problem.py:67 msgid "icon" msgstr "아이콘" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "아이콘 URL" +msgid "URL to the icon." +msgstr "아이콘 URL." #: judge/models/problem.py:68 msgid "license text" msgstr "라이센스 내용" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "라이센스" @@ -1549,235 +1563,235 @@ 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에서 사용되는 문제에 대한 짧고 고유한 코드" +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:122 msgid "problem name" msgstr "문제 이름" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "문제 목록에 표시된 문제의 전체 이름입니다." -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "문제 본문" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "제작자" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "문제 페이지에 표시된 문제 유형입니다." -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "문제 목록의 범주 아래에 표시된 문제 그룹입니다." -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "부분 점수 허용" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "허용된 언어" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "허용된 제출 언어 목록입니다." -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "수동으로 관리됨" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "심사위원의 데이터 관리 허용 여부." -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." +msgstr "이전 버전과의 호환성으로 인해 자동 게시하는 마법의 기능이 없습니다." -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "선택한 사용자가 이 문제를 제출하는 것을 금지합니다." -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "이 문제가 게시되는 라이선스입니다." -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "문제 요약" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "유저 수" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "문제를 해결한 사용자 수입니다." -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "정답률" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "전체 마크다운 액세스 허용" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "제출 소스 가시성" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "비공개로 설정 시, 이 조직들만 문제를 볼 수 있습니다." -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "숨겨진 문제들 보이기" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "문제 수정" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "모든 문제 수정" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "모든 공개 문제 수정" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "전체 마크업 문제 수정" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "문제 복사" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "is_public 필드 변경" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "is_manually_managed 필드 변경" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "조직에게만 공개된 문제들 보기" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "언어" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "번역된 이름" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "번역된 설명" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "문제 번역" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "문제 번역" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "수정된 문제" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "수정사항" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "수정 타임스탬프" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "특정 언어 리소스 제한" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "특정 언어 리소스 제한" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "관련된 문제" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "게시일" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "편집 내용" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "숨겨진 솔루션 보기" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "솔루션" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "솔루션" @@ -1842,8 +1856,8 @@ 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" +msgid "Checker arguments as a JSON object." +msgstr "" #: judge/models/problem_data.py:77 msgid "problem data set" @@ -1898,12 +1912,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 +1928,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 +1940,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 +1964,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 @@ -1971,7 +1985,7 @@ 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 +1997,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 +2008,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 @@ -2024,8 +2034,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" @@ -2098,48 +2108,48 @@ msgid "math engine" msgstr "수학 엔진" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "수학을 렌더링하는 데 사용되는 렌더링 엔진" +msgid "The rendering engine used to render math." +msgstr "수학을 렌더링하는 데 사용되는 렌더링 엔진." #: judge/models/profile.py:179 msgid "TOTP 2FA enabled" msgstr "TOTP 2FA 활성화" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" -msgstr "TOTP 기반 이중 인증 활성화 확인" +msgid "Check to enable TOTP-based two-factor authentication." +msgstr "TOTP 기반 이중 인증 활성화 확인." #: judge/models/profile.py:181 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn 2FA 사용" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" -msgstr "WebAuthn 기반 2단계 인증을 활성화하려면 체크" +msgid "Check to enable WebAuthn-based two-factor authentication." +msgstr "WebAuthn 기반 2단계 인증을 활성화하려면 체크." #: judge/models/profile.py:183 msgid "TOTP key" msgstr "TOTP 키" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" -msgstr "TOTP용 32자 base32 인코딩 키" +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 이어야 합니다" +msgid "TOTP key must be empty or Base32." +msgstr "TOTP 키는 비어 있거나 Base32 이어야 합니다." #: judge/models/profile.py:187 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 배열" +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 배열이어야 합니다" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." +msgstr "기본 코드는 비어있거나 Base32 코드 글자의 JSON 배열이어야 합니다." #: judge/models/profile.py:194 msgid "last TOTP timecode" @@ -2150,7 +2160,7 @@ msgid "API token" msgstr "API 토큰" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2174,7 +2184,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2230,6 +2240,18 @@ msgstr "요청 시간" msgid "state" msgstr "상태" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "보류 중" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "승인됨" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "거절됨" + #: judge/models/profile.py:366 msgid "reason" msgstr "이유" @@ -2267,8 +2289,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 +2369,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 @@ -3147,7 +3169,7 @@ msgstr "탈퇴시키려는 사용자가 존재하지 않습니다." #: judge/views/organization.py:377 #, 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 @@ -3188,11 +3210,6 @@ msgstr "그런 사설이 없습니다" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3523,7 +3540,7 @@ msgstr "Y년 n월 j일 G:i" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3557,14 +3574,9 @@ msgstr "순위표" 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:518 +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?" @@ -3627,7 +3639,7 @@ msgstr "로그아웃" msgid "Log in" msgstr "로그인" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "또는" @@ -3694,10 +3706,20 @@ msgstr "현재로서는 명확한 설명이 없습니다." msgid "Ongoing contests" msgstr "진행중인 대회" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "진행예정 대회" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "주석 흐름" @@ -3714,7 +3736,7 @@ msgstr "" 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 "코멘트" @@ -3777,7 +3799,7 @@ msgstr "새 댓글" msgid "Invalid comment body." msgstr "유효하지 않은 댓글입니다." -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "등록!" @@ -3810,6 +3832,18 @@ msgstr "점수" msgid "No votes" msgstr "투표자 없음" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "유효하지 않은 접근 코드입니다." @@ -3912,7 +3946,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 +3963,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,14 +3971,44 @@ 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 "가상으로 참여합니다." +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "Y년 n월 j일 G:i T" @@ -4072,8 +4136,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "유저" @@ -4107,36 +4171,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "진행중인 대회" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "지난 대회들" @@ -4158,7 +4242,7 @@ 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 @@ -4260,8 +4344,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 @@ -4442,22 +4526,10 @@ msgstr "가입 사유:" msgid "Request" msgstr "요청" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "내보내기" @@ -4892,11 +4964,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4927,7 +5000,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "계속" @@ -4940,41 +5013,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +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:213 msgid "Register!" msgstr "등록" @@ -4983,7 +5052,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 +5085,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5031,6 +5104,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5048,19 +5122,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 "" @@ -5232,19 +5302,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 @@ -5312,11 +5386,11 @@ msgstr "" #: templates/ticket/list.html:135 templates/ticket/ticket.html:270 msgid "Reopened: " -msgstr "재개됨:" +msgstr "재개됨: " #: templates/ticket/list.html:138 templates/ticket/ticket.html:271 msgid "Closed: " -msgstr "닫힘:" +msgstr "닫힘: " #: templates/ticket/list.html:221 msgid "Use desktop notification" @@ -5365,10 +5439,6 @@ 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:364 msgid "Associated object" msgstr "관련 객체" @@ -5401,137 +5471,152 @@ msgstr "순위" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "편집기 테마" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "아바타 변경" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "비밀번호 변경" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "2단계 인증이 활성화 되었습니다" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "비활성화" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "새로 고침" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "기본 코드:" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "숨기기" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "2단계 인증이 비활성화 되었습니다" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "활성화" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "API 토큰" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "보안 키" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "삭제" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "해당 키의 이름을 입력하세요" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "추가" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "사용자 스크립트" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5630,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 "데이터 다운로드" diff --git a/locale/lt/LC_MESSAGES/django.po b/locale/lt/LC_MESSAGES/django.po index 2662e4e22f..4ee8ac276b 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-21 00:58\n" "Last-Translator: \n" "Language-Team: Lithuanian\n" "Language: lt_LT\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "" + #: dmoj/settings.py:374 msgid "English" 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:190 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." @@ -142,6 +150,12 @@ msgstr "" msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "" @@ -256,10 +270,6 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" @@ -308,7 +318,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "" @@ -370,13 +380,13 @@ msgstr "" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "" @@ -386,8 +396,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 +412,7 @@ 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:77 @@ -464,7 +474,7 @@ msgstr "" #: judge/admin/submission.py:204 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] "" @@ -507,11 +517,11 @@ 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 @@ -629,106 +639,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "" @@ -811,7 +821,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "" @@ -894,7 +904,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "" @@ -902,7 +912,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:128 msgid "curators" msgstr "" @@ -910,7 +920,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:131 msgid "testers" msgstr "" @@ -946,7 +956,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -959,12 +969,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "" @@ -1001,7 +1011,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 +1026,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:182 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1116,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 +1124,15 @@ 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/problem.py:166 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 +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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1150,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:162 msgid "personae non gratae" msgstr "" @@ -1312,14 +1322,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "" @@ -1415,6 +1425,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1455,7 +1473,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1512,7 +1530,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "" @@ -1524,7 +1542,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "" @@ -1532,10 +1550,6 @@ msgstr "" msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - #: judge/models/problem.py:63 msgid "link" msgstr "" @@ -1550,7 +1564,7 @@ msgid "short name" msgstr "" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1558,14 +1572,14 @@ msgid "icon" msgstr "" #: judge/models/problem.py:67 -msgid "URL to the icon" +msgid "URL to the icon." msgstr "" #: judge/models/problem.py:68 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "" @@ -1594,235 +1608,235 @@ msgid "problem code" msgstr "" #: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "" @@ -1887,7 +1901,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1943,11 +1957,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 +1973,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 +1985,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 +1993,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 +2009,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 @@ -2016,7 +2030,7 @@ 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 +2042,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 +2053,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 @@ -2069,7 +2079,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2143,7 +2153,7 @@ msgid "math engine" msgstr "" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2151,7 +2161,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2159,7 +2169,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2167,11 +2177,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2179,11 +2189,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2195,7 +2205,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2219,7 +2229,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2275,6 +2285,18 @@ msgstr "" msgid "state" msgstr "" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + #: judge/models/profile.py:366 msgid "reason" msgstr "" @@ -2312,7 +2334,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 +2414,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 +2422,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 @@ -3207,7 +3229,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3248,11 +3270,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3586,7 +3603,7 @@ msgstr "" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3620,13 +3637,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3690,7 +3702,7 @@ msgstr "" msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "" @@ -3757,10 +3769,20 @@ msgstr "" msgid "Ongoing contests" msgstr "" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3777,7 +3799,7 @@ msgstr "" 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 "" @@ -3840,7 +3862,7 @@ msgstr "" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "" @@ -3873,6 +3895,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3975,7 +4009,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 +4026,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,14 +4034,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "" @@ -4144,8 +4208,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "" @@ -4179,36 +4243,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "" @@ -4230,7 +4314,7 @@ 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 @@ -4332,7 +4416,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4514,22 +4598,10 @@ msgstr "" msgid "Request" msgstr "" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "" @@ -4979,11 +5051,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -5014,7 +5087,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5027,41 +5100,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "" @@ -5070,7 +5139,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 +5172,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5118,6 +5191,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5135,19 +5209,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 "" @@ -5319,19 +5389,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 @@ -5455,10 +5529,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5491,136 +5561,151 @@ msgstr "" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5720,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 "" diff --git a/locale/nl/LC_MESSAGES/django.po b/locale/nl/LC_MESSAGES/django.po index 4543f6fd7d..8075640eac 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-21 00:58\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "" + #: dmoj/settings.py:374 msgid "English" 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:190 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." @@ -138,6 +146,12 @@ msgstr "" msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "" @@ -240,10 +254,6 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" @@ -292,7 +302,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "" @@ -348,13 +358,13 @@ msgstr "" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "" @@ -364,8 +374,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 +388,7 @@ 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:77 @@ -440,7 +450,7 @@ msgstr "" #: judge/admin/submission.py:204 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] "" @@ -481,11 +491,11 @@ 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 @@ -599,106 +609,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "" @@ -781,7 +791,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "" @@ -864,7 +874,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "" @@ -872,7 +882,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:128 msgid "curators" msgstr "" @@ -880,7 +890,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:131 msgid "testers" msgstr "" @@ -916,7 +926,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -929,12 +939,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "" @@ -971,7 +981,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 +996,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:182 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1086,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 +1094,15 @@ 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/problem.py:166 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 +1117,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1120,7 +1130,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:162 msgid "personae non gratae" msgstr "" @@ -1282,14 +1292,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "" @@ -1385,6 +1395,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1425,7 +1443,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1482,7 +1500,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "" @@ -1494,7 +1512,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "" @@ -1502,10 +1520,6 @@ msgstr "" msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - #: judge/models/problem.py:63 msgid "link" msgstr "" @@ -1520,7 +1534,7 @@ msgid "short name" msgstr "" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1528,14 +1542,14 @@ msgid "icon" msgstr "" #: judge/models/problem.py:67 -msgid "URL to the icon" +msgid "URL to the icon." msgstr "" #: judge/models/problem.py:68 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "" @@ -1564,235 +1578,235 @@ msgid "problem code" msgstr "" #: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "" @@ -1857,7 +1871,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1913,11 +1927,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 +1943,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 +1955,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 +1963,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 +1979,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 @@ -1986,7 +2000,7 @@ 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 +2012,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 +2023,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 @@ -2039,7 +2049,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2113,7 +2123,7 @@ msgid "math engine" msgstr "" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2121,7 +2131,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2129,7 +2139,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2137,11 +2147,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2149,11 +2159,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2165,7 +2175,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2189,7 +2199,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2245,6 +2255,18 @@ msgstr "" msgid "state" msgstr "" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + #: judge/models/profile.py:366 msgid "reason" msgstr "" @@ -2282,7 +2304,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 +2384,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 +2392,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 @@ -3167,7 +3189,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3208,11 +3230,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3544,7 +3561,7 @@ msgstr "" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3578,13 +3595,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3648,7 +3660,7 @@ msgstr "" msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "" @@ -3715,10 +3727,20 @@ msgstr "" msgid "Ongoing contests" msgstr "" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3735,7 +3757,7 @@ msgstr "" 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 "" @@ -3798,7 +3820,7 @@ msgstr "" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "" @@ -3831,6 +3853,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3933,7 +3967,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 +3984,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,14 +3992,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "" @@ -4096,8 +4160,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "" @@ -4131,36 +4195,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "" @@ -4182,7 +4266,7 @@ 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 @@ -4284,7 +4368,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4466,22 +4550,10 @@ msgstr "" msgid "Request" msgstr "" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "" @@ -4921,11 +4993,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4956,7 +5029,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4969,41 +5042,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "" @@ -5012,7 +5081,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 +5114,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5133,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5151,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 "" @@ -5261,19 +5331,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 @@ -5395,10 +5469,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5431,136 +5501,151 @@ msgstr "" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5660,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 "" diff --git a/locale/pl/LC_MESSAGES/django.po b/locale/pl/LC_MESSAGES/django.po index 877087c435..60bf3ea876 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-22 01:00\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Kataloński" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Niemiecki" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Grecki" + #: dmoj/settings.py:374 msgid "English" msgstr "Angielski" @@ -87,20 +91,24 @@ 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:190 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." @@ -142,6 +150,12 @@ msgstr "Załączniki" msgid "Problem" msgstr "Problem" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "Ustawienia" @@ -256,10 +270,6 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Zawartość" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Podsumowanie" @@ -308,7 +318,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Język" @@ -370,13 +380,13 @@ msgstr "strefa czasowa" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "Strefa czasowa" @@ -386,8 +396,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 +412,7 @@ 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:77 @@ -464,7 +474,7 @@ msgstr "" #: judge/admin/submission.py:204 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] "" @@ -507,11 +517,11 @@ 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 @@ -629,106 +639,106 @@ 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." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "Pobrać komentarze?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 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:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Hasło" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "Nieprawidłowa długość kodu." -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "" @@ -811,7 +821,7 @@ msgid "comments" msgstr "komentarze" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "" @@ -894,7 +904,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:512 msgid "authors" msgstr "autorzy" @@ -902,7 +912,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:128 msgid "curators" msgstr "" @@ -910,7 +920,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:131 msgid "testers" msgstr "testerzy" @@ -946,7 +956,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:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "problemy" @@ -959,12 +969,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:138 +#: judge/models/problem.py:494 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:156 msgid "publicly visible" msgstr "publicznie widoczny" @@ -1001,7 +1011,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 +1026,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:182 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1116,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 +1124,15 @@ 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/problem.py:166 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 +1147,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1150,7 +1160,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:162 msgid "personae non gratae" msgstr "" @@ -1312,14 +1322,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "punkty" @@ -1415,6 +1425,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "klucz" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "wartość" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1455,7 +1473,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1512,7 +1530,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "" @@ -1524,7 +1542,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "" @@ -1532,10 +1550,6 @@ msgstr "" msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "klucz" - #: judge/models/problem.py:63 msgid "link" msgstr "link" @@ -1550,7 +1564,7 @@ msgid "short name" msgstr "krótka nazwa" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1558,14 +1572,14 @@ msgid "icon" msgstr "ikona" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "Adres URL do ikony" +msgid "URL to the icon." +msgstr "Adres URL do ikony." #: judge/models/problem.py:68 msgid "license text" msgstr "tekst licencji" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "licencja" @@ -1594,235 +1608,235 @@ 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/" +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:122 msgid "problem name" msgstr "nazwa problemu" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 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:124 msgid "problem body" msgstr "treść problemu" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "twórcy" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "dozwolone języki" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "język" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "rozwiązanie" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "rozwiązania" @@ -1887,7 +1901,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1943,11 +1957,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 +1973,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 +1985,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 +1993,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 +2009,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 @@ -2016,7 +2030,7 @@ 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 +2042,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 +2053,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 @@ -2069,8 +2079,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" @@ -2143,7 +2153,7 @@ msgid "math engine" msgstr "" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2151,7 +2161,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2159,7 +2169,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2167,11 +2177,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2179,11 +2189,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2195,7 +2205,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2219,7 +2229,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2275,6 +2285,18 @@ msgstr "" msgid "state" msgstr "" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + #: judge/models/profile.py:366 msgid "reason" msgstr "" @@ -2312,7 +2334,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 +2414,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 +2422,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 @@ -3207,7 +3229,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3248,11 +3270,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3586,7 +3603,7 @@ msgstr "" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3620,13 +3637,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3690,7 +3702,7 @@ msgstr "" msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "" @@ -3757,10 +3769,20 @@ msgstr "" msgid "Ongoing contests" msgstr "" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3777,7 +3799,7 @@ msgstr "" 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" @@ -3840,7 +3862,7 @@ msgstr "" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "" @@ -3873,6 +3895,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3975,7 +4009,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 +4026,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,14 +4034,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "" @@ -4144,8 +4208,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "" @@ -4179,36 +4243,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "" @@ -4230,7 +4314,7 @@ 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 @@ -4332,7 +4416,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4514,22 +4598,10 @@ msgstr "" msgid "Request" msgstr "" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "" @@ -4979,11 +5051,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -5014,7 +5087,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -5027,41 +5100,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "" @@ -5070,7 +5139,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 +5172,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5118,6 +5191,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5135,19 +5209,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 "" @@ -5319,19 +5389,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 @@ -5455,10 +5529,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5491,136 +5561,151 @@ msgstr "" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5720,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 "" diff --git a/locale/pt/LC_MESSAGES/django.po b/locale/pt/LC_MESSAGES/django.po index 5a9a7c9ff2..108eee38ed 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-21 00:58\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "" + #: dmoj/settings.py:374 msgid "English" 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:190 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." @@ -138,6 +146,12 @@ msgstr "" msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "" @@ -240,10 +254,6 @@ msgstr "" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "" @@ -292,7 +302,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "" @@ -348,13 +358,13 @@ msgstr "" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "" @@ -364,8 +374,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 +388,7 @@ 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:77 @@ -440,7 +450,7 @@ msgstr "" #: judge/admin/submission.py:204 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] "" @@ -481,11 +491,11 @@ 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 @@ -599,106 +609,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "" @@ -781,7 +791,7 @@ msgid "comments" msgstr "" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "" @@ -864,7 +874,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "" @@ -872,7 +882,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:128 msgid "curators" msgstr "" @@ -880,7 +890,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:131 msgid "testers" msgstr "" @@ -916,7 +926,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "" @@ -929,12 +939,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "" @@ -971,7 +981,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 +996,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:182 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1086,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 +1094,15 @@ 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/problem.py:166 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 +1117,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1120,7 +1130,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:162 msgid "personae non gratae" msgstr "" @@ -1282,14 +1292,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "" @@ -1385,6 +1395,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1425,7 +1443,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1482,7 +1500,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "" @@ -1494,7 +1512,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "" @@ -1502,10 +1520,6 @@ msgstr "" msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - #: judge/models/problem.py:63 msgid "link" msgstr "" @@ -1520,7 +1534,7 @@ msgid "short name" msgstr "" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1528,14 +1542,14 @@ msgid "icon" msgstr "" #: judge/models/problem.py:67 -msgid "URL to the icon" +msgid "URL to the icon." msgstr "" #: judge/models/problem.py:68 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "" @@ -1564,235 +1578,235 @@ msgid "problem code" msgstr "" #: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "" @@ -1857,7 +1871,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1913,11 +1927,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 +1943,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 +1955,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 +1963,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 +1979,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 @@ -1986,7 +2000,7 @@ 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 +2012,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 +2023,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 @@ -2039,7 +2049,7 @@ msgid "self-description" msgstr "" #: judge/models/profile.py:150 -msgid "location" +msgid "time zone" msgstr "" #: judge/models/profile.py:152 @@ -2113,7 +2123,7 @@ msgid "math engine" msgstr "" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2121,7 +2131,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2129,7 +2139,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2137,11 +2147,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2149,11 +2159,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2165,7 +2175,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2189,7 +2199,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2245,6 +2255,18 @@ msgstr "" msgid "state" msgstr "" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + #: judge/models/profile.py:366 msgid "reason" msgstr "" @@ -2282,7 +2304,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 +2384,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 +2392,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 @@ -3167,7 +3189,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3208,11 +3230,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3544,7 +3561,7 @@ msgstr "" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3578,13 +3595,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3648,7 +3660,7 @@ msgstr "" msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "" @@ -3715,10 +3727,20 @@ msgstr "" msgid "Ongoing contests" msgstr "" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3735,7 +3757,7 @@ msgstr "" 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 "" @@ -3798,7 +3820,7 @@ msgstr "" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "" @@ -3831,6 +3853,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3933,7 +3967,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 +3984,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,14 +3992,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "" @@ -4096,8 +4160,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "" @@ -4131,36 +4195,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "" @@ -4182,7 +4266,7 @@ 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 @@ -4284,7 +4368,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4466,22 +4550,10 @@ msgstr "" msgid "Request" msgstr "" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "" @@ -4921,11 +4993,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4956,7 +5029,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4969,41 +5042,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "" @@ -5012,7 +5081,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 +5114,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5133,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5151,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 "" @@ -5261,19 +5331,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 @@ -5395,10 +5469,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5431,136 +5501,151 @@ msgstr "" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5660,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 "" diff --git a/locale/ro/LC_MESSAGES/django.po b/locale/ro/LC_MESSAGES/django.po index eaec8b1127..72c34a135d 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-23 01:08\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Catalană" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Germană" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Greacă" + #: dmoj/settings.py:374 msgid "English" msgstr "Engleză" @@ -83,7 +87,7 @@ msgstr "Chineză Simplificată" #: dmoj/settings.py:388 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:190 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" @@ -140,6 +148,12 @@ msgstr "Concursuri incluse" msgid "Problem" msgstr "Problemă" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "Setări" @@ -166,7 +180,7 @@ msgstr "Acces" #: judge/admin/contest.py:132 judge/admin/problem.py:135 msgid "Justice" -msgstr "Justiţie" +msgstr "Justiție" #: judge/admin/contest.py:230 #, python-format @@ -248,10 +262,6 @@ 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" @@ -277,7 +287,7 @@ msgstr "" #: judge/admin/problem.py:29 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 msgid "Social Media" @@ -300,7 +310,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Limbaj" @@ -359,13 +369,13 @@ msgstr "fus orar" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "Fus orar" @@ -375,10 +385,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 +400,8 @@ 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:77 msgid "Description" @@ -440,11 +450,11 @@ msgstr "%(problem)s în %(contest)s" #: judge/admin/submission.py:160 judge/admin/submission.py:182 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 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 msgid "Rejudge the selected submissions" @@ -452,10 +462,10 @@ msgstr "Rejurizează submisiile selectate" #: judge/admin/submission.py:204 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 @@ -494,12 +504,12 @@ 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" @@ -614,106 +624,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "Activează funcționalitățile experimentale" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "Descarci comentariile?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "Descarci submisiile?" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtrează după rezultat:" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "Orice evaluator" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Parolă" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Codul problemei trebuie să fie ^[a-z0-9]+$" -#: judge/forms.py:275 +#: judge/forms.py:271 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:276 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:281 msgid "Contest with key already exists." msgstr "Un concurs cu această cheie există deja." @@ -796,7 +806,7 @@ msgid "comments" msgstr "comentarii" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "Editorial pentru %s" @@ -879,7 +889,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:512 msgid "authors" msgstr "autori" @@ -887,7 +897,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:128 msgid "curators" msgstr "curatori" @@ -895,7 +905,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:131 msgid "testers" msgstr "" @@ -931,7 +941,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:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "probleme" @@ -944,12 +954,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:138 +#: judge/models/problem.py:494 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:156 msgid "publicly visible" msgstr "vizibil public" @@ -986,7 +996,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 +1011,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:182 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:180 #: 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 +1101,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 +1109,16 @@ 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/problem.py:166 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 +1132,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1135,7 +1145,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:162 msgid "personae non gratae" msgstr "persoane non-grata" @@ -1297,14 +1307,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "puncte" @@ -1400,6 +1410,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +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 +1458,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1497,7 +1515,7 @@ msgstr "" msgid "problem type" msgstr "tipul problemei" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "tipurile problemei" @@ -1509,7 +1527,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "grupul problemei" @@ -1517,10 +1535,6 @@ msgstr "grupul problemei" msgid "problem groups" msgstr "grupurile problemei" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - #: judge/models/problem.py:63 msgid "link" msgstr "" @@ -1535,22 +1549,22 @@ msgid "short name" msgstr "" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "Afişat pe paginile sub această licenţă" +msgid "Displayed on pages under this license." +msgstr "Afișat pe paginile sub această licență." #: judge/models/problem.py:67 msgid "icon" msgstr "pictogramă" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "Hyperlink către icon" +msgid "URL to the icon." +msgstr "Hyperlink către icon." #: judge/models/problem.py:68 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "licență" @@ -1579,237 +1593,237 @@ 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/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "numele problemei" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "creatori" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 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:137 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:139 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:143 judge/models/problem.py:497 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:144 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "se acordă punctaje parțiale" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "limbaje permise" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 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:167 msgid "problem summary" msgstr "rezumatul problemei" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "Duplică problemă" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "limbaj" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "limita de resurse specifică limbii" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "limite de resurse specifică limbii" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" -msgstr "soluţie" +msgstr "soluție" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" -msgstr "soluţii" +msgstr "soluții" #: judge/models/problem_data.py:23 msgid "Standard" @@ -1872,8 +1886,8 @@ 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" +msgid "Checker arguments as a JSON object." +msgstr "Argumente verificator ca obiect JSON." #: judge/models/problem_data.py:77 msgid "problem data set" @@ -1928,12 +1942,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 +1958,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 +1970,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 +1994,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 @@ -2001,7 +2015,7 @@ 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 +2027,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 +2038,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 @@ -2054,8 +2064,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" @@ -2128,7 +2138,7 @@ msgid "math engine" msgstr "motor de matematică" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2136,7 +2146,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2144,7 +2154,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2152,11 +2162,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2164,11 +2174,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2180,7 +2190,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2204,7 +2214,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2260,17 +2270,29 @@ msgstr "" msgid "state" msgstr "stare" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Nehotărât" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Aprobat" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Respins" + #: judge/models/profile.py:366 msgid "reason" msgstr "motiv" #: judge/models/profile.py:375 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 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 +2319,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 +2399,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 +2440,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" @@ -2842,7 +2864,7 @@ 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" +msgstr "Nu se poate trece amândoua queryset și filtrele cu cuvinte cheie" #: judge/utils/pwned.py:109 msgid "This password is too common." @@ -2953,12 +2975,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,7 +3006,7 @@ msgstr "" #: judge/views/contests.py:440 #, python-format msgid "You are not in contest \"%s\"." -msgstr "Nu sunteţi în concursul \"%s\"." +msgstr "Nu sunteți în concursul \"%s\"." #: judge/views/contests.py:459 msgid "ContestCalendar requires integer year and month" @@ -3072,21 +3094,21 @@ 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 #, python-format @@ -3096,24 +3118,24 @@ msgstr "%s Membri" #: judge/views/organization.py:138 judge/views/organization.py:141 #: judge/views/organization.py:146 msgid "Joining organization" -msgstr "Aderarea la organizaţie" +msgstr "Aderarea la organizație" #: judge/views/organization.py:138 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 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 msgid "Leaving organization" -msgstr "Părăsire organizaţie" +msgstr "Părăsire organizație" #: judge/views/organization.py:158 #, 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 #, python-format @@ -3167,11 +3189,11 @@ msgstr "Editare %s" #: judge/views/organization.py:358 judge/views/organization.py:366 msgid "Can't edit organization" -msgstr "Nu puteţi edita organizaţia" +msgstr "Nu puteți edita organizația" #: judge/views/organization.py:359 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 msgid "You are not allowed to kick people from this organization." @@ -3187,7 +3209,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3228,11 +3250,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3321,12 +3338,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 @@ -3335,7 +3352,7 @@ 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" +msgstr "Numele de utilizator trebuie să conțină litere, numere sau caractere de subliniere" #: judge/views/register.py:30 msgid "Preferred language" @@ -3352,7 +3369,7 @@ 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 msgid "Register" @@ -3398,12 +3415,12 @@ 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 msgid "All submissions" -msgstr "Toate soluţile" +msgstr "Toate soluțiile" #: judge/views/submission.py:391 judge/views/submission.py:396 msgid "All my submissions" @@ -3412,16 +3429,16 @@ msgstr "" #: judge/views/submission.py:392 judge/views/submission.py:397 #, 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 #, python-format msgid "All submissions for %s" -msgstr "Toate soluţiile pentru %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 "Trebuie să rezolvați o problemă" #: judge/views/submission.py:489 judge/views/submission.py:496 #, python-format @@ -3431,11 +3448,11 @@ msgstr "" #: judge/views/submission.py:490 judge/views/submission.py:500 #, python-format msgid "%(user)s's submissions for %(problem)s" -msgstr "Soluţiile lui %(user)s pentru %(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 "Trebuie să completați un concurs" #: judge/views/submission.py:600 judge/views/submission.py:615 #, python-format @@ -3450,7 +3467,7 @@ msgstr "" #: judge/views/submission.py:637 judge/views/submission.py:655 #, 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 #, python-brace-format @@ -3565,7 +3582,7 @@ msgstr "j M Y, \\o\\r\\a G:i" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3599,14 +3616,9 @@ msgstr "" 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:518 +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?" @@ -3669,7 +3681,7 @@ msgstr "Log out" msgid "Log in" msgstr "Autentificare" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "sau" @@ -3736,10 +3748,20 @@ msgstr "" msgid "Ongoing contests" msgstr "Concursuri in desfășurare" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "Concursuri programate" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "Comentarii" @@ -3756,7 +3778,7 @@ msgstr "" 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" @@ -3819,7 +3841,7 @@ msgstr "Comentariu nou" msgid "Invalid comment body." msgstr "Corpul comentariului nevalid." -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "Postează!" @@ -3852,6 +3874,18 @@ msgstr "Scor" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "Cod de acces invalid." @@ -3954,7 +3988,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 +4005,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,14 +4013,44 @@ 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." +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" + #: templates/contest/contest.html:43 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,8 +4184,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "Utilizatori" @@ -4155,36 +4219,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "Concursuri in Desfășurare" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" msgstr "Concursuri Programate" -#: 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "Concursuri Terminate" @@ -4206,7 +4290,7 @@ 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 @@ -4308,8 +4392,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 +4454,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 +4476,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 +4488,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 +4532,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:" @@ -4476,7 +4560,7 @@ msgstr "Nu aveți cereri de aprobare." #: templates/organization/requests/pending.html:17 #: templates/problem/data.html:392 msgid "Delete?" -msgstr "Ştergeţi?" +msgstr "Ștergeți?" #: templates/organization/requests/request.html:24 msgid "Select your class:" @@ -4490,22 +4574,10 @@ msgstr "Motivul pentru care doriți să vă alăturați:" msgid "Request" msgstr "Solicitare" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Nehotărât" - #: 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 "" @@ -4689,7 +4761,7 @@ msgstr "Versiune PDF" #: templates/problem/problem.html:101 templates/problem/problem.html:111 #: templates/problem/problem.html:116 msgid "Submit solution" -msgstr "Trimite soluţie" +msgstr "Trimite soluție" #: templates/problem/problem.html:104 #, python-format @@ -4705,11 +4777,11 @@ msgstr "" #: templates/problem/problem.html:124 msgid "My submissions" -msgstr "Soluţiile mele" +msgstr "Soluțiile mele" #: templates/problem/problem.html:128 msgid "Best submissions" -msgstr "Cele mai bune soluţii" +msgstr "Cele mai bune soluții" #: templates/problem/problem.html:131 msgid "Read editorial" @@ -4741,7 +4813,7 @@ msgstr "Puncte:" #: templates/problem/problem.html:171 templates/problem/problem.html:173 msgid "(partial)" -msgstr "(parţial)" +msgstr "(parțial)" #: templates/problem/problem.html:178 msgid "Time limit:" @@ -4800,7 +4872,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" @@ -4885,7 +4957,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?" @@ -4950,30 +5022,31 @@ msgstr "" 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" -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:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "Ne vedem în curând!" #: 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 +5058,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:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Continuă >" @@ -4998,41 +5071,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "Înscrie-te!" @@ -5041,7 +5110,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 +5143,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5089,6 +5162,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5106,19 +5180,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 "" @@ -5290,20 +5360,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)" @@ -5425,10 +5499,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5461,136 +5531,151 @@ msgstr "Rang" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 "Auto-descriere" -#: templates/user/edit-profile.html:291 +#: 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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "Temă editor" -#: templates/user/edit-profile.html:305 +#: templates/user/edit-profile.html:299 msgid "Math engine" msgstr "Motor de matematică" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "Schimbați avatarul" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "Schimbați parola" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "Autentificarea în doi pași este activată" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "Dezactivează" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "Reîmprospătează" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "Ascuns" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "Activează" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "Chei de securitate" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "Adaugă" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "Script de utilizator" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5690,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 +5742,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" diff --git a/locale/ru/LC_MESSAGES/django.po b/locale/ru/LC_MESSAGES/django.po index 4664ae0782..5bd95ef4f4 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-22 01:00\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Каталанский" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Немецкий" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Греческий" + #: dmoj/settings.py:374 msgid "English" 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:190 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." @@ -142,6 +150,12 @@ msgstr "Включены конкурсы" msgid "Problem" msgstr "Проблема" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "Настройки" @@ -256,10 +270,6 @@ msgstr "виртуальный" msgid "link path" msgstr "адресс ссылки" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "Содержание" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "Сводка" @@ -308,7 +318,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Язык" @@ -370,13 +380,13 @@ msgstr "часовой пояс" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "Часовой пояс" @@ -386,11 +396,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 +412,8 @@ 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:77 msgid "Description" @@ -464,11 +474,11 @@ msgstr "Перетестировать выбранные посылки" #: judge/admin/submission.py:204 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 @@ -507,12 +517,12 @@ 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" @@ -629,106 +639,106 @@ msgid "Invalid two-factor authentication token." msgstr "Недействительный двухфакторный код аутентификации." #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." -msgstr "Коды Scratch должны содержать 16 символов base32." +msgid "Scratch codes must be 16 Base32 characters." +msgstr "Коды Scratch должны содержать 16 символов Base32." -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "Неверный scratch-код." -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "Уведомлять об изменениях в соревновании" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "Включить экспериментальные возможности" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "Вы не можете состоять более чем в {count} публичных организациях." -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "Загрузить комментарии?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "Загрузить решения?" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "Фильтр по коду задач:" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "Оставьте пустым, чтобы включить все сданные решения" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Фильтр по результату:" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "Пожалуйста, выберите хотя бы одну вещь для загрузки." -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "Любой судья" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Пароль" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "Неверная длина кода." -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "Недействительный WebAuthn ответ." -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "Неверный идентификатор учетных данных WebAuthn." -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "Неверный токен двухфакторной аутентификации или scratch-код." -#: judge/forms.py:266 +#: judge/forms.py:262 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:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Код задачи должен быть ^[a-z0-9]+$" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "Задача с кодом уже существует." -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "Идентификатор соревнования должен быть ^[a-z0-9]+$" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "Соревнование с ключом уже существует." @@ -811,7 +821,7 @@ msgid "comments" msgstr "комментарии" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "Разбор задач для %s" @@ -894,7 +904,7 @@ msgid "contest name" msgstr "название соревнования" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "авторы" @@ -902,7 +912,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:128 msgid "curators" msgstr "" @@ -910,7 +920,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:131 msgid "testers" msgstr "" @@ -946,7 +956,7 @@ msgstr "" msgid "description" msgstr "описание" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "задачи" @@ -959,12 +969,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "ограничение по памяти" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "" @@ -1001,7 +1011,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 +1026,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:182 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1116,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 +1124,15 @@ 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/problem.py:166 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 +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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1150,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:162 msgid "personae non gratae" msgstr "" @@ -1312,14 +1322,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "очки" @@ -1415,6 +1425,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "значение" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1455,7 +1473,7 @@ msgstr "" msgid "slug" msgstr "" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1512,7 +1530,7 @@ msgstr "" msgid "problem type" msgstr "" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "" @@ -1524,7 +1542,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "" @@ -1532,10 +1550,6 @@ msgstr "" msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "" - #: judge/models/problem.py:63 msgid "link" msgstr "" @@ -1550,7 +1564,7 @@ msgid "short name" msgstr "" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1558,14 +1572,14 @@ msgid "icon" msgstr "" #: judge/models/problem.py:67 -msgid "URL to the icon" +msgid "URL to the icon." msgstr "" #: judge/models/problem.py:68 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "" @@ -1594,235 +1608,235 @@ msgid "problem code" msgstr "" #: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +msgid "The memory limit for this problem, in kilobytes (e.g. 256mb = 262144 kilobytes)." msgstr "" -#: judge/models/problem.py:151 +#: judge/models/problem.py:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "язык" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "" @@ -1887,7 +1901,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1943,11 +1957,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 +1973,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 +1985,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 +1993,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 +2009,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 @@ -2016,7 +2030,7 @@ 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 +2042,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 +2053,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 @@ -2069,8 +2079,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" @@ -2143,7 +2153,7 @@ msgid "math engine" msgstr "" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2151,7 +2161,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2159,7 +2169,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2167,11 +2177,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2179,11 +2189,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2195,7 +2205,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2219,7 +2229,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2275,6 +2285,18 @@ msgstr "" msgid "state" msgstr "" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "" + #: judge/models/profile.py:366 msgid "reason" msgstr "" @@ -2312,7 +2334,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 +2414,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 +2422,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 @@ -3207,7 +3229,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3248,11 +3270,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3586,7 +3603,7 @@ msgstr "" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3620,13 +3637,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3690,7 +3702,7 @@ msgstr "Bыйти" msgid "Log in" msgstr "Войти" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "" @@ -3757,10 +3769,20 @@ msgstr "" msgid "Ongoing contests" msgstr "Текущие соревнования" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "Предстоящие соревнования" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3777,7 +3799,7 @@ msgstr "" 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 "" @@ -3840,7 +3862,7 @@ msgstr "Добавить комментарий" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "" @@ -3873,6 +3895,18 @@ msgstr "" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3975,7 +4009,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 +4026,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,14 +4034,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "" @@ -4144,8 +4208,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "Пользователи" @@ -4179,36 +4243,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "Текущие Соревнования" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "Прошедшие Соревнования" @@ -4230,7 +4314,7 @@ 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 @@ -4332,7 +4416,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4514,22 +4598,10 @@ msgstr "" msgid "Request" msgstr "" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "" @@ -4979,11 +5051,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -5014,7 +5087,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Продолжить >" @@ -5027,41 +5100,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +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:213 msgid "Register!" msgstr "Зарегистрироваться!" @@ -5070,7 +5139,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 +5172,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5118,6 +5191,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5135,19 +5209,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 "" @@ -5319,19 +5389,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 @@ -5455,10 +5529,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5491,136 +5561,151 @@ msgstr "" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5720,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 "" diff --git a/locale/sr_Latn/LC_MESSAGES/django.po b/locale/sr_Latn/LC_MESSAGES/django.po index 3ad3a2c485..c2bf491bed 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-22 01:00\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Katalonski" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Nemački" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Grčki" + #: dmoj/settings.py:374 msgid "English" msgstr "Engleski" @@ -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:190 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." @@ -140,6 +148,12 @@ msgstr "Uključena takmičenja" msgid "Problem" msgstr "Zadatak" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "Podešavanja" @@ -248,10 +262,6 @@ 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" @@ -300,7 +310,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Jezik" @@ -359,13 +369,13 @@ msgstr "vremenska zona" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "Vremenska zona" @@ -375,8 +385,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 +400,8 @@ 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:77 msgid "Description" @@ -452,7 +462,7 @@ msgstr "Ponovo oceni izabrane predaje" #: judge/admin/submission.py:204 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." @@ -494,12 +504,12 @@ 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" @@ -614,106 +624,106 @@ 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." +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:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "Nevažeći scratch kod." -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "Prijavi se za vesti sa takmičenja" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "Dozvolite eksperimentalne karakteristike" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, 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." -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "Download komentare?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "Download rešenja?" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "Filtriraj po glob kodu zadatka:" -#: judge/forms.py:103 +#: judge/forms.py:99 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:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Filtriraj po rezultatima:" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "Izaberite barem jednu stvar za download." -#: judge/forms.py:138 +#: judge/forms.py:134 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:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Lozinka" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "Nevažeća dužina koda." -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "Nevažeći WebAuthn odgovor." -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "Nevažeći WebAuthn credential ID." -#: judge/forms.py:262 +#: judge/forms.py:258 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:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Kod zadatka mora biti ^[a-z0-9]+$" -#: judge/forms.py:275 +#: judge/forms.py:271 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:276 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:281 msgid "Contest with key already exists." msgstr "Takmičenje sa tim ključem već postoji." @@ -796,7 +806,7 @@ msgid "comments" msgstr "komentari" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "Uvodnik za %s" @@ -879,7 +889,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:512 msgid "authors" msgstr "autori" @@ -887,7 +897,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:128 msgid "curators" msgstr "kustos" @@ -895,7 +905,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:131 msgid "testers" msgstr "testeri" @@ -931,7 +941,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:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "zadaci" @@ -944,12 +954,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:138 +#: judge/models/problem.py:494 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:156 msgid "publicly visible" msgstr "vidljivo za javnost" @@ -986,8 +996,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 +1011,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:182 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1101,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 +1109,15 @@ 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/problem.py:166 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 +1132,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1135,7 +1145,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:162 msgid "personae non gratae" msgstr "personae non gratae" @@ -1297,14 +1307,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "poeni" @@ -1400,6 +1410,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "ključ" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1440,7 +1458,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:510 msgid "public visibility" msgstr "" @@ -1497,7 +1515,7 @@ msgstr "ime kategorije zadatka" msgid "problem type" msgstr "tip zadatka" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "tipovi zadataka" @@ -1509,7 +1527,7 @@ msgstr "ID grupe zadataka" msgid "problem group name" msgstr "ime grupe zadataka" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "grupa zadataka" @@ -1517,10 +1535,6 @@ msgstr "grupa zadataka" msgid "problem groups" msgstr "grupe zadataka" -#: judge/models/problem.py:61 -msgid "key" -msgstr "ključ" - #: judge/models/problem.py:63 msgid "link" msgstr "link" @@ -1535,22 +1549,22 @@ 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" +msgid "Displayed on pages under this license." +msgstr "Prikazano na stranicama pod ovom licencom." #: judge/models/problem.py:67 msgid "icon" msgstr "ikona" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL za ikonu" +msgid "URL to the icon." +msgstr "URL za ikonu." #: judge/models/problem.py:68 msgid "license text" msgstr "tekst licence" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "licenca" @@ -1579,235 +1593,235 @@ 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/" +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:122 msgid "problem name" msgstr "ime zadatka" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 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:124 msgid "problem body" msgstr "sadržaj zadatka" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "kreatori" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 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:137 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:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "dozvoljava dodeljivanje delimičnih poena" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "dozvoljeni jezici" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "Lista dozvoljenih jezika za rešenja." -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "broj korisnika" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "Vidi sakrivene zadatke" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "jezik" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "prevedeno ime" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "preveden opis" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "prevod zadatka" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "prevodi zadatka" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "datum objave" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "rešenje" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "rešenja" @@ -1872,7 +1886,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1928,12 +1942,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 +1958,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 +1970,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 +1994,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 @@ -2001,7 +2015,7 @@ 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 +2027,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 +2038,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 @@ -2054,8 +2064,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" @@ -2128,7 +2138,7 @@ msgid "math engine" msgstr "math engine" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2136,7 +2146,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2144,7 +2154,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2152,11 +2162,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2164,11 +2174,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2180,7 +2190,7 @@ msgid "API token" msgstr "API token" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2204,7 +2214,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2260,6 +2270,18 @@ msgstr "" msgid "state" msgstr "status" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Odbijeno" + #: judge/models/profile.py:366 msgid "reason" msgstr "razlog" @@ -2297,7 +2319,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 +2399,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 +2407,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 @@ -3187,7 +3209,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3228,11 +3250,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3565,7 +3582,7 @@ msgstr "j. M Y. \\у H:i" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "Skini vaše podatke" @@ -3599,13 +3616,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3669,7 +3681,7 @@ msgstr "" msgid "Log in" msgstr "" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "ili" @@ -3736,10 +3748,20 @@ msgstr "" msgid "Ongoing contests" msgstr "" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3756,7 +3778,7 @@ msgstr "" 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" @@ -3819,7 +3841,7 @@ msgstr "" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "" @@ -3852,6 +3874,18 @@ msgstr "Rezultat" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3954,7 +3988,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 +4005,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,14 +4013,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "j. F Y. \\у H:i T" @@ -4120,8 +4184,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "" @@ -4155,36 +4219,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "" @@ -4206,7 +4290,7 @@ 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 @@ -4308,7 +4392,7 @@ msgid "Language AC Rate" msgstr "" #: templates/license.html:12 -msgid "Source:" +msgid "Visit source" msgstr "" #: templates/newsletter/common.html:6 @@ -4490,22 +4574,10 @@ msgstr "" msgid "Request" msgstr "" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "" @@ -4950,11 +5022,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4985,7 +5058,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "" @@ -4998,41 +5071,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "" @@ -5041,7 +5110,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 +5143,17 @@ msgid "Enable Two Factor Authentication" msgstr "Omogući Dvofaktornu Autentifikaciju" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5089,6 +5162,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5106,19 +5180,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 "" @@ -5290,19 +5360,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 @@ -5425,10 +5499,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5461,136 +5531,151 @@ msgstr "Rang" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 "Samo-opis" -#: 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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: templates/user/edit-profile.html:299 msgid "Math engine" msgstr "Math engine" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "Dvofaktorna autentifikacija je uključena" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "Sakriveno" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "Dvofaktorna autentifikacija je isključena" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "Uključi" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "API Token" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "Izbriši" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "Dodaj" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5690,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 "" diff --git a/locale/tr/LC_MESSAGES/django.po b/locale/tr/LC_MESSAGES/django.po index 84f4502033..5224f6d49b 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-22 01:00\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Katalanca" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Almanca" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Yunanca" + #: dmoj/settings.py:374 msgid "English" msgstr "İngilizce" @@ -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:190 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." @@ -138,6 +146,12 @@ msgstr "Yarışmalar" msgid "Problem" msgstr "" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "Ayarlar" @@ -240,10 +254,6 @@ 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" @@ -292,7 +302,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Dil" @@ -348,13 +358,13 @@ msgstr "saat dilimi" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "Saat dilimi" @@ -364,8 +374,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 +388,8 @@ 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:77 msgid "Description" @@ -440,7 +450,7 @@ msgstr "Seçili çözümleri yeniden değerlendir" #: judge/admin/submission.py:204 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ı." @@ -481,12 +491,12 @@ 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" @@ -599,106 +609,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "Yarışma güncellemelerine abone ol" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "Deneysel özellikleri aç" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, 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." -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "Şifre" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "Problem kodu ^[a-z0-9]+$ olmalıdır" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 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:281 msgid "Contest with key already exists." msgstr "" @@ -781,7 +791,7 @@ msgid "comments" msgstr "yorumlar" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "%s problemi için editorial" @@ -864,7 +874,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:512 msgid "authors" msgstr "yazarlar" @@ -872,7 +882,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:128 msgid "curators" msgstr "küratörler" @@ -880,7 +890,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:131 msgid "testers" msgstr "testçiler" @@ -916,7 +926,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:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "problemler" @@ -929,12 +939,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:138 +#: judge/models/problem.py:494 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:156 msgid "publicly visible" msgstr "herkese açık" @@ -971,7 +981,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 +996,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:182 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:180 #: 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 +1086,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 +1094,15 @@ 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/problem.py:166 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 +1117,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:168 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 +1130,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:162 msgid "personae non gratae" msgstr "istenmeyen kişiler" @@ -1282,14 +1292,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "puan" @@ -1385,6 +1395,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +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 +1443,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:510 msgid "public visibility" msgstr "halka açık mı?" @@ -1482,7 +1500,7 @@ msgstr "problem kategorisi adı" msgid "problem type" msgstr "problem tipi" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "problem tipleri" @@ -1494,7 +1512,7 @@ msgstr "problem grup ID'si" msgid "problem group name" msgstr "problem grubu adı" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "problem grubu" @@ -1502,10 +1520,6 @@ msgstr "problem grubu" msgid "problem groups" msgstr "problem grupları" -#: judge/models/problem.py:61 -msgid "key" -msgstr "anahtar" - #: judge/models/problem.py:63 msgid "link" msgstr "" @@ -1520,22 +1534,22 @@ 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" +msgid "Displayed on pages under this license." +msgstr "Bu lisans altındaki sayfalarda gösterilir." #: judge/models/problem.py:67 msgid "icon" msgstr "ikon" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "ikon URL'si" +msgid "URL to the icon." +msgstr "Ikon URL'si." #: judge/models/problem.py:68 msgid "license text" msgstr "lisans metni" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "lisans" @@ -1564,235 +1578,235 @@ 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/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "problem adı" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "problem içeriği" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "yaratıcılar" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "kısa devre" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "kısmi puanlama yapılabilir" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "izin verilen diller" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "elle yönetilir" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +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:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "problem özeti" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "Soruyu çoğalt" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "dil" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "çevrilmiş ad" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "çevrilmiş tanım" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "problem çevirisi" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "problem çevirileri" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "açıklık getirilmiş problem" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "açıklama içeriği" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "açıklama zaman damgası (timestamp)" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "dile özel kaynak sınırı" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "dile özel kaynak sınırları" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "ilgili problem" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "yayın tarihi" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "problem analizi içeriği" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "çözüm" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "çözümler" @@ -1857,8 +1871,8 @@ 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" +msgid "Checker arguments as a JSON object." +msgstr "Checker değişkenleri, JSON nesnesi olarak." #: judge/models/problem_data.py:77 msgid "problem data set" @@ -1913,12 +1927,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 +1943,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 +1955,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 +1979,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 @@ -1986,7 +2000,7 @@ 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 +2012,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 +2023,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 @@ -2039,8 +2049,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" @@ -2113,15 +2123,15 @@ 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" +msgid "The rendering engine used to render math." +msgstr "Matematiksel ifadeleri gösteren program." #: judge/models/profile.py:179 msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2129,7 +2139,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2137,11 +2147,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2149,11 +2159,11 @@ msgid "scratch codes" msgstr "" #: judge/models/profile.py:188 -msgid "JSON array of 16 character base32-encoded codes for scratch codes" +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" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." msgstr "" #: judge/models/profile.py:194 @@ -2165,7 +2175,7 @@ msgid "API token" msgstr "" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2189,7 +2199,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2245,6 +2255,18 @@ msgstr "istek zamanı" msgid "state" msgstr "durum" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Beklemede" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Onaylandı" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Geri çevrildi" + #: judge/models/profile.py:366 msgid "reason" msgstr "sebep" @@ -2282,7 +2304,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 +2384,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" @@ -3167,7 +3189,7 @@ msgstr "Atmaya çalıştığın üye bulunamıyor!" #: judge/views/organization.py:377 #, 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 @@ -3208,11 +3230,6 @@ msgstr "Böyle bir problem analizi yok :(" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3544,7 +3561,7 @@ msgstr "j M Y, G:i" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3578,14 +3595,9 @@ msgstr "Sıralama" 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:518 +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?" @@ -3648,7 +3660,7 @@ msgstr "Çıkış yap" msgid "Log in" msgstr "Giriş yap" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "ya da" @@ -3715,10 +3727,20 @@ msgstr "Henüz bir açıklama yapılmadı." msgid "Ongoing contests" msgstr "Devam eden yarışmalar" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "Gelecek yarışmalar" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "Son yorumlar" @@ -3735,7 +3757,7 @@ msgstr "Açık biletlerim" 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" @@ -3798,7 +3820,7 @@ msgstr "Yeni yorum" msgid "Invalid comment body." msgstr "Yorum metninde hata!" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "Yayınla!" @@ -3831,6 +3853,18 @@ msgstr "Puan" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "Hatalı erişim kodu!" @@ -3933,7 +3967,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 +3984,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,14 +3992,44 @@ 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." +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "" + #: templates/contest/contest.html:43 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,8 +4160,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "Kullanıcılar" @@ -4131,36 +4195,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "Devam Eden Yarışmalar" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" msgstr "Gelecek Yarışmalar" -#: 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "Eski Yarışmalar" @@ -4182,7 +4266,7 @@ 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 @@ -4284,8 +4368,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 @@ -4466,22 +4550,10 @@ msgstr "Katılma sebebin:" msgid "Request" msgstr "İstek" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Beklemede" - #: 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" @@ -4921,11 +4993,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4956,7 +5029,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:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Devam et >" @@ -4969,41 +5042,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "Organizasyon üyelikleri" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "Kaydol!" @@ -5012,7 +5081,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 +5114,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5060,6 +5133,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5077,19 +5151,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 "" @@ -5261,20 +5331,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)" @@ -5395,10 +5469,6 @@ 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:364 msgid "Associated object" msgstr "İlişkili nesne" @@ -5431,137 +5501,152 @@ msgstr "Sıralama" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 "Künye" -#: 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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "Editör teması" -#: templates/user/edit-profile.html:305 +#: templates/user/edit-profile.html:299 msgid "Math engine" msgstr "Matematik motoru" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "Profil fotoğrafı değiştir" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "Şifre değiştir" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "Userscript" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5660,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 "" diff --git a/locale/vi/LC_MESSAGES/django.po b/locale/vi/LC_MESSAGES/django.po index 87265c7ec5..85bb51a2e5 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-09-05 01:13\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "Tiếng Catalan" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "Tiếng Đức" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "Tiếng Hy Lạp" + #: dmoj/settings.py:374 msgid "English" msgstr "Tiếng Anh" @@ -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:190 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." @@ -136,6 +144,12 @@ msgstr "Các cuộc thi" msgid "Problem" msgstr "Đề bài" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "Cài đặt" @@ -232,10 +246,6 @@ 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" @@ -284,7 +294,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "Ngôn ngữ" @@ -337,13 +347,13 @@ msgstr "múi giờ" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "Múi giờ" @@ -353,8 +363,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 +376,8 @@ 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:77 msgid "Description" @@ -428,7 +438,7 @@ msgstr "Chấm lại các bài đã chọn" #: judge/admin/submission.py:204 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." @@ -468,12 +478,12 @@ 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" @@ -584,106 +594,106 @@ 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." +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:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "Mã dự phòng không hợp lệ." -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "Đăng ký để nhận các cập nhật về cuộc thi" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "Bật các tính năng đang thử nghiệm" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, 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." -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "Tải các bình luận về?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "Tải xuống các bài nộp?" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "Sắp xếp theo mã bài tập:" -#: judge/forms.py:103 +#: judge/forms.py:99 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:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "Lọc theo kết quả:" -#: judge/forms.py:112 +#: judge/forms.py:108 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:134 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:155 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:156 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:188 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:219 msgid "Invalid WebAuthn response." msgstr "Phản hồi WebAuthn không hợp lệ." -#: judge/forms.py:226 +#: judge/forms.py:222 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:228 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:258 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:262 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:266 judge/models/problem.py:120 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:271 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:276 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:281 msgid "Contest with key already exists." msgstr "Mã kỳ thi đã tồn tại." @@ -766,7 +776,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:523 #, python-format msgid "Editorial for %s" msgstr "Hướng giải cho %s" @@ -849,7 +859,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:512 msgid "authors" msgstr "tác giả" @@ -857,7 +867,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:128 msgid "curators" msgstr "giám khảo" @@ -865,7 +875,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:131 msgid "testers" msgstr "người kiểm tra" @@ -901,7 +911,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:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "đề bài" @@ -914,12 +924,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:138 +#: judge/models/problem.py:494 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:156 msgid "publicly visible" msgstr "công khai" @@ -956,8 +966,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 +981,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 "" #: 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 "" -#: 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:182 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:180 #: 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 +1071,24 @@ 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/problem.py:166 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 +1102,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:168 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 +1115,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:162 msgid "personae non gratae" msgstr "cá nhân - không tính điểm" @@ -1267,14 +1277,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "điểm" @@ -1370,6 +1380,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:61 +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 +1428,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:510 msgid "public visibility" msgstr "hiển thị công khai" @@ -1467,7 +1485,7 @@ msgstr "phân nhóm bài" msgid "problem type" msgstr "kiểu bài tập" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "kiểu bài tập" @@ -1479,7 +1497,7 @@ msgstr "ID của nhóm đề bài" 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:56 judge/models/problem.py:136 msgid "problem group" msgstr "nhóm đề bài" @@ -1487,10 +1505,6 @@ msgstr "nhóm đề bài" msgid "problem groups" msgstr "nhóm đề bài" -#: judge/models/problem.py:61 -msgid "key" -msgstr "khóa" - #: judge/models/problem.py:63 msgid "link" msgstr "liên kết" @@ -1505,22 +1519,22 @@ 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" +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 msgid "icon" msgstr "biểu tượng" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "URL cho biểu tượng" +msgid "URL to the icon." +msgstr "URL cho biểu tượng." #: judge/models/problem.py:68 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:77 judge/models/problem.py:164 msgid "license" msgstr "giấy phép" @@ -1549,235 +1563,235 @@ 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" +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:122 msgid "problem name" msgstr "tên bài tập" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 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:124 msgid "problem body" msgstr "nội dung bài tập" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "người tạo" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 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:137 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:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "ngắn mạch" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "cho phép cho điểm từng phần" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "ngôn ngữ cho phép" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 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:157 msgid "manually managed" msgstr "quản lý thủ công" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 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:159 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:161 +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:163 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:165 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:167 msgid "problem summary" msgstr "tổng quan bài tập" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "số thành viên" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 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:171 msgid "solve rate" msgstr "tỉ lệ giải được" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 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:173 msgid "submission source visibility" msgstr "hiển thị nguồn" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 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:454 msgid "See hidden problems" msgstr "Xem các bài bị ẩn" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "Sửa đề bài của mình" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "Sửa mọi đề bài" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "Sửa mọi đề bài công khai" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 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:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "Nhân bản bài tập" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "Thay đổi trường is_public" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "Thay đổi trường is_manually_managed" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 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:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "ngôn ngữ" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "tên bộ dịch" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "mô tả bộ dịch" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "dịch đầu bài" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "dịch đầu bài" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "bài tập được làm rõ" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "nội dung làm rõ" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "thời gian làm rõ" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "làm rõ vấn đề" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "làm rõ vấn đề" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 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:504 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:508 msgid "associated problem" msgstr "đầu bài liên quan" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "ngày công bố" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "nội dung hướng dẫn giải" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "Xem các lời giải ẩn" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "lời giải" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "lời giải" @@ -1842,8 +1856,8 @@ 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" +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 msgid "problem data set" @@ -1898,12 +1912,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 +1928,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 +1940,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 +1964,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" @@ -1971,8 +1985,8 @@ 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 +1997,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 +2008,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" @@ -2024,8 +2034,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" @@ -2098,48 +2108,48 @@ 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" +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 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" +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 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" +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 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" +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" +msgid "TOTP key must be empty or Base32." +msgstr "Mã TOTP cần rỗng hoặc Base32." #: judge/models/profile.py:187 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" +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" +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 msgid "last TOTP timecode" @@ -2150,8 +2160,8 @@ 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ự" +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 msgid "API token must be None or hexadecimal" @@ -2174,8 +2184,8 @@ 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" +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 msgid "Shows in-progress development stuff" @@ -2230,6 +2240,18 @@ msgstr "thời gian yêu cầu" msgid "state" msgstr "trạng thái" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "Đang chờ" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "Phê duyệt" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "Bị từ chối" + #: judge/models/profile.py:366 msgid "reason" msgstr "lý do" @@ -2267,8 +2289,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 +2369,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" @@ -3147,8 +3169,8 @@ msgstr "Thành viên bạn muốn loại không tồn tại!" #: judge/views/organization.py:377 #, 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 #, python-brace-format @@ -3188,11 +3210,6 @@ msgstr "Không có hướng dẫn" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3523,7 +3540,7 @@ msgstr "j \\t\\há\\n\\g n \\nă\\m Y, G:i" 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:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "Đang tải xuống dữ liệu" @@ -3557,14 +3574,9 @@ msgstr "Bảng xếp hạng" 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:518 +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?" @@ -3627,7 +3639,7 @@ msgstr "Đăng xuất" msgid "Log in" msgstr "Đăng nhập" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "hoặc" @@ -3694,10 +3706,20 @@ msgstr "Chưa có lời làm rõ nào được đưa ra ở thời điểm này. msgid "Ongoing contests" msgstr "Cuộc thi đang diễn ra" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "Kết thúc trong %(countdown)s." + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "Cuộc thi sắp tới" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "Bắt đầu sau %(countdown)s." + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "Dòng bình luận" @@ -3714,7 +3736,7 @@ msgstr "Thẻ mở của tôi" 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" @@ -3777,7 +3799,7 @@ msgstr "Bình luận mới" msgid "Invalid comment body." msgstr "Bình luận không hợp lệ." -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "Đăng!" @@ -3810,6 +3832,18 @@ msgstr "Điểm" msgid "No votes" msgstr "Không có phiếu bầu" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "Nhấn để sao chép" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "Sao chép" + +#: templates/common-content.html:46 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ệ." @@ -3912,7 +3946,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 +3963,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,14 +3971,44 @@ 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." +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "Bắt đầu sau %(countdown)s" + #: templates/contest/contest.html:43 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,8 +4136,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "Thành viên" @@ -4107,36 +4171,56 @@ 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 +#: 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 +#: 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: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:203 msgid "Ongoing Contests" msgstr "Cuộc thi đang diễn ra" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" msgstr "Cuộc thi sắp tới" -#: templates/contest/list.html:266 +#: 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "Cuộc thi đã qua" @@ -4158,7 +4242,7 @@ 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 @@ -4260,8 +4344,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 @@ -4442,22 +4526,10 @@ msgstr "Lý do của bạn để tham gia:" msgid "Request" msgstr "Yêu cầu" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -msgstr "Đang chờ" - #: 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" @@ -4892,11 +4964,12 @@ msgstr "Quên mật khẩu trên trang %(site_name)s? Đừng lo lắng!" 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" +#: templates/registration/password_reset_email.html:16 +#, 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.html:17 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "Hẹn gặp lại!" @@ -4927,7 +5000,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:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "Tiếp tục >" @@ -4940,41 +5013,37 @@ 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 +#: templates/user/edit-profile.html:308 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:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "Đăng ký!" @@ -4983,7 +5052,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 +5085,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:375 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:376 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:377 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 +5104,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:379 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 +5122,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ự:" @@ -5232,20 +5302,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)" @@ -5365,10 +5439,6 @@ 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:364 msgid "Associated object" msgstr "Các vật liên quan" @@ -5401,137 +5471,152 @@ msgstr "Xếp hạng" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 "Mô tả bản thân" -#: templates/user/edit-profile.html:291 +#: 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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "Giao diện khung viết code" -#: templates/user/edit-profile.html:305 +#: templates/user/edit-profile.html:299 msgid "Math engine" msgstr "Công cụ toán học" -#: templates/user/edit-profile.html:339 templates/user/edit-profile.html:341 +#: templates/user/edit-profile.html:333 templates/user/edit-profile.html:335 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:340 msgid "Change your password" msgstr "Đổi mật khẩu của bạn" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 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:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "Vô hiệu hóa" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "Làm mới" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "Mã dự phòng:" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "Ẩn" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 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:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "Kích hoạt" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "Mã API" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "Khóa bảo mật" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "Xóa" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 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:429 msgid "Add" msgstr "Thêm" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "Script tự định nghĩa" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5630,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" diff --git a/locale/zh_Hans/LC_MESSAGES/django.po b/locale/zh_Hans/LC_MESSAGES/django.po index ea2dffa03d..354935ddf1 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-09-05 01:11\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "加泰隆语" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "德语" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "希腊语" + #: dmoj/settings.py:374 msgid "English" 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:190 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,6 +144,12 @@ msgstr "带标签的竞赛" msgid "Problem" msgstr "题目" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "设置" @@ -232,10 +246,6 @@ msgstr "模拟竞赛" msgid "link path" msgstr "链接路径" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "内容" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "概要" @@ -284,7 +294,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "语言" @@ -337,13 +347,13 @@ msgstr "时区" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "时区" @@ -353,9 +363,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 +376,8 @@ 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:77 msgid "Description" @@ -428,7 +438,7 @@ msgstr "重新评分选定的程序" #: judge/admin/submission.py:204 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个程序提交的分数已被重新计算。" @@ -468,12 +478,12 @@ 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" @@ -539,7 +549,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." @@ -584,106 +594,106 @@ msgid "Invalid two-factor authentication token." msgstr "无效的双重验证码。" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "一次性双重验证码必须是16个32十进制字符。" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "无效的一次性代码。" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "订阅有关于竞赛的资讯" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "允许使用实验性功能" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "你不能参与超过{count}个组织。" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "下载评论?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "下载提交?" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "按题目代码glob过滤:" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "留空以包含所有提交" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "以结果过滤:" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "请选择下载至少一个东西。" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "任何裁判服务器" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "密码" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "无效的代码长度。" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "WebAuthn回复无效。" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "未发出WebAuthn质疑。" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "无效的WebAuthn凭据ID。" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "无效的双重验证码或者一次性代码。" -#: judge/forms.py:266 +#: judge/forms.py:262 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:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "题目代码必须匹配 ^[a-z0-9]+$" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "代码已经存在题目。" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "竞赛标识必须匹配 ^[a-z0-9]+$" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "有这个代码的竞赛已经存在。" @@ -766,7 +776,7 @@ msgid "comments" msgstr "评论" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "%s 的题解" @@ -849,7 +859,7 @@ msgid "contest name" msgstr "竞赛名称" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "作者" @@ -857,7 +867,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:128 msgid "curators" msgstr "策展人" @@ -865,7 +875,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:131 msgid "testers" msgstr "测试人员" @@ -901,7 +911,7 @@ msgstr "" msgid "description" msgstr "描述" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "题目" @@ -914,12 +924,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "时间限制" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "公开" @@ -956,7 +966,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 +981,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 "只运行预测试" -#: 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:182 msgid "private to organizations" msgstr "只对组织可见" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1071,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 +1079,15 @@ 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/problem.py:166 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 +1102,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "在meta description标签内显示的纯文本介绍。" @@ -1105,7 +1115,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:162 msgid "personae non gratae" msgstr "不受欢迎人物" @@ -1267,14 +1277,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "分" @@ -1370,6 +1380,14 @@ msgstr "竞赛MOSS结果" msgid "contest moss results" msgstr "竞赛MOSS结果" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "键" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "值" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "配置项目" @@ -1410,7 +1428,7 @@ msgstr "文章标题" msgid "slug" msgstr "网址标志" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "公共可见性" @@ -1467,7 +1485,7 @@ msgstr "题目类型名称" msgid "problem type" msgstr "题目类型" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "题目类型" @@ -1479,7 +1497,7 @@ msgstr "题目组标识符" msgid "problem group name" msgstr "题目组名称" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "题目组" @@ -1487,10 +1505,6 @@ msgstr "题目组" msgid "problem groups" msgstr "题目组" -#: judge/models/problem.py:61 -msgid "key" -msgstr "键" - #: judge/models/problem.py:63 msgid "link" msgstr "链接" @@ -1505,22 +1519,22 @@ msgid "short name" msgstr "简称" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" -msgstr "在本许可证下的页面上显示" +msgid "Displayed on pages under this license." +msgstr "在本许可证下的页面上显示。" #: judge/models/problem.py:67 msgid "icon" msgstr "图标" #: judge/models/problem.py:67 -msgid "URL to the icon" -msgstr "图标的 URL" +msgid "URL to the icon." +msgstr "图标的URL。" #: judge/models/problem.py:68 msgid "license text" msgstr "许可证文本" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "许可证" @@ -1530,7 +1544,7 @@ msgstr "许可证" #: judge/models/problem.py:113 msgid "Follow global setting" -msgstr "" +msgstr "跟随全局设置" #: judge/models/problem.py:114 msgid "Always visible" @@ -1549,235 +1563,235 @@ msgid "problem code" msgstr "题目代码" #: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +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:122 msgid "problem name" msgstr "题目名称" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "题目列表中显示的题目全名。" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "题目正文" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "作者" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "在题目页面显示的题目类型。" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "在题目列表显示的题目组。" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "跳过" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "允许部分分数" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "允许的语言" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "允许提交语言。" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "手动管理" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "是否允许裁判管理数据。" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." +msgstr "无法自动在时间后公开题目。" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "禁止这些用户对该题目提交答案。" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "此题目的許可證。" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "题目摘要" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "用户数" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "解决这个题目的用户数量。" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "通过率" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "允许使用所有markup" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" -msgstr "" +msgstr "提交源码可见性" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "隐藏时,只对选择的组织才可见。" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "查看隐藏题目" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "编辑自己的题目" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "编辑所有题目" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "编辑所有公共题目" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "使用所有markup来编辑题目" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "复制题目" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "改变is_public领域" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "改变is_manually_managed领域" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "查看对组织私有的题目" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "语言" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "翻译题目名" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "翻译题目正文" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "题目翻译" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "题目翻译" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "已澄清的题目" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "澄清的身体" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "澄清时间戳" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "题目澄清" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "题目澄清" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "语言特定资源限制" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "语言特定资源限制" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "关联的题目" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "发布日期" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "题解内容" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "查看隐藏的解答" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "题目讲解" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "题目讲解" @@ -1842,8 +1856,8 @@ 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对象" +msgid "Checker arguments as a JSON object." +msgstr "检查器参数作为JSON对象。" #: judge/models/problem_data.py:77 msgid "problem data set" @@ -1898,12 +1912,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 +1928,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 +1940,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 +1961,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 @@ -1971,7 +1985,7 @@ 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 +1997,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 +2008,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 @@ -2024,8 +2034,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" @@ -2098,48 +2108,48 @@ msgid "math engine" msgstr "数学引擎" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" -msgstr "数学渲染使用的引擎" +msgid "The rendering engine used to render math." +msgstr "数学渲染使用的引擎。" #: judge/models/profile.py:179 msgid "TOTP 2FA enabled" msgstr "TOTP 2FA 已启用" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" -msgstr "打钩以启用TOTP双重验证" +msgid "Check to enable TOTP-based two-factor authentication." +msgstr "打钩以启用TOTP双重验证。" #: judge/models/profile.py:181 msgid "WebAuthn 2FA enabled" msgstr "WebAuthn 2FA 已启用" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" -msgstr "打钩以启用WebAuthn双重验证" +msgid "Check to enable WebAuthn-based two-factor authentication." +msgstr "打钩以启用WebAuthn双重验证。" #: judge/models/profile.py:183 msgid "TOTP key" msgstr "TOTP 密钥" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" -msgstr "TOTP的32字符,32进制密钥" +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进制" +msgid "TOTP key must be empty or Base32." +msgstr "TOTP密钥必须为空或32进制。" #: judge/models/profile.py:187 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数组" +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数组" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." +msgstr "一次性代码必须是空的或者是一个含有32进制代码的JSON数组。" #: judge/models/profile.py:194 msgid "last TOTP timecode" @@ -2150,8 +2160,8 @@ msgid "API token" msgstr "API令牌" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" -msgstr "64 个字符hex编码的API访问令牌" +msgid "64-character hex-encoded API access token." +msgstr "64个字符hex编码的API访问令牌。" #: judge/models/profile.py:198 msgid "API token must be None or hexadecimal" @@ -2174,7 +2184,7 @@ msgid "display name override" msgstr "显示名覆盖" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2230,6 +2240,18 @@ msgstr "请求时间" msgid "state" msgstr "状态" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "待确认" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "已批准" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "已拒绝" + #: judge/models/profile.py:366 msgid "reason" msgstr "理由" @@ -2267,7 +2289,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 +2369,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" @@ -2934,11 +2956,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 @@ -3147,7 +3169,7 @@ msgstr "你想踢的用户不存在!" #: judge/views/organization.py:377 #, 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 @@ -3188,11 +3210,6 @@ msgstr "没有这种题解" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3318,7 +3335,7 @@ msgstr "注册" #: judge/views/register.py:94 msgid "Activation Key Invalid" -msgstr "" +msgstr "激活Key无效" #: judge/views/register.py:105 msgid "Authentication failure" @@ -3351,7 +3368,7 @@ msgstr "无法访问提交" #: judge/views/submission.py:77 msgid "Permission denied." -msgstr "" +msgstr "权限被拒绝。" #: judge/views/submission.py:81 judge/views/submission.py:88 #, python-format @@ -3523,7 +3540,7 @@ msgstr "Y年n月j日 G:i" msgid "Preparing your data..." msgstr "正在准备您的数据…" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "下载您的数据" @@ -3557,14 +3574,9 @@ msgstr "排行榜" 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:518 +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?" @@ -3627,7 +3639,7 @@ msgstr "登出" msgid "Log in" msgstr "登录" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "或" @@ -3694,10 +3706,20 @@ msgstr "目前还没有作出任何澄清。" msgid "Ongoing contests" msgstr "进行中的竞赛" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "在%(countdown)s后结束。" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "未来的竞赛" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "%(countdown)s后开始。" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "评论流" @@ -3714,7 +3736,7 @@ msgstr "我的开放工单" 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 "评论" @@ -3777,7 +3799,7 @@ msgstr "新评论" msgid "Invalid comment body." msgstr "无效的评论内容。" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "发布!" @@ -3810,6 +3832,18 @@ msgstr "得分" msgid "No votes" msgstr "没有投票" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "点击复制" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "复制" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "复制成功!" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "无效的访问代码。" @@ -3912,7 +3946,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 +3963,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,14 +3971,44 @@ 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 "虚拟参与中。" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +msgstr "%(countdown)s后开始" + #: 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 "你的竞赛窗口已结束!竞赛将在%(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" @@ -4072,8 +4136,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "用户" @@ -4107,36 +4171,56 @@ 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 +#: 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 +#: templates/contest/list.html:182 +#, python-format +msgid "Window ends in %(countdown)s" +msgstr "窗口将在%(countdown)s后结束" + +#: templates/contest/list.html:184 templates/contest/list.html:223 +#, python-format +msgid "Ends in %(countdown)s" +msgstr "在%(countdown)s后结束" + +#: templates/contest/list.html:203 msgid "Ongoing Contests" msgstr "进行中的竞赛" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "过去的竞赛" @@ -4158,7 +4242,7 @@ 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 @@ -4260,8 +4344,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,7 +4460,7 @@ msgstr "类" #: templates/organization/home.html:97 msgid "Joined" -msgstr "" +msgstr "已加入" #: templates/organization/home.html:99 msgid "Request to join" @@ -4442,22 +4526,10 @@ msgstr "你加入的理由:" msgid "Request" msgstr "请求" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "踢出" @@ -4892,11 +4964,12 @@ msgstr "忘了您在%(site_name)s上的密码?别担心!" 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 "一会儿见!如果在重置邮箱时遇到问题,请随时向我们发送一封电子邮件:" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "一会儿见!" @@ -4927,7 +5000,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:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "继续 >" @@ -4940,41 +5013,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "关联的组织" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +msgid "By registering, you agree to our [Terms & Conditions][0]." +msgstr "" -#: templates/registration/registration_form.html:208 +#: templates/registration/registration_form.html:213 msgid "Register!" msgstr "注册!" @@ -4983,7 +5052,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 +5078,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:375 msgid "Below is a list of one-time use scratch codes." -msgstr "" +msgstr "下面是一个一次性验证码列表。" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5031,6 +5104,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5048,19 +5122,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 "" @@ -5232,20 +5302,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)" @@ -5365,10 +5439,6 @@ 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:364 msgid "Associated object" msgstr "相关的项目" @@ -5401,137 +5471,152 @@ msgstr "排名" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "编辑主题" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "修改头像" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "更改密码" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "已激活双元素认证" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "禁用" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "刷新" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "一次性代码:" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "隐藏" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "已禁用双元素认证" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "启用" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "API令牌" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "安全密钥" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "删除" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "输入此密钥的名称" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "添加" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "用户脚本" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5630,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 "下载数据" diff --git a/locale/zh_Hant/LC_MESSAGES/django.po b/locale/zh_Hant/LC_MESSAGES/django.po index a87749fec6..1f382c5235 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: 2022-08-20 15:18+0000\n" +"PO-Revision-Date: 2022-08-22 01:00\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -17,14 +17,18 @@ msgstr "" "X-Crowdin-File: django.po\n" "X-Crowdin-File-ID: 10\n" -#: dmoj/settings.py:372 +#: dmoj/settings.py:371 msgid "Catalan" msgstr "加泰隆語" -#: dmoj/settings.py:373 +#: dmoj/settings.py:372 msgid "German" msgstr "德文" +#: dmoj/settings.py:373 +msgid "Greek" +msgstr "希臘文" + #: dmoj/settings.py:374 msgid "English" msgstr "英文" @@ -67,7 +71,7 @@ msgstr "俄文" #: dmoj/settings.py:384 msgid "Serbian (Latin)" -msgstr "塞爾維亞文 (拉丁語系)" +msgstr "塞爾維亞文(拉丁語系)" #: dmoj/settings.py:385 msgid "Turkish" @@ -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:190 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,6 +144,12 @@ msgstr "帶標籤的競賽" msgid "Problem" msgstr "題目" +#: judge/admin/contest.py:67 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/admin/contest.py:123 msgid "Settings" msgstr "设置" @@ -232,10 +246,6 @@ msgstr "模擬競賽" msgid "link path" msgstr "" -#: judge/admin/interface.py:72 -msgid "Content" -msgstr "内容" - #: judge/admin/interface.py:73 msgid "Summary" msgstr "概要" @@ -284,7 +294,7 @@ 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 +#: templates/user/edit-profile.html:290 msgid "Language" msgstr "語言" @@ -337,13 +347,13 @@ msgstr "時區" 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 +#: templates/user/edit-profile.html:286 msgid "Timezone" msgstr "時區" @@ -353,8 +363,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 +376,8 @@ 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:77 msgid "Description" @@ -428,7 +438,7 @@ msgstr "重新評分選定的程式" #: judge/admin/submission.py:204 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筆提交紀錄已成功重新計分。" @@ -468,11 +478,11 @@ 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 @@ -584,106 +594,106 @@ msgid "Invalid two-factor authentication token." msgstr "" #: judge/forms.py:33 -msgid "Scratch codes must be 16 base32 characters." +msgid "Scratch codes must be 16 Base32 characters." msgstr "" -#: judge/forms.py:35 judge/forms.py:264 +#: judge/forms.py:35 judge/forms.py:260 msgid "Invalid scratch code." msgstr "" -#: judge/forms.py:46 +#: judge/forms.py:42 msgid "Subscribe to contest updates" msgstr "" -#: judge/forms.py:47 +#: judge/forms.py:43 msgid "Enable experimental features" msgstr "" -#: judge/forms.py:72 +#: judge/forms.py:68 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:77 judge/views/organization.py:147 #, python-brace-format msgid "You may not be part of more than {count} public organizations." msgstr "您不可以同時在多餘{count}的公共組織。" -#: judge/forms.py:97 +#: judge/forms.py:93 msgid "Download comments?" msgstr "下載評論?" -#: judge/forms.py:98 +#: judge/forms.py:94 msgid "Download submissions?" msgstr "下載提交紀錄?" -#: judge/forms.py:99 +#: judge/forms.py:95 msgid "Filter by problem code glob:" msgstr "" -#: judge/forms.py:103 +#: judge/forms.py:99 msgid "Leave empty to include all submissions" msgstr "" -#: judge/forms.py:106 templates/problem/manage_submission.html:142 +#: judge/forms.py:102 templates/problem/manage_submission.html:142 msgid "Filter by result:" msgstr "" -#: judge/forms.py:112 +#: judge/forms.py:108 msgid "Please select at least one thing to download." msgstr "" -#: judge/forms.py:138 +#: judge/forms.py:134 msgid "Any judge" msgstr "任何評測伺服器" -#: judge/forms.py:159 judge/views/register.py:25 -#: templates/registration/registration_form.html:137 +#: judge/forms.py:155 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:156 templates/registration/registration_form.html:155 +#: templates/registration/registration_form.html:169 msgid "Password" msgstr "密碼" -#: judge/forms.py:192 +#: judge/forms.py:188 msgid "Invalid code length." msgstr "" -#: judge/forms.py:223 +#: judge/forms.py:219 msgid "Invalid WebAuthn response." msgstr "" -#: judge/forms.py:226 +#: judge/forms.py:222 msgid "No WebAuthn challenge issued." msgstr "" -#: judge/forms.py:232 +#: judge/forms.py:228 msgid "Invalid WebAuthn credential ID." msgstr "" -#: judge/forms.py:262 +#: judge/forms.py:258 msgid "Invalid two-factor authentication token or scratch code." msgstr "" -#: judge/forms.py:266 +#: judge/forms.py:262 msgid "Must specify either totp_token or webauthn_response." msgstr "" -#: judge/forms.py:270 judge/models/problem.py:120 +#: judge/forms.py:266 judge/models/problem.py:120 msgid "Problem code must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:275 +#: judge/forms.py:271 msgid "Problem with code already exists." msgstr "" -#: judge/forms.py:280 judge/models/contest.py:68 +#: judge/forms.py:276 judge/models/contest.py:68 msgid "Contest id must be ^[a-z0-9]+$" msgstr "" -#: judge/forms.py:285 +#: judge/forms.py:281 msgid "Contest with key already exists." msgstr "" @@ -766,7 +776,7 @@ msgid "comments" msgstr "評論" #: judge/models/comment.py:89 judge/models/comment.py:141 -#: judge/models/problem.py:525 +#: judge/models/problem.py:523 #, python-format msgid "Editorial for %s" msgstr "" @@ -849,7 +859,7 @@ msgid "contest name" msgstr "" #: judge/models/contest.py:70 judge/models/interface.py:67 -#: judge/models/problem.py:514 +#: judge/models/problem.py:512 msgid "authors" msgstr "作者" @@ -857,7 +867,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:128 msgid "curators" msgstr "" @@ -865,7 +875,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:131 msgid "testers" msgstr "測試人員" @@ -901,7 +911,7 @@ msgstr "" msgid "description" msgstr "" -#: judge/models/contest.py:89 judge/models/problem.py:467 +#: judge/models/contest.py:89 judge/models/problem.py:465 #: judge/models/runtime.py:139 msgid "problems" msgstr "題目" @@ -914,12 +924,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:138 +#: judge/models/problem.py:494 msgid "time limit" msgstr "時間限制" -#: judge/models/contest.py:93 judge/models/problem.py:159 +#: judge/models/contest.py:93 judge/models/problem.py:156 msgid "publicly visible" msgstr "" @@ -956,7 +966,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 +981,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:182 msgid "private to organizations" msgstr "" -#: judge/models/contest.py:139 judge/models/problem.py:182 +#: judge/models/contest.py:140 judge/models/problem.py:180 #: 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 +1071,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 +1079,15 @@ 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/problem.py:166 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 +1102,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:168 msgid "Plain-text, shown in meta description tag, e.g. for social media." msgstr "" @@ -1105,7 +1115,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:162 msgid "personae non gratae" msgstr "" @@ -1267,14 +1277,14 @@ 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/contest.py:648 judge/models/problem.py:464 +#: judge/models/problem.py:469 judge/models/problem.py:492 #: 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:149 msgid "points" msgstr "分" @@ -1370,6 +1380,14 @@ msgstr "" msgid "contest moss results" msgstr "" +#: judge/models/interface.py:17 judge/models/problem.py:61 +msgid "key" +msgstr "鍵" + +#: judge/models/interface.py:18 +msgid "value" +msgstr "值" + #: judge/models/interface.py:24 msgid "configuration item" msgstr "" @@ -1410,7 +1428,7 @@ msgstr "" msgid "slug" msgstr "網址標誌" -#: judge/models/interface.py:69 judge/models/problem.py:512 +#: judge/models/interface.py:69 judge/models/problem.py:510 msgid "public visibility" msgstr "" @@ -1467,7 +1485,7 @@ msgstr "" msgid "problem type" msgstr "題目類型" -#: judge/models/problem.py:44 judge/models/problem.py:136 +#: judge/models/problem.py:44 judge/models/problem.py:134 msgid "problem types" msgstr "題目類型" @@ -1479,7 +1497,7 @@ msgstr "" msgid "problem group name" msgstr "" -#: judge/models/problem.py:56 judge/models/problem.py:139 +#: judge/models/problem.py:56 judge/models/problem.py:136 msgid "problem group" msgstr "" @@ -1487,10 +1505,6 @@ msgstr "" msgid "problem groups" msgstr "" -#: judge/models/problem.py:61 -msgid "key" -msgstr "鍵" - #: judge/models/problem.py:63 msgid "link" msgstr "链接" @@ -1505,7 +1519,7 @@ msgid "short name" msgstr "" #: judge/models/problem.py:66 -msgid "Displayed on pages under this license" +msgid "Displayed on pages under this license." msgstr "" #: judge/models/problem.py:67 @@ -1513,14 +1527,14 @@ msgid "icon" msgstr "圖示" #: judge/models/problem.py:67 -msgid "URL to the icon" +msgid "URL to the icon." msgstr "" #: judge/models/problem.py:68 msgid "license text" msgstr "" -#: judge/models/problem.py:77 judge/models/problem.py:166 +#: judge/models/problem.py:77 judge/models/problem.py:164 msgid "license" msgstr "許可證" @@ -1549,235 +1563,235 @@ msgid "problem code" msgstr "" #: judge/models/problem.py:121 -msgid "A short, unique code for the problem, used in the url after /problem/" +msgid "A short, unique code for the problem, used in the URL after /problem/" msgstr "" -#: judge/models/problem.py:123 +#: judge/models/problem.py:122 msgid "problem name" msgstr "題目名稱" -#: judge/models/problem.py:124 +#: judge/models/problem.py:123 msgid "The full name of the problem, as shown in the problem list." msgstr "" -#: judge/models/problem.py:126 +#: judge/models/problem.py:124 msgid "problem body" msgstr "" -#: judge/models/problem.py:127 +#: judge/models/problem.py:125 msgid "creators" msgstr "建立者" -#: judge/models/problem.py:128 +#: judge/models/problem.py:126 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:129 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:133 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:135 msgid "The type of problem, as shown on the problem's page." msgstr "" -#: judge/models/problem.py:140 +#: judge/models/problem.py:137 msgid "The group of problem, shown under Category in the problem list." msgstr "" -#: judge/models/problem.py:142 +#: judge/models/problem.py:139 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:143 judge/models/problem.py:497 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:144 +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:148 msgid "short circuit" msgstr "" -#: judge/models/problem.py:153 +#: judge/models/problem.py:150 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:153 msgid "allows partial points" msgstr "" -#: judge/models/problem.py:157 +#: judge/models/problem.py:154 msgid "allowed languages" msgstr "允許的語言" -#: judge/models/problem.py:158 +#: judge/models/problem.py:155 msgid "List of allowed submission languages." msgstr "" -#: judge/models/problem.py:160 +#: judge/models/problem.py:157 msgid "manually managed" msgstr "" -#: judge/models/problem.py:161 +#: judge/models/problem.py:158 msgid "Whether judges should be allowed to manage data or not." msgstr "" -#: judge/models/problem.py:162 +#: judge/models/problem.py:159 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:161 +msgid "Doesn't have the magic ability to auto-publish due to backward compatibility." msgstr "" -#: judge/models/problem.py:165 +#: judge/models/problem.py:163 msgid "Bans the selected users from submitting to this problem." msgstr "" -#: judge/models/problem.py:167 +#: judge/models/problem.py:165 msgid "The license under which this problem is published." msgstr "" -#: judge/models/problem.py:169 +#: judge/models/problem.py:167 msgid "problem summary" msgstr "" -#: judge/models/problem.py:171 +#: judge/models/problem.py:169 msgid "number of users" msgstr "" -#: judge/models/problem.py:172 +#: judge/models/problem.py:170 msgid "The number of users who solved the problem." msgstr "" -#: judge/models/problem.py:173 +#: judge/models/problem.py:171 msgid "solve rate" msgstr "" -#: judge/models/problem.py:174 +#: judge/models/problem.py:172 msgid "allow full markdown access" msgstr "" -#: judge/models/problem.py:175 +#: judge/models/problem.py:173 msgid "submission source visibility" msgstr "" -#: judge/models/problem.py:183 +#: judge/models/problem.py:181 msgid "If private, only these organizations may see the problem." msgstr "" -#: judge/models/problem.py:456 +#: judge/models/problem.py:454 msgid "See hidden problems" msgstr "" -#: judge/models/problem.py:457 +#: judge/models/problem.py:455 msgid "Edit own problems" msgstr "" -#: judge/models/problem.py:458 +#: judge/models/problem.py:456 msgid "Edit all problems" msgstr "" -#: judge/models/problem.py:459 +#: judge/models/problem.py:457 msgid "Edit all public problems" msgstr "" -#: judge/models/problem.py:460 +#: judge/models/problem.py:458 msgid "Edit problems with full markup" msgstr "" -#: judge/models/problem.py:461 templates/problem/problem.html:161 +#: judge/models/problem.py:459 templates/problem/problem.html:161 msgid "Clone problem" msgstr "" -#: judge/models/problem.py:462 +#: judge/models/problem.py:460 msgid "Change is_public field" msgstr "" -#: judge/models/problem.py:463 +#: judge/models/problem.py:461 msgid "Change is_manually_managed field" msgstr "" -#: judge/models/problem.py:464 +#: judge/models/problem.py:462 msgid "See organization-private problems" msgstr "" -#: judge/models/problem.py:472 judge/models/problem.py:495 +#: judge/models/problem.py:470 judge/models/problem.py:493 #: judge/models/runtime.py:111 msgid "language" msgstr "語言" -#: judge/models/problem.py:473 +#: judge/models/problem.py:471 msgid "translated name" msgstr "" -#: judge/models/problem.py:474 +#: judge/models/problem.py:472 msgid "translated description" msgstr "" -#: judge/models/problem.py:479 +#: judge/models/problem.py:477 msgid "problem translation" msgstr "" -#: judge/models/problem.py:480 +#: judge/models/problem.py:478 msgid "problem translations" msgstr "" -#: judge/models/problem.py:484 +#: judge/models/problem.py:482 msgid "clarified problem" msgstr "" -#: judge/models/problem.py:485 +#: judge/models/problem.py:483 msgid "clarification body" msgstr "" -#: judge/models/problem.py:486 +#: judge/models/problem.py:484 msgid "clarification timestamp" msgstr "" -#: judge/models/problem.py:489 +#: judge/models/problem.py:487 msgid "problem clarification" msgstr "" -#: judge/models/problem.py:490 +#: judge/models/problem.py:488 msgid "problem clarifications" msgstr "" -#: judge/models/problem.py:505 +#: judge/models/problem.py:503 msgid "language-specific resource limit" msgstr "" -#: judge/models/problem.py:506 +#: judge/models/problem.py:504 msgid "language-specific resource limits" msgstr "" -#: judge/models/problem.py:510 +#: judge/models/problem.py:508 msgid "associated problem" msgstr "" -#: judge/models/problem.py:513 +#: judge/models/problem.py:511 msgid "publish date" msgstr "" -#: judge/models/problem.py:515 +#: judge/models/problem.py:513 msgid "editorial content" msgstr "" -#: judge/models/problem.py:538 +#: judge/models/problem.py:536 msgid "See hidden solutions" msgstr "" -#: judge/models/problem.py:540 +#: judge/models/problem.py:538 msgid "solution" msgstr "題解" -#: judge/models/problem.py:541 +#: judge/models/problem.py:539 msgid "solutions" msgstr "題解" @@ -1791,11 +1805,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" @@ -1842,7 +1856,7 @@ msgid "checker arguments" msgstr "" #: judge/models/problem_data.py:46 judge/models/problem_data.py:94 -msgid "checker arguments as a JSON object" +msgid "Checker arguments as a JSON object." msgstr "" #: judge/models/problem_data.py:77 @@ -1898,11 +1912,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 +1928,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 +1940,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 +1948,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 +1964,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 @@ -1971,7 +1985,7 @@ 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 +1997,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 +2008,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 @@ -2024,8 +2034,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" @@ -2098,7 +2108,7 @@ msgid "math engine" msgstr "" #: judge/models/profile.py:178 -msgid "the rendering engine used to render math" +msgid "The rendering engine used to render math." msgstr "" #: judge/models/profile.py:179 @@ -2106,7 +2116,7 @@ msgid "TOTP 2FA enabled" msgstr "" #: judge/models/profile.py:180 -msgid "check to enable TOTP-based two-factor authentication" +msgid "Check to enable TOTP-based two-factor authentication." msgstr "" #: judge/models/profile.py:181 @@ -2114,7 +2124,7 @@ msgid "WebAuthn 2FA enabled" msgstr "" #: judge/models/profile.py:182 -msgid "check to enable WebAuthn-based two-factor authentication" +msgid "Check to enable WebAuthn-based two-factor authentication." msgstr "" #: judge/models/profile.py:183 @@ -2122,11 +2132,11 @@ msgid "TOTP key" msgstr "" #: judge/models/profile.py:184 -msgid "32 character base32-encoded key for TOTP" +msgid "32-character Base32-encoded key for TOTP." msgstr "" #: judge/models/profile.py:186 -msgid "TOTP key must be empty or base32" +msgid "TOTP key must be empty or Base32." msgstr "" #: judge/models/profile.py:187 @@ -2134,12 +2144,12 @@ 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數組" +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數組" +msgid "Scratch codes must be empty or a JSON array of 16-character Base32 codes." +msgstr "一次性代碼必須是空的或者是一個含有32進制代碼的JSON數組。" #: judge/models/profile.py:194 msgid "last TOTP timecode" @@ -2150,7 +2160,7 @@ msgid "API token" msgstr "API 令牌" #: judge/models/profile.py:196 -msgid "64 character hex-encoded API access token" +msgid "64-character hex-encoded API access token." msgstr "" #: judge/models/profile.py:198 @@ -2174,7 +2184,7 @@ msgid "display name override" msgstr "" #: judge/models/profile.py:203 -msgid "name displayed in place of username" +msgid "Name displayed in place of username." msgstr "" #: judge/models/profile.py:317 @@ -2230,6 +2240,18 @@ msgstr "" msgid "state" msgstr "狀態" +#: judge/models/profile.py:361 templates/organization/requests/tabs.html:4 +msgid "Pending" +msgstr "待確認" + +#: judge/models/profile.py:362 templates/organization/requests/tabs.html:10 +msgid "Approved" +msgstr "已批准" + +#: judge/models/profile.py:363 templates/organization/requests/tabs.html:13 +msgid "Rejected" +msgstr "已拒絕" + #: judge/models/profile.py:366 msgid "reason" msgstr "原因" @@ -2267,7 +2289,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,7 +2369,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 @@ -2355,7 +2377,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 @@ -3147,7 +3169,7 @@ msgstr "" #: judge/views/organization.py:377 #, 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 @@ -3188,11 +3210,6 @@ msgstr "" 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:568 judge/views/problem.py:576 #, python-format msgid "Submit to %s" @@ -3523,7 +3540,7 @@ msgstr "" msgid "Preparing your data..." msgstr "" -#: judge/views/user.py:308 templates/user/edit-profile.html:352 +#: judge/views/user.py:308 templates/user/edit-profile.html:346 msgid "Download your data" msgstr "" @@ -3557,13 +3574,8 @@ msgstr "" 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:518 +msgid "You have sent too many password reset requests. Please try again later." msgstr "" #: templates/admin/judge/contest/change_form.html:9 @@ -3627,7 +3639,7 @@ msgstr "登出" msgid "Log in" msgstr "登錄" -#: templates/base.html:237 templates/registration/registration_form.html:175 +#: templates/base.html:237 templates/registration/registration_form.html:181 msgid "or" msgstr "或" @@ -3694,10 +3706,20 @@ msgstr "" msgid "Ongoing contests" msgstr "" +#: templates/blog/list.html:163 +#, python-format +msgid "Ends in %(countdown)s." +msgstr "" + #: templates/blog/list.html:173 msgid "Upcoming contests" msgstr "" +#: templates/blog/list.html:181 templates/contest/list.html:257 +#, python-format +msgid "Starting in %(countdown)s." +msgstr "" + #: templates/blog/list.html:190 msgid "Comment stream" msgstr "" @@ -3714,7 +3736,7 @@ msgstr "" 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 "評論" @@ -3777,7 +3799,7 @@ msgstr "" msgid "Invalid comment body." msgstr "" -#: templates/comments/list.html:159 +#: templates/comments/list.html:159 templates/ticket/ticket.html:356 msgid "Post!" msgstr "發布!" @@ -3810,6 +3832,18 @@ msgstr "得分" msgid "No votes" msgstr "" +#: templates/common-content.html:34 templates/user/edit-profile.html:219 +msgid "Click to copy" +msgstr "" + +#: templates/common-content.html:35 templates/user/edit-profile.html:220 +msgid "Copy" +msgstr "" + +#: templates/common-content.html:46 templates/user/edit-profile.html:231 +msgid "Copied!" +msgstr "" + #: templates/contest/access_code.html:26 msgid "Invalid access code." msgstr "" @@ -3912,7 +3946,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 +3963,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,14 +3971,44 @@ 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 "" +#: templates/contest/contest.html:41 +#, python-format +msgid "Starting in %(countdown)s" +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 msgid "F j, Y, G:i T" msgstr "" @@ -4072,8 +4136,8 @@ 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/contest/contest.html:198 templates/contest/list.html:166 +#: templates/contest/list.html:208 templates/contest/list.html:285 #: templates/problem/list.html:209 templates/problem/list.html:241 msgid "Users" msgstr "用戶" @@ -4107,36 +4171,56 @@ 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 +#: 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 +#: 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:203 msgid "Ongoing Contests" msgstr "" -#: templates/contest/list.html:238 +#: templates/contest/list.html:240 msgid "Upcoming Contests" 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 +#: templates/contest/list.html:274 msgid "Past Contests" msgstr "" @@ -4158,7 +4242,7 @@ 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 @@ -4260,8 +4344,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 @@ -4442,22 +4526,10 @@ msgstr "" msgid "Request" msgstr "请求" -#: templates/organization/requests/tabs.html:4 -msgid "Pending" -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 "踢出" @@ -4892,11 +4964,12 @@ msgstr "" 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" +#: templates/registration/password_reset_email.html:16 +#, 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 +#: templates/registration/password_reset_email.html:19 msgid "See you soon!" msgstr "" @@ -4927,7 +5000,7 @@ msgstr "" msgid "Password reset on %(site_name)s" msgstr "" -#: templates/registration/profile_creation.html:36 +#: templates/registration/profile_creation.html:48 #: templates/registration/username_select.html:7 msgid "Continue >" msgstr "繼續 》" @@ -4940,41 +5013,37 @@ 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 +#: templates/user/edit-profile.html:308 msgid "Affiliated organizations" msgstr "" -#: templates/registration/registration_form.html:190 -#: templates/user/edit-profile.html:328 +#: templates/registration/registration_form.html:196 +#: 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:210 +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:213 msgid "Register!" msgstr "" @@ -4983,7 +5052,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 +5085,17 @@ msgid "Enable Two Factor Authentication" msgstr "" #: templates/registration/totp_enable.html:98 +#: templates/user/edit-profile.html:375 msgid "Below is a list of one-time use scratch codes." msgstr "" #: templates/registration/totp_enable.html:99 +#: templates/user/edit-profile.html:376 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:377 msgid "You can use these codes to login to your account or disable two-factor authentication." msgstr "" @@ -5031,6 +5104,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:379 msgid "Please write these down and keep them in a secure location." msgstr "" @@ -5048,19 +5122,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 "" @@ -5232,19 +5302,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 @@ -5365,10 +5439,6 @@ 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:364 msgid "Associated object" msgstr "" @@ -5401,136 +5471,151 @@ msgstr "排名" 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 +#: templates/user/edit-profile.html:124 templates/user/edit-profile.html:246 +#: templates/user/edit-profile.html:367 templates/user/edit-profile.html:397 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:399 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:371 +#: templates/user/edit-profile.html:403 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 +#: 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:380 +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 +#: templates/user/edit-profile.html:294 msgid "Editor theme" msgstr "" -#: templates/user/edit-profile.html:305 +#: 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:333 templates/user/edit-profile.html:335 msgid "Change your avatar" msgstr "" -#: templates/user/edit-profile.html:346 +#: templates/user/edit-profile.html:340 msgid "Change your password" msgstr "" -#: templates/user/edit-profile.html:359 +#: templates/user/edit-profile.html:353 msgid "Two-factor Authentication is enabled" msgstr "" -#: templates/user/edit-profile.html:362 templates/user/edit-profile.html:365 +#: templates/user/edit-profile.html:356 templates/user/edit-profile.html:359 msgid "Disable" msgstr "禁用" -#: templates/user/edit-profile.html:367 +#: templates/user/edit-profile.html:361 msgid "Refresh" msgstr "" -#: templates/user/edit-profile.html:370 +#: templates/user/edit-profile.html:364 msgid "Scratch Codes:" msgstr "" -#: templates/user/edit-profile.html:374 templates/user/edit-profile.html:398 +#: templates/user/edit-profile.html:368 templates/user/edit-profile.html:400 msgid "Hidden" msgstr "隱藏" -#: templates/user/edit-profile.html:384 +#: templates/user/edit-profile.html:378 +msgid "If you ever need more scratch codes, you can regenerate them here." +msgstr "" + +#: templates/user/edit-profile.html:386 msgid "Two-factor Authentication is disabled" msgstr "" -#: templates/user/edit-profile.html:385 +#: templates/user/edit-profile.html:387 msgid "Enable" msgstr "啟用" -#: templates/user/edit-profile.html:392 +#: templates/user/edit-profile.html:394 msgid "API Token" msgstr "API令牌" -#: templates/user/edit-profile.html:409 +#: templates/user/edit-profile.html:411 msgid "Security keys" msgstr "" -#: templates/user/edit-profile.html:419 +#: templates/user/edit-profile.html:421 msgid "Delete" msgstr "刪除" -#: templates/user/edit-profile.html:426 +#: templates/user/edit-profile.html:428 msgid "Enter a name for this key" msgstr "" -#: templates/user/edit-profile.html:427 +#: templates/user/edit-profile.html:429 msgid "Add" msgstr "添加" -#: templates/user/edit-profile.html:435 +#: templates/user/edit-profile.html:437 msgid "User-script" msgstr "" -#: templates/user/edit-profile.html:439 +#: templates/user/edit-profile.html:441 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 +5630,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 ""