Fix organization contest bug and add Bookmarks on dropdown list (#113)
This commit is contained in:
parent
c6acfa5e05
commit
796a670cd7
6 changed files with 212 additions and 187 deletions
|
@ -425,7 +425,6 @@ class OrganizationContests(
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = super(OrganizationContests, self).get_context_data(**kwargs)
|
context = super(OrganizationContests, self).get_context_data(**kwargs)
|
||||||
context["page_type"] = "contests"
|
context["page_type"] = "contests"
|
||||||
context["hide_contest_orgs"] = True
|
|
||||||
context.pop("organizations")
|
context.pop("organizations")
|
||||||
|
|
||||||
if self.can_edit_organization(self.organization):
|
if self.can_edit_organization(self.organization):
|
||||||
|
|
|
@ -2,7 +2,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: lqdoj2\n"
|
"Project-Id-Version: lqdoj2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-05-25 07:24+0700\n"
|
"POT-Creation-Date: 2024-05-30 01:54+0700\n"
|
||||||
"PO-Revision-Date: 2021-07-20 03:44\n"
|
"PO-Revision-Date: 2021-07-20 03:44\n"
|
||||||
"Last-Translator: Icyene\n"
|
"Last-Translator: Icyene\n"
|
||||||
"Language-Team: Vietnamese\n"
|
"Language-Team: Vietnamese\n"
|
||||||
|
@ -138,7 +138,7 @@ msgstr ""
|
||||||
msgid "Details"
|
msgid "Details"
|
||||||
msgstr "Chi tiết"
|
msgstr "Chi tiết"
|
||||||
|
|
||||||
#: judge/admin/contest.py:187 templates/contest/list.html:236
|
#: judge/admin/contest.py:187 templates/contest/macros.html:100
|
||||||
msgid "Format"
|
msgid "Format"
|
||||||
msgstr "Thể thức"
|
msgstr "Thể thức"
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ msgstr "Tính toán lại kết quả"
|
||||||
msgid "username"
|
msgid "username"
|
||||||
msgstr "tên đăng nhập"
|
msgstr "tên đăng nhập"
|
||||||
|
|
||||||
#: judge/admin/contest.py:513 templates/base.html:248
|
#: judge/admin/contest.py:513 templates/base.html:251
|
||||||
msgid "virtual"
|
msgid "virtual"
|
||||||
msgstr "ảo"
|
msgstr "ảo"
|
||||||
|
|
||||||
|
@ -426,14 +426,15 @@ msgstr[0] "%d bài nộp đã được tính điểm lại."
|
||||||
msgid "Rescore the selected submissions"
|
msgid "Rescore the selected submissions"
|
||||||
msgstr "Tính điểm lại cái bài nộp"
|
msgstr "Tính điểm lại cái bài nộp"
|
||||||
|
|
||||||
#: judge/admin/submission.py:332 templates/contest/list.html:285
|
#: judge/admin/submission.py:332 templates/contest/list.html:181
|
||||||
#: templates/contest/list.html:325 templates/contest/list.html:360
|
#: templates/contest/list.html:223 templates/contest/list.html:260
|
||||||
#: templates/contest/list.html:392 templates/notification/list.html:12
|
#: templates/contest/list.html:294 templates/notification/list.html:12
|
||||||
#: templates/organization/requests/log.html:10
|
#: templates/organization/requests/log.html:10
|
||||||
#: templates/organization/requests/pending.html:20
|
#: templates/organization/requests/pending.html:20
|
||||||
#: templates/problem/list.html:154
|
#: templates/problem/list.html:154
|
||||||
#: templates/submission/status-testcases.html:139
|
#: templates/submission/status-testcases.html:139
|
||||||
#: templates/submission/status-testcases.html:141
|
#: templates/submission/status-testcases.html:141
|
||||||
|
#: templates/user/user-bookmarks.html:84
|
||||||
msgid "Time"
|
msgid "Time"
|
||||||
msgstr "Thời gian"
|
msgstr "Thời gian"
|
||||||
|
|
||||||
|
@ -635,7 +636,7 @@ msgid "associated page"
|
||||||
msgstr "trang tương ứng"
|
msgstr "trang tương ứng"
|
||||||
|
|
||||||
#: judge/models/bookmark.py:20 judge/models/comment.py:49
|
#: judge/models/bookmark.py:20 judge/models/comment.py:49
|
||||||
#: judge/models/pagevote.py:19 judge/models/problem.py:740
|
#: judge/models/pagevote.py:19 judge/models/problem.py:744
|
||||||
msgid "votes"
|
msgid "votes"
|
||||||
msgstr "bình chọn"
|
msgstr "bình chọn"
|
||||||
|
|
||||||
|
@ -1757,34 +1758,34 @@ msgstr ""
|
||||||
msgid "editorial content"
|
msgid "editorial content"
|
||||||
msgstr "nội dung lời giải"
|
msgstr "nội dung lời giải"
|
||||||
|
|
||||||
#: judge/models/problem.py:708
|
#: judge/models/problem.py:712
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editorial for %s"
|
msgid "Editorial for %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: judge/models/problem.py:712
|
#: judge/models/problem.py:716
|
||||||
msgid "solution"
|
msgid "solution"
|
||||||
msgstr "lời giải"
|
msgstr "lời giải"
|
||||||
|
|
||||||
#: judge/models/problem.py:713
|
#: judge/models/problem.py:717
|
||||||
msgid "solutions"
|
msgid "solutions"
|
||||||
msgstr "lời giải"
|
msgstr "lời giải"
|
||||||
|
|
||||||
#: judge/models/problem.py:718
|
#: judge/models/problem.py:722
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "point value"
|
#| msgid "point value"
|
||||||
msgid "proposed point value"
|
msgid "proposed point value"
|
||||||
msgstr "điểm"
|
msgstr "điểm"
|
||||||
|
|
||||||
#: judge/models/problem.py:719
|
#: judge/models/problem.py:723
|
||||||
msgid "The amount of points you think this problem deserves."
|
msgid "The amount of points you think this problem deserves."
|
||||||
msgstr "Bạn nghĩ bài này đáng bao nhiêu điểm?"
|
msgstr "Bạn nghĩ bài này đáng bao nhiêu điểm?"
|
||||||
|
|
||||||
#: judge/models/problem.py:733
|
#: judge/models/problem.py:737
|
||||||
msgid "The time this vote was cast"
|
msgid "The time this vote was cast"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: judge/models/problem.py:739
|
#: judge/models/problem.py:743
|
||||||
msgid "vote"
|
msgid "vote"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2338,12 +2339,12 @@ msgid "Accepted"
|
||||||
msgstr "Accepted"
|
msgstr "Accepted"
|
||||||
|
|
||||||
#: judge/models/submission.py:21 judge/models/submission.py:48
|
#: judge/models/submission.py:21 judge/models/submission.py:48
|
||||||
#: judge/utils/problems.py:117
|
#: judge/utils/problems.py:119
|
||||||
msgid "Wrong Answer"
|
msgid "Wrong Answer"
|
||||||
msgstr "Wrong Answer"
|
msgstr "Wrong Answer"
|
||||||
|
|
||||||
#: judge/models/submission.py:22 judge/models/submission.py:50
|
#: judge/models/submission.py:22 judge/models/submission.py:50
|
||||||
#: judge/utils/problems.py:123
|
#: judge/utils/problems.py:129
|
||||||
msgid "Time Limit Exceeded"
|
msgid "Time Limit Exceeded"
|
||||||
msgstr "Time Limit Exceeded"
|
msgstr "Time Limit Exceeded"
|
||||||
|
|
||||||
|
@ -2364,7 +2365,7 @@ msgid "Runtime Error"
|
||||||
msgstr "Runtime Error"
|
msgstr "Runtime Error"
|
||||||
|
|
||||||
#: judge/models/submission.py:27 judge/models/submission.py:41
|
#: judge/models/submission.py:27 judge/models/submission.py:41
|
||||||
#: judge/models/submission.py:55 judge/utils/problems.py:120
|
#: judge/models/submission.py:55 judge/utils/problems.py:124
|
||||||
msgid "Compile Error"
|
msgid "Compile Error"
|
||||||
msgstr "Compile Error"
|
msgstr "Compile Error"
|
||||||
|
|
||||||
|
@ -2685,11 +2686,11 @@ msgstr "Invalid Return"
|
||||||
msgid "Invalid signature header"
|
msgid "Invalid signature header"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: judge/utils/problems.py:126
|
#: judge/utils/problems.py:134
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Lỗi"
|
msgstr "Lỗi"
|
||||||
|
|
||||||
#: judge/utils/problems.py:143
|
#: judge/utils/problems.py:151
|
||||||
msgid "Can't pass both queryset and keyword filters"
|
msgid "Can't pass both queryset and keyword filters"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2770,8 +2771,8 @@ msgstr "Bạn phải giải ít nhất 1 bài trước khi được vote."
|
||||||
msgid "You already voted."
|
msgid "You already voted."
|
||||||
msgstr "Bạn đã vote."
|
msgstr "Bạn đã vote."
|
||||||
|
|
||||||
#: judge/views/comment.py:267 judge/views/organization.py:821
|
#: judge/views/comment.py:267 judge/views/organization.py:820
|
||||||
#: judge/views/organization.py:971 judge/views/organization.py:1150
|
#: judge/views/organization.py:970 judge/views/organization.py:1149
|
||||||
msgid "Edited from site"
|
msgid "Edited from site"
|
||||||
msgstr "Chỉnh sửa từ web"
|
msgstr "Chỉnh sửa từ web"
|
||||||
|
|
||||||
|
@ -2796,132 +2797,132 @@ msgstr "Bạn phải giải ít nhất một bài trước khi được phép b
|
||||||
msgid "Posted comment"
|
msgid "Posted comment"
|
||||||
msgstr "Bình luận đã đăng"
|
msgstr "Bình luận đã đăng"
|
||||||
|
|
||||||
#: judge/views/contests.py:122 judge/views/contests.py:424
|
#: judge/views/contests.py:122 judge/views/contests.py:434
|
||||||
#: judge/views/contests.py:429 judge/views/contests.py:729
|
#: judge/views/contests.py:439 judge/views/contests.py:739
|
||||||
msgid "No such contest"
|
msgid "No such contest"
|
||||||
msgstr "Không có contest nào như vậy"
|
msgstr "Không có contest nào như vậy"
|
||||||
|
|
||||||
#: judge/views/contests.py:123 judge/views/contests.py:425
|
#: judge/views/contests.py:123 judge/views/contests.py:435
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Could not find a contest with the key \"%s\"."
|
msgid "Could not find a contest with the key \"%s\"."
|
||||||
msgstr "Không tìm thấy kỳ thi với mã \"%s\"."
|
msgstr "Không tìm thấy kỳ thi với mã \"%s\"."
|
||||||
|
|
||||||
#: judge/views/contests.py:142 judge/views/contests.py:1500
|
#: judge/views/contests.py:142 judge/views/contests.py:1510
|
||||||
#: judge/views/stats.py:178 templates/contest/list.html:281
|
#: judge/views/stats.py:178 templates/contest/list.html:177
|
||||||
#: templates/contest/list.html:321 templates/contest/list.html:356
|
#: templates/contest/list.html:219 templates/contest/list.html:256
|
||||||
#: templates/contest/list.html:388
|
#: templates/contest/list.html:290
|
||||||
#: templates/organization/org-left-sidebar.html:5 templates/stats/site.html:21
|
#: templates/organization/org-left-sidebar.html:5 templates/stats/site.html:21
|
||||||
#: templates/user/user-bookmarks.html:56
|
#: templates/user/user-bookmarks.html:19 templates/user/user-bookmarks.html:80
|
||||||
msgid "Contests"
|
msgid "Contests"
|
||||||
msgstr "Kỳ thi"
|
msgstr "Kỳ thi"
|
||||||
|
|
||||||
#: judge/views/contests.py:429
|
#: judge/views/contests.py:439
|
||||||
msgid "Could not find such contest."
|
msgid "Could not find such contest."
|
||||||
msgstr "Không tìm thấy kỳ thi nào như vậy."
|
msgstr "Không tìm thấy kỳ thi nào như vậy."
|
||||||
|
|
||||||
#: judge/views/contests.py:437
|
#: judge/views/contests.py:447
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Access to contest \"%s\" denied"
|
msgid "Access to contest \"%s\" denied"
|
||||||
msgstr "Truy cập tới kỳ thi \"%s\" bị từ chối"
|
msgstr "Truy cập tới kỳ thi \"%s\" bị từ chối"
|
||||||
|
|
||||||
#: judge/views/contests.py:515
|
#: judge/views/contests.py:525
|
||||||
msgid "Clone Contest"
|
msgid "Clone Contest"
|
||||||
msgstr "Nhân bản kỳ thi"
|
msgstr "Nhân bản kỳ thi"
|
||||||
|
|
||||||
#: judge/views/contests.py:607
|
#: judge/views/contests.py:617
|
||||||
msgid "Contest not ongoing"
|
msgid "Contest not ongoing"
|
||||||
msgstr "Kỳ thi đang không diễn ra"
|
msgstr "Kỳ thi đang không diễn ra"
|
||||||
|
|
||||||
#: judge/views/contests.py:608
|
#: judge/views/contests.py:618
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "\"%s\" is not currently ongoing."
|
msgid "\"%s\" is not currently ongoing."
|
||||||
msgstr "\"%s\" kỳ thi đang không diễn ra."
|
msgstr "\"%s\" kỳ thi đang không diễn ra."
|
||||||
|
|
||||||
#: judge/views/contests.py:621
|
#: judge/views/contests.py:631
|
||||||
msgid "Banned from joining"
|
msgid "Banned from joining"
|
||||||
msgstr "Bị cấm tham gia"
|
msgstr "Bị cấm tham gia"
|
||||||
|
|
||||||
#: judge/views/contests.py:623
|
#: judge/views/contests.py:633
|
||||||
msgid ""
|
msgid ""
|
||||||
"You have been declared persona non grata for this contest. You are "
|
"You have been declared persona non grata for this contest. You are "
|
||||||
"permanently barred from joining this contest."
|
"permanently barred from joining this contest."
|
||||||
msgstr "Bạn không được phép tham gia kỳ thi này."
|
msgstr "Bạn không được phép tham gia kỳ thi này."
|
||||||
|
|
||||||
#: judge/views/contests.py:713
|
#: judge/views/contests.py:723
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Enter access code for \"%s\""
|
msgid "Enter access code for \"%s\""
|
||||||
msgstr "Nhập mật khẩu truy cập cho \"%s\""
|
msgstr "Nhập mật khẩu truy cập cho \"%s\""
|
||||||
|
|
||||||
#: judge/views/contests.py:730
|
#: judge/views/contests.py:740
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You are not in contest \"%s\"."
|
msgid "You are not in contest \"%s\"."
|
||||||
msgstr "Bạn không ở trong kỳ thi \"%s\"."
|
msgstr "Bạn không ở trong kỳ thi \"%s\"."
|
||||||
|
|
||||||
#: judge/views/contests.py:753
|
#: judge/views/contests.py:763
|
||||||
msgid "ContestCalendar requires integer year and month"
|
msgid "ContestCalendar requires integer year and month"
|
||||||
msgstr "Lịch thi yêu cầu giá trị cho năm và tháng là số nguyên"
|
msgstr "Lịch thi yêu cầu giá trị cho năm và tháng là số nguyên"
|
||||||
|
|
||||||
#: judge/views/contests.py:811
|
#: judge/views/contests.py:821
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Contests in %(month)s"
|
msgid "Contests in %(month)s"
|
||||||
msgstr "Các kỳ thi trong %(month)s"
|
msgstr "Các kỳ thi trong %(month)s"
|
||||||
|
|
||||||
#: judge/views/contests.py:812
|
#: judge/views/contests.py:822
|
||||||
msgid "F Y"
|
msgid "F Y"
|
||||||
msgstr "F Y"
|
msgstr "F Y"
|
||||||
|
|
||||||
#: judge/views/contests.py:872
|
#: judge/views/contests.py:882
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s Statistics"
|
msgid "%s Statistics"
|
||||||
msgstr "%s Thống kê"
|
msgstr "%s Thống kê"
|
||||||
|
|
||||||
#: judge/views/contests.py:1181
|
#: judge/views/contests.py:1191
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s Rankings"
|
msgid "%s Rankings"
|
||||||
msgstr "%s Bảng điểm"
|
msgstr "%s Bảng điểm"
|
||||||
|
|
||||||
#: judge/views/contests.py:1192
|
#: judge/views/contests.py:1202
|
||||||
msgid "???"
|
msgid "???"
|
||||||
msgstr "???"
|
msgstr "???"
|
||||||
|
|
||||||
#: judge/views/contests.py:1219
|
#: judge/views/contests.py:1229
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Your participation in %s"
|
msgid "Your participation in %s"
|
||||||
msgstr "Lần tham gia trong %s"
|
msgstr "Lần tham gia trong %s"
|
||||||
|
|
||||||
#: judge/views/contests.py:1220
|
#: judge/views/contests.py:1230
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s's participation in %s"
|
msgid "%s's participation in %s"
|
||||||
msgstr "Lần tham gia của %s trong %s"
|
msgstr "Lần tham gia của %s trong %s"
|
||||||
|
|
||||||
#: judge/views/contests.py:1234
|
#: judge/views/contests.py:1244
|
||||||
msgid "Live"
|
msgid "Live"
|
||||||
msgstr "Trực tiếp"
|
msgstr "Trực tiếp"
|
||||||
|
|
||||||
#: judge/views/contests.py:1253 templates/contest/contest-tabs.html:21
|
#: judge/views/contests.py:1263 templates/contest/contest-tabs.html:21
|
||||||
msgid "Participation"
|
msgid "Participation"
|
||||||
msgstr "Lần tham gia"
|
msgstr "Lần tham gia"
|
||||||
|
|
||||||
#: judge/views/contests.py:1302
|
#: judge/views/contests.py:1312
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%s MOSS Results"
|
msgid "%s MOSS Results"
|
||||||
msgstr "%s Kết quả MOSS"
|
msgstr "%s Kết quả MOSS"
|
||||||
|
|
||||||
#: judge/views/contests.py:1338
|
#: judge/views/contests.py:1348
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Running MOSS for %s..."
|
msgid "Running MOSS for %s..."
|
||||||
msgstr "Đang chạy MOSS cho %s..."
|
msgstr "Đang chạy MOSS cho %s..."
|
||||||
|
|
||||||
#: judge/views/contests.py:1361
|
#: judge/views/contests.py:1371
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Contest tag: %s"
|
msgid "Contest tag: %s"
|
||||||
msgstr "Nhãn kỳ thi: %s"
|
msgstr "Nhãn kỳ thi: %s"
|
||||||
|
|
||||||
#: judge/views/contests.py:1376 judge/views/ticket.py:67
|
#: judge/views/contests.py:1386 judge/views/ticket.py:67
|
||||||
msgid "Issue description"
|
msgid "Issue description"
|
||||||
msgstr "Mô tả vấn đề"
|
msgstr "Mô tả vấn đề"
|
||||||
|
|
||||||
#: judge/views/contests.py:1419
|
#: judge/views/contests.py:1429
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "New clarification for %s"
|
msgid "New clarification for %s"
|
||||||
msgstr "Thông báo mới cho %s"
|
msgstr "Thông báo mới cho %s"
|
||||||
|
@ -3075,61 +3076,61 @@ msgstr "Nhóm"
|
||||||
msgid "%s Members"
|
msgid "%s Members"
|
||||||
msgstr "%s Thành viên"
|
msgstr "%s Thành viên"
|
||||||
|
|
||||||
#: judge/views/organization.py:475
|
#: judge/views/organization.py:474
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "All submissions in <a href=\"{1}\">{0}</a>"
|
msgid "All submissions in <a href=\"{1}\">{0}</a>"
|
||||||
msgstr "Bài nộp trong <a href=\"{1}\">{0}</a>"
|
msgstr "Bài nộp trong <a href=\"{1}\">{0}</a>"
|
||||||
|
|
||||||
#: judge/views/organization.py:483 judge/views/submission.py:857
|
#: judge/views/organization.py:482 judge/views/submission.py:857
|
||||||
msgid "Submissions in"
|
msgid "Submissions in"
|
||||||
msgstr "Bài nộp trong"
|
msgstr "Bài nộp trong"
|
||||||
|
|
||||||
#: judge/views/organization.py:508 judge/views/organization.py:514
|
#: judge/views/organization.py:507 judge/views/organization.py:513
|
||||||
#: judge/views/organization.py:521
|
#: judge/views/organization.py:520
|
||||||
msgid "Joining group"
|
msgid "Joining group"
|
||||||
msgstr "Tham gia nhóm"
|
msgstr "Tham gia nhóm"
|
||||||
|
|
||||||
#: judge/views/organization.py:509
|
#: judge/views/organization.py:508
|
||||||
msgid "You are already in the group."
|
msgid "You are already in the group."
|
||||||
msgstr "Bạn đã ở trong nhóm."
|
msgstr "Bạn đã ở trong nhóm."
|
||||||
|
|
||||||
#: judge/views/organization.py:514
|
#: judge/views/organization.py:513
|
||||||
msgid "This group is not open."
|
msgid "This group is not open."
|
||||||
msgstr "Nhóm này là nhóm kín."
|
msgstr "Nhóm này là nhóm kín."
|
||||||
|
|
||||||
#: judge/views/organization.py:522
|
#: judge/views/organization.py:521
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "You may not be part of more than {count} public groups."
|
msgid "You may not be part of more than {count} public groups."
|
||||||
msgstr "Bạn không thể tham gia nhiều hơn {count} nhóm công khai."
|
msgstr "Bạn không thể tham gia nhiều hơn {count} nhóm công khai."
|
||||||
|
|
||||||
#: judge/views/organization.py:538
|
#: judge/views/organization.py:537
|
||||||
msgid "Leaving group"
|
msgid "Leaving group"
|
||||||
msgstr "Rời nhóm"
|
msgstr "Rời nhóm"
|
||||||
|
|
||||||
#: judge/views/organization.py:539
|
#: judge/views/organization.py:538
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You are not in \"%s\"."
|
msgid "You are not in \"%s\"."
|
||||||
msgstr "Bạn không ở trong \"%s\"."
|
msgstr "Bạn không ở trong \"%s\"."
|
||||||
|
|
||||||
#: judge/views/organization.py:565
|
#: judge/views/organization.py:564
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Request to join %s"
|
msgid "Request to join %s"
|
||||||
msgstr "Đăng ký tham gia %s"
|
msgstr "Đăng ký tham gia %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:595
|
#: judge/views/organization.py:594
|
||||||
msgid "Join request detail"
|
msgid "Join request detail"
|
||||||
msgstr "Chi tiết đơn đăng ký"
|
msgstr "Chi tiết đơn đăng ký"
|
||||||
|
|
||||||
#: judge/views/organization.py:637
|
#: judge/views/organization.py:636
|
||||||
msgid "Manage join requests"
|
msgid "Manage join requests"
|
||||||
msgstr "Quản lý đơn đăng ký"
|
msgstr "Quản lý đơn đăng ký"
|
||||||
|
|
||||||
#: judge/views/organization.py:641
|
#: judge/views/organization.py:640
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Managing join requests for %s"
|
msgid "Managing join requests for %s"
|
||||||
msgstr "Quản lý đơn đăng ký cho %s"
|
msgstr "Quản lý đơn đăng ký cho %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:681
|
#: judge/views/organization.py:680
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your organization can only receive %d more members. You cannot approve %d "
|
"Your organization can only receive %d more members. You cannot approve %d "
|
||||||
|
@ -3138,84 +3139,84 @@ msgstr ""
|
||||||
"Tổ chức chỉ có thể chứa %d thành viên. Bạn không thể chấp thuận nhiều hơn %d "
|
"Tổ chức chỉ có thể chứa %d thành viên. Bạn không thể chấp thuận nhiều hơn %d "
|
||||||
"người."
|
"người."
|
||||||
|
|
||||||
#: judge/views/organization.py:699
|
#: judge/views/organization.py:698
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Approved %d user."
|
msgid "Approved %d user."
|
||||||
msgid_plural "Approved %d users."
|
msgid_plural "Approved %d users."
|
||||||
msgstr[0] "Đã chấp thuận %d người."
|
msgstr[0] "Đã chấp thuận %d người."
|
||||||
|
|
||||||
#: judge/views/organization.py:702
|
#: judge/views/organization.py:701
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Rejected %d user."
|
msgid "Rejected %d user."
|
||||||
msgid_plural "Rejected %d users."
|
msgid_plural "Rejected %d users."
|
||||||
msgstr[0] "Đã từ chối %d người."
|
msgstr[0] "Đã từ chối %d người."
|
||||||
|
|
||||||
#: judge/views/organization.py:742
|
#: judge/views/organization.py:741
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Add member for %s"
|
msgid "Add member for %s"
|
||||||
msgstr "Thêm thành viên cho %s"
|
msgstr "Thêm thành viên cho %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:754
|
#: judge/views/organization.py:753
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Edited from site"
|
#| msgid "Edited from site"
|
||||||
msgid "Added members from site"
|
msgid "Added members from site"
|
||||||
msgstr "Chỉnh sửa từ web"
|
msgstr "Chỉnh sửa từ web"
|
||||||
|
|
||||||
#: judge/views/organization.py:774 judge/views/organization.py:782
|
#: judge/views/organization.py:773 judge/views/organization.py:781
|
||||||
msgid "Can't kick user"
|
msgid "Can't kick user"
|
||||||
msgstr "Không thể đuổi"
|
msgstr "Không thể đuổi"
|
||||||
|
|
||||||
#: judge/views/organization.py:775
|
#: judge/views/organization.py:774
|
||||||
msgid "The user you are trying to kick does not exist!"
|
msgid "The user you are trying to kick does not exist!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: judge/views/organization.py:783
|
#: judge/views/organization.py:782
|
||||||
#, python-format
|
#, 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 ""
|
msgstr ""
|
||||||
|
|
||||||
#: judge/views/organization.py:804 judge/views/organization.py:960
|
#: judge/views/organization.py:803 judge/views/organization.py:959
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Edit %s"
|
msgid "Edit %s"
|
||||||
msgstr "Chỉnh sửa %s"
|
msgstr "Chỉnh sửa %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:832 templates/organization/list.html:46
|
#: judge/views/organization.py:831 templates/organization/list.html:46
|
||||||
msgid "Create group"
|
msgid "Create group"
|
||||||
msgstr "Tạo nhóm"
|
msgstr "Tạo nhóm"
|
||||||
|
|
||||||
#: judge/views/organization.py:847
|
#: judge/views/organization.py:846
|
||||||
msgid "Exceeded limit"
|
msgid "Exceeded limit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: judge/views/organization.py:848
|
#: judge/views/organization.py:847
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You created too many groups. You can only create at most %d groups"
|
msgid "You created too many groups. You can only create at most %d groups"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: judge/views/organization.py:853 judge/views/organization.py:878
|
#: judge/views/organization.py:852 judge/views/organization.py:877
|
||||||
#: judge/views/organization.py:1051
|
#: judge/views/organization.py:1050
|
||||||
msgid "Added from site"
|
msgid "Added from site"
|
||||||
msgstr "Thêm từ web"
|
msgstr "Thêm từ web"
|
||||||
|
|
||||||
#: judge/views/organization.py:869
|
#: judge/views/organization.py:868
|
||||||
#: templates/organization/org-right-sidebar.html:52
|
#: templates/organization/org-right-sidebar.html:52
|
||||||
msgid "Add contest"
|
msgid "Add contest"
|
||||||
msgstr "Thêm kỳ thi"
|
msgstr "Thêm kỳ thi"
|
||||||
|
|
||||||
#: judge/views/organization.py:912 judge/views/organization.py:1101
|
#: judge/views/organization.py:911 judge/views/organization.py:1100
|
||||||
msgid "Permission denied"
|
msgid "Permission denied"
|
||||||
msgstr "Truy cập bị từ chối"
|
msgstr "Truy cập bị từ chối"
|
||||||
|
|
||||||
#: judge/views/organization.py:913
|
#: judge/views/organization.py:912
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "You are not allowed to edit this organization."
|
#| msgid "You are not allowed to edit this organization."
|
||||||
msgid "You are not allowed to edit this contest"
|
msgid "You are not allowed to edit this contest"
|
||||||
msgstr "Bạn không được phép chỉnh sửa tổ chức này."
|
msgstr "Bạn không được phép chỉnh sửa tổ chức này."
|
||||||
|
|
||||||
#: judge/views/organization.py:964 templates/blog/blog.html:31
|
#: judge/views/organization.py:963 templates/blog/blog.html:31
|
||||||
#: templates/comments/content-list.html:53
|
#: templates/comments/content-list.html:53
|
||||||
#: templates/comments/content-list.html:66
|
#: templates/comments/content-list.html:66
|
||||||
#: templates/contest/contest-tabs.html:36 templates/contest/list.html:150
|
#: templates/contest/contest-tabs.html:36 templates/contest/macros.html:14
|
||||||
#: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3
|
#: templates/contest/tag-title.html:9 templates/flatpages/admin_link.html:3
|
||||||
#: templates/license.html:10 templates/problem/editorial.html:15
|
#: templates/license.html:10 templates/problem/editorial.html:15
|
||||||
#: templates/problem/feed/items.html:50
|
#: templates/problem/feed/items.html:50
|
||||||
|
@ -3223,85 +3224,85 @@ msgstr "Bạn không được phép chỉnh sửa tổ chức này."
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "Chỉnh sửa"
|
msgstr "Chỉnh sửa"
|
||||||
|
|
||||||
#: judge/views/organization.py:1040
|
#: judge/views/organization.py:1039
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Add blog for %s"
|
msgid "Add blog for %s"
|
||||||
msgstr "Thêm bài đăng cho %s"
|
msgstr "Thêm bài đăng cho %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:1102
|
#: judge/views/organization.py:1101
|
||||||
msgid "Not allowed to edit this blog"
|
msgid "Not allowed to edit this blog"
|
||||||
msgstr "Bạn không được phép chỉnh sửa bài đăng này."
|
msgstr "Bạn không được phép chỉnh sửa bài đăng này."
|
||||||
|
|
||||||
#: judge/views/organization.py:1134
|
#: judge/views/organization.py:1133
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Edit blog %s"
|
msgid "Edit blog %s"
|
||||||
msgstr "Chỉnh sửa %s"
|
msgstr "Chỉnh sửa %s"
|
||||||
|
|
||||||
#: judge/views/organization.py:1181
|
#: judge/views/organization.py:1180
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Pending blogs in %s"
|
msgid "Pending blogs in %s"
|
||||||
msgstr "Bài đang đợi duyệt trong %s"
|
msgstr "Bài đang đợi duyệt trong %s"
|
||||||
|
|
||||||
#: judge/views/problem.py:134
|
#: judge/views/problem.py:135
|
||||||
msgid "No such problem"
|
msgid "No such problem"
|
||||||
msgstr "Không có bài nào như vậy"
|
msgstr "Không có bài nào như vậy"
|
||||||
|
|
||||||
#: judge/views/problem.py:135
|
#: judge/views/problem.py:136
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Could not find a problem with the code \"%s\"."
|
msgid "Could not find a problem with the code \"%s\"."
|
||||||
msgstr "Không tìm thấy bài tập với mã bài \"%s\"."
|
msgstr "Không tìm thấy bài tập với mã bài \"%s\"."
|
||||||
|
|
||||||
#: judge/views/problem.py:202
|
#: judge/views/problem.py:203
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Editorial for {0}"
|
msgid "Editorial for {0}"
|
||||||
msgstr "Hướng dẫn cho {0}"
|
msgstr "Hướng dẫn cho {0}"
|
||||||
|
|
||||||
#: judge/views/problem.py:206
|
#: judge/views/problem.py:207
|
||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgid "Editorial for <a href=\"{1}\">{0}</a>"
|
msgid "Editorial for <a href=\"{1}\">{0}</a>"
|
||||||
msgstr "Hướng dẫn cho <a href=\"{1}\">{0}</a>"
|
msgstr "Hướng dẫn cho <a href=\"{1}\">{0}</a>"
|
||||||
|
|
||||||
#: judge/views/problem.py:459 templates/contest/contest.html:112
|
#: judge/views/problem.py:460 templates/contest/contest.html:112
|
||||||
#: templates/course/lesson.html:14
|
#: templates/course/lesson.html:14
|
||||||
#: templates/organization/org-left-sidebar.html:4
|
#: templates/organization/org-left-sidebar.html:4
|
||||||
#: templates/profile-table.html:25 templates/user/user-about.html:28
|
#: templates/profile-table.html:25 templates/user/user-about.html:28
|
||||||
#: templates/user/user-bookmarks.html:35 templates/user/user-tabs.html:5
|
#: templates/user/user-bookmarks.html:16 templates/user/user-tabs.html:5
|
||||||
#: templates/user/users-table.html:19
|
#: templates/user/users-table.html:19
|
||||||
msgid "Problems"
|
msgid "Problems"
|
||||||
msgstr "Bài tập"
|
msgstr "Bài tập"
|
||||||
|
|
||||||
#: judge/views/problem.py:831
|
#: judge/views/problem.py:842
|
||||||
msgid "Problem feed"
|
msgid "Problem feed"
|
||||||
msgstr "Bài tập"
|
msgstr "Bài tập"
|
||||||
|
|
||||||
#: judge/views/problem.py:1035 judge/views/problem.py:1068
|
#: judge/views/problem.py:1046 judge/views/problem.py:1079
|
||||||
msgid "<h1>You have submitted too many submissions.</h1>"
|
msgid "<h1>You have submitted too many submissions.</h1>"
|
||||||
msgstr "<h1>Bạn nộp quá nhiều bài.</h1>"
|
msgstr "<h1>Bạn nộp quá nhiều bài.</h1>"
|
||||||
|
|
||||||
#: judge/views/problem.py:1047
|
#: judge/views/problem.py:1058
|
||||||
msgid "Banned from submitting"
|
msgid "Banned from submitting"
|
||||||
msgstr "Bị cấm nộp bài"
|
msgstr "Bị cấm nộp bài"
|
||||||
|
|
||||||
#: judge/views/problem.py:1049
|
#: judge/views/problem.py:1060
|
||||||
msgid ""
|
msgid ""
|
||||||
"You have been declared persona non grata for this problem. You are "
|
"You have been declared persona non grata for this problem. You are "
|
||||||
"permanently barred from submitting this problem."
|
"permanently barred from submitting this problem."
|
||||||
msgstr "Bạn đã bị cấm nộp bài này."
|
msgstr "Bạn đã bị cấm nộp bài này."
|
||||||
|
|
||||||
#: judge/views/problem.py:1087
|
#: judge/views/problem.py:1098
|
||||||
msgid "Too many submissions"
|
msgid "Too many submissions"
|
||||||
msgstr "Quá nhiều lần nộp"
|
msgstr "Quá nhiều lần nộp"
|
||||||
|
|
||||||
#: judge/views/problem.py:1089
|
#: judge/views/problem.py:1100
|
||||||
msgid "You have exceeded the submission limit for this problem."
|
msgid "You have exceeded the submission limit for this problem."
|
||||||
msgstr "Bạn đã vượt quá số lần nộp cho bài này."
|
msgstr "Bạn đã vượt quá số lần nộp cho bài này."
|
||||||
|
|
||||||
#: judge/views/problem.py:1174 judge/views/problem.py:1179
|
#: judge/views/problem.py:1185 judge/views/problem.py:1190
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Submit to %(problem)s"
|
msgid "Submit to %(problem)s"
|
||||||
msgstr "Nộp bài cho %(problem)s"
|
msgstr "Nộp bài cho %(problem)s"
|
||||||
|
|
||||||
#: judge/views/problem.py:1206
|
#: judge/views/problem.py:1217
|
||||||
msgid "Clone Problem"
|
msgid "Clone Problem"
|
||||||
msgstr "Nhân bản bài tập"
|
msgstr "Nhân bản bài tập"
|
||||||
|
|
||||||
|
@ -3591,44 +3592,44 @@ msgstr "Hủy kích hoạt Two Factor Authentication"
|
||||||
msgid "Perform Two Factor Authentication"
|
msgid "Perform Two Factor Authentication"
|
||||||
msgstr "Thực hiện Two Factor Authentication"
|
msgstr "Thực hiện Two Factor Authentication"
|
||||||
|
|
||||||
#: judge/views/user.py:102
|
#: judge/views/user.py:115
|
||||||
msgid "No such user"
|
msgid "No such user"
|
||||||
msgstr "Không người dùng nào như vậy"
|
msgstr "Không người dùng nào như vậy"
|
||||||
|
|
||||||
#: judge/views/user.py:103
|
#: judge/views/user.py:116
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "No user handle \"%s\"."
|
msgid "No user handle \"%s\"."
|
||||||
msgstr "Không tồn tại tên người dùng \"%s\"."
|
msgstr "Không tồn tại tên người dùng \"%s\"."
|
||||||
|
|
||||||
#: judge/views/user.py:108
|
#: judge/views/user.py:121
|
||||||
msgid "My account"
|
msgid "My account"
|
||||||
msgstr "Tài khoản của tôi"
|
msgstr "Tài khoản của tôi"
|
||||||
|
|
||||||
#: judge/views/user.py:110
|
#: judge/views/user.py:123
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "User %s"
|
msgid "User %s"
|
||||||
msgstr "Thành viên %s"
|
msgstr "Thành viên %s"
|
||||||
|
|
||||||
#: judge/views/user.py:198
|
#: judge/views/user.py:211
|
||||||
msgid "M j, Y, G:i"
|
msgid "M j, Y, G:i"
|
||||||
msgstr "j M, Y, G:i"
|
msgstr "j M, Y, G:i"
|
||||||
|
|
||||||
#: judge/views/user.py:367
|
#: judge/views/user.py:412
|
||||||
msgid "Updated on site"
|
msgid "Updated on site"
|
||||||
msgstr "Được cập nhật trên web"
|
msgstr "Được cập nhật trên web"
|
||||||
|
|
||||||
#: judge/views/user.py:384 templates/admin/auth/user/change_form.html:14
|
#: judge/views/user.py:429 templates/admin/auth/user/change_form.html:14
|
||||||
#: templates/admin/auth/user/change_form.html:17 templates/base.html:208
|
#: templates/admin/auth/user/change_form.html:17 templates/base.html:211
|
||||||
#: templates/user/user-tabs.html:12
|
#: templates/user/user-tabs.html:12
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "Chỉnh sửa thông tin"
|
msgstr "Chỉnh sửa thông tin"
|
||||||
|
|
||||||
#: judge/views/user.py:394 templates/user/user-left-sidebar.html:2
|
#: judge/views/user.py:439 templates/user/user-left-sidebar.html:2
|
||||||
#: templates/user/user-list-tabs.html:4
|
#: templates/user/user-list-tabs.html:4
|
||||||
msgid "Leaderboard"
|
msgid "Leaderboard"
|
||||||
msgstr "Xếp hạng"
|
msgstr "Xếp hạng"
|
||||||
|
|
||||||
#: judge/views/user.py:494
|
#: judge/views/user.py:539
|
||||||
msgid "Import Users"
|
msgid "Import Users"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3649,7 +3650,7 @@ msgstr "Thích"
|
||||||
msgid "Comment"
|
msgid "Comment"
|
||||||
msgstr "Bình luận"
|
msgstr "Bình luận"
|
||||||
|
|
||||||
#: templates/actionbar/list.html:43 templates/user/user-tabs.html:11
|
#: templates/actionbar/list.html:43
|
||||||
msgid "Bookmark"
|
msgid "Bookmark"
|
||||||
msgstr "Lưu"
|
msgstr "Lưu"
|
||||||
|
|
||||||
|
@ -3736,33 +3737,37 @@ msgstr "Nội bộ"
|
||||||
msgid "Stats"
|
msgid "Stats"
|
||||||
msgstr "Thống kê"
|
msgstr "Thống kê"
|
||||||
|
|
||||||
#: templates/base.html:217
|
#: templates/base.html:208 templates/user/user-tabs.html:11
|
||||||
|
msgid "Bookmarks"
|
||||||
|
msgstr "Đã lưu"
|
||||||
|
|
||||||
|
#: templates/base.html:220
|
||||||
msgid "Log out"
|
msgid "Log out"
|
||||||
msgstr "Đăng xuất"
|
msgstr "Đăng xuất"
|
||||||
|
|
||||||
#: templates/base.html:227
|
#: templates/base.html:230
|
||||||
#: templates/registration/password_reset_complete.html:4
|
#: templates/registration/password_reset_complete.html:4
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Đăng nhập"
|
msgstr "Đăng nhập"
|
||||||
|
|
||||||
#: templates/base.html:228
|
#: templates/base.html:231
|
||||||
msgid "Sign up"
|
msgid "Sign up"
|
||||||
msgstr "Đăng ký"
|
msgstr "Đăng ký"
|
||||||
|
|
||||||
#: templates/base.html:242
|
#: templates/base.html:245
|
||||||
msgid "spectating"
|
msgid "spectating"
|
||||||
msgstr "đang theo dõi"
|
msgstr "đang theo dõi"
|
||||||
|
|
||||||
#: templates/base.html:254 templates/contest/list.html:218
|
#: templates/base.html:257 templates/contest/list.html:304
|
||||||
#: templates/contest/list.html:402
|
#: templates/contest/macros.html:82
|
||||||
msgid "In contest"
|
msgid "In contest"
|
||||||
msgstr "Trong kỳ thi"
|
msgstr "Trong kỳ thi"
|
||||||
|
|
||||||
#: templates/base.html:256
|
#: templates/base.html:259
|
||||||
msgid "Out contest"
|
msgid "Out contest"
|
||||||
msgstr "Ngoài kỳ thi"
|
msgstr "Ngoài kỳ thi"
|
||||||
|
|
||||||
#: templates/base.html:263
|
#: templates/base.html:266
|
||||||
msgid "This site works best with JavaScript enabled."
|
msgid "This site works best with JavaScript enabled."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -3777,6 +3782,8 @@ msgstr "Chỉnh sửa trong"
|
||||||
|
|
||||||
#: templates/blog/content.html:43 templates/comments/feed.html:18
|
#: templates/blog/content.html:43 templates/comments/feed.html:18
|
||||||
#: templates/problem/feed/items.html:109 templates/ticket/feed.html:26
|
#: templates/problem/feed/items.html:109 templates/ticket/feed.html:26
|
||||||
|
#: templates/user/user-bookmarks.html:61 templates/user/user-bookmarks.html:131
|
||||||
|
#: templates/user/user-bookmarks.html:180
|
||||||
msgid "...More"
|
msgid "...More"
|
||||||
msgstr "...Xem thêm"
|
msgstr "...Xem thêm"
|
||||||
|
|
||||||
|
@ -4137,7 +4144,7 @@ msgstr "MOSS"
|
||||||
msgid "Leave contest"
|
msgid "Leave contest"
|
||||||
msgstr "Rời kỳ thi"
|
msgstr "Rời kỳ thi"
|
||||||
|
|
||||||
#: templates/contest/contest.html:43 templates/contest/list.html:407
|
#: templates/contest/contest.html:43 templates/contest/list.html:309
|
||||||
msgid "Virtual join"
|
msgid "Virtual join"
|
||||||
msgstr "Tham gia ảo"
|
msgstr "Tham gia ảo"
|
||||||
|
|
||||||
|
@ -4201,89 +4208,89 @@ msgid "By joining in this contest, you will automatically leave contest"
|
||||||
msgstr "Khi tham gia kỳ thi này, bạn sẽ tự động rời khỏi kỳ thi"
|
msgstr "Khi tham gia kỳ thi này, bạn sẽ tự động rời khỏi kỳ thi"
|
||||||
|
|
||||||
#: templates/contest/list.html:144
|
#: templates/contest/list.html:144
|
||||||
msgid "hidden"
|
|
||||||
msgstr "ẩn"
|
|
||||||
|
|
||||||
#: templates/contest/list.html:156
|
|
||||||
msgid "private"
|
|
||||||
msgstr "riêng tư"
|
|
||||||
|
|
||||||
#: templates/contest/list.html:168
|
|
||||||
msgid "rated"
|
|
||||||
msgstr "rated"
|
|
||||||
|
|
||||||
#: templates/contest/list.html:187 templates/contest/list.html:194
|
|
||||||
msgid "Start"
|
|
||||||
msgstr "Bắt đầu"
|
|
||||||
|
|
||||||
#: templates/contest/list.html:190
|
|
||||||
msgid "End"
|
|
||||||
msgstr "Kết thúc"
|
|
||||||
|
|
||||||
#: templates/contest/list.html:198
|
|
||||||
msgid "Length"
|
|
||||||
msgstr "Dài"
|
|
||||||
|
|
||||||
#: templates/contest/list.html:200
|
|
||||||
#, python-format
|
|
||||||
msgid "%(time_limit)s"
|
|
||||||
msgstr "%(time_limit)s"
|
|
||||||
|
|
||||||
#: templates/contest/list.html:202
|
|
||||||
#, python-format
|
|
||||||
msgid "%(duration)s"
|
|
||||||
msgstr "%(duration)s"
|
|
||||||
|
|
||||||
#: templates/contest/list.html:223
|
|
||||||
msgid "Spectate"
|
|
||||||
msgstr "Theo dõi"
|
|
||||||
|
|
||||||
#: templates/contest/list.html:229 templates/organization/home.html:23
|
|
||||||
msgid "Join"
|
|
||||||
msgstr "Tham gia"
|
|
||||||
|
|
||||||
#: templates/contest/list.html:249
|
|
||||||
msgid "Active"
|
msgid "Active"
|
||||||
msgstr "Đang tham gia"
|
msgstr "Đang tham gia"
|
||||||
|
|
||||||
#: templates/contest/list.html:257
|
#: templates/contest/list.html:152
|
||||||
msgid "Ongoing"
|
msgid "Ongoing"
|
||||||
msgstr "Đang diễn ra"
|
msgstr "Đang diễn ra"
|
||||||
|
|
||||||
#: templates/contest/list.html:264
|
#: templates/contest/list.html:159
|
||||||
msgid "Upcoming"
|
msgid "Upcoming"
|
||||||
msgstr "Sắp diễn ra"
|
msgstr "Sắp diễn ra"
|
||||||
|
|
||||||
#: templates/contest/list.html:271
|
#: templates/contest/list.html:166
|
||||||
msgid "Past"
|
msgid "Past"
|
||||||
msgstr "Đã diễn ra"
|
msgstr "Đã diễn ra"
|
||||||
|
|
||||||
#: templates/contest/list.html:291
|
#: templates/contest/list.html:187
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Window ends in %(countdown)s"
|
msgid "Window ends in %(countdown)s"
|
||||||
msgstr "Cửa số thi còn %(countdown)s"
|
msgstr "Cửa số thi còn %(countdown)s"
|
||||||
|
|
||||||
#: templates/contest/list.html:294 templates/contest/list.html:330
|
#: templates/contest/list.html:190 templates/contest/list.html:228
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Ends in %(countdown)s"
|
msgid "Ends in %(countdown)s"
|
||||||
msgstr "Kết thúc trong %(countdown)s"
|
msgstr "Kết thúc trong %(countdown)s"
|
||||||
|
|
||||||
#: templates/contest/list.html:314
|
#: templates/contest/list.html:210
|
||||||
msgid "There is no active contest at this time."
|
msgid "There is no active contest at this time."
|
||||||
msgstr "Không có kỳ thi nào đang tham gia."
|
msgstr "Không có kỳ thi nào đang tham gia."
|
||||||
|
|
||||||
#: templates/contest/list.html:349
|
#: templates/contest/list.html:247
|
||||||
msgid "There is no ongoing contest at this time."
|
msgid "There is no ongoing contest at this time."
|
||||||
msgstr "Không có kỳ thi nào đang diễn ra hiện tại."
|
msgstr "Không có kỳ thi nào đang diễn ra hiện tại."
|
||||||
|
|
||||||
#: templates/contest/list.html:381
|
#: templates/contest/list.html:281
|
||||||
msgid "There is no scheduled contest at this time."
|
msgid "There is no scheduled contest at this time."
|
||||||
msgstr "Không có kỳ thi nào được lên lịch hiện tại."
|
msgstr "Không có kỳ thi nào được lên lịch hiện tại."
|
||||||
|
|
||||||
#: templates/contest/list.html:419
|
#: templates/contest/list.html:321
|
||||||
msgid "There is no past contest."
|
msgid "There is no past contest."
|
||||||
msgstr "Không có kỳ thi nào trong quá khứ."
|
msgstr "Không có kỳ thi nào trong quá khứ."
|
||||||
|
|
||||||
|
#: templates/contest/macros.html:8
|
||||||
|
msgid "hidden"
|
||||||
|
msgstr "ẩn"
|
||||||
|
|
||||||
|
#: templates/contest/macros.html:20
|
||||||
|
msgid "private"
|
||||||
|
msgstr "riêng tư"
|
||||||
|
|
||||||
|
#: templates/contest/macros.html:32
|
||||||
|
msgid "rated"
|
||||||
|
msgstr "rated"
|
||||||
|
|
||||||
|
#: templates/contest/macros.html:51 templates/contest/macros.html:58
|
||||||
|
msgid "Start"
|
||||||
|
msgstr "Bắt đầu"
|
||||||
|
|
||||||
|
#: templates/contest/macros.html:54
|
||||||
|
msgid "End"
|
||||||
|
msgstr "Kết thúc"
|
||||||
|
|
||||||
|
#: templates/contest/macros.html:62
|
||||||
|
msgid "Length"
|
||||||
|
msgstr "Dài"
|
||||||
|
|
||||||
|
#: templates/contest/macros.html:64
|
||||||
|
#, python-format
|
||||||
|
msgid "%(time_limit)s"
|
||||||
|
msgstr "%(time_limit)s"
|
||||||
|
|
||||||
|
#: templates/contest/macros.html:66
|
||||||
|
#, python-format
|
||||||
|
msgid "%(duration)s"
|
||||||
|
msgstr "%(duration)s"
|
||||||
|
|
||||||
|
#: templates/contest/macros.html:87
|
||||||
|
msgid "Spectate"
|
||||||
|
msgstr "Theo dõi"
|
||||||
|
|
||||||
|
#: templates/contest/macros.html:93 templates/organization/home.html:23
|
||||||
|
msgid "Join"
|
||||||
|
msgstr "Tham gia"
|
||||||
|
|
||||||
#: templates/contest/media-js.html:147
|
#: templates/contest/media-js.html:147
|
||||||
msgid "Are you sure you want to leave?"
|
msgid "Are you sure you want to leave?"
|
||||||
msgstr "Bạn có chắc muốn rời?"
|
msgstr "Bạn có chắc muốn rời?"
|
||||||
|
@ -6066,13 +6073,29 @@ msgstr "Min. rating:"
|
||||||
msgid "Max rating:"
|
msgid "Max rating:"
|
||||||
msgstr "Max rating:"
|
msgstr "Max rating:"
|
||||||
|
|
||||||
#: templates/user/user-bookmarks.html:14
|
#: templates/user/user-bookmarks.html:22
|
||||||
|
msgid "Editorials"
|
||||||
|
msgstr "Lời giải"
|
||||||
|
|
||||||
|
#: templates/user/user-bookmarks.html:25
|
||||||
msgid "Posts"
|
msgid "Posts"
|
||||||
msgstr "Bài đăng"
|
msgstr "Bài đăng"
|
||||||
|
|
||||||
#: templates/user/user-bookmarks.html:78
|
#: templates/user/user-bookmarks.html:71
|
||||||
msgid "Editorials"
|
msgid "There is no saved problem."
|
||||||
msgstr "Lời giải"
|
msgstr "Không có bài tập nào đã lưu."
|
||||||
|
|
||||||
|
#: templates/user/user-bookmarks.html:100
|
||||||
|
msgid "There is no saved contest."
|
||||||
|
msgstr "Không có kỳ thi đã lưu."
|
||||||
|
|
||||||
|
#: templates/user/user-bookmarks.html:141
|
||||||
|
msgid "There is no saved editorial."
|
||||||
|
msgstr "Không có lời giải nào đã lưu."
|
||||||
|
|
||||||
|
#: templates/user/user-bookmarks.html:190
|
||||||
|
msgid "There is no saved post."
|
||||||
|
msgstr "Không có bài đăng nào đã lưu."
|
||||||
|
|
||||||
#: templates/user/user-problems.html:35
|
#: templates/user/user-problems.html:35
|
||||||
msgid "Points Breakdown"
|
msgid "Points Breakdown"
|
||||||
|
|
|
@ -204,6 +204,9 @@
|
||||||
<div class="dropdown-item">{{ _('Stats') }}</div>
|
<div class="dropdown-item">{{ _('Stats') }}</div>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<a href="{{ url('user_bookmark') }}">
|
||||||
|
<div class="dropdown-item">{{ _('Bookmarks') }}</div>
|
||||||
|
</a>
|
||||||
<a href="{{ url('user_edit_profile') }}">
|
<a href="{{ url('user_edit_profile') }}">
|
||||||
<div class="dropdown-item">{{ _('Edit profile') }}</div>
|
<div class="dropdown-item">{{ _('Edit profile') }}</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
<div class="list-contest">
|
<div class="list-contest">
|
||||||
<div class="info-contest">
|
<div class="info-contest">
|
||||||
<div class="contest-title"> {{ _('Contests') }} </div>
|
<div class="contest-title"> {{ _('Contests') }} </div>
|
||||||
{{ contest_head(contest) }}
|
{{ contest_head(contest, organization) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="info-contest">
|
<div class="info-contest">
|
||||||
<div class="contest-title"> {{ _('Time') }} </div>
|
<div class="contest-title"> {{ _('Time') }} </div>
|
||||||
|
@ -217,7 +217,7 @@
|
||||||
<div class="list-contest">
|
<div class="list-contest">
|
||||||
<div class="info-contest">
|
<div class="info-contest">
|
||||||
<div class="contest-title"> {{ _('Contests') }} </div>
|
<div class="contest-title"> {{ _('Contests') }} </div>
|
||||||
{{ contest_head(contest) }}
|
{{ contest_head(contest, organization) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="info-contest">
|
<div class="info-contest">
|
||||||
<div class="contest-title"> {{ _('Time') }} </div>
|
<div class="contest-title"> {{ _('Time') }} </div>
|
||||||
|
@ -254,7 +254,7 @@
|
||||||
<div class="list-contest">
|
<div class="list-contest">
|
||||||
<div class="info-contest">
|
<div class="info-contest">
|
||||||
<div class="contest-title"> {{ _('Contests') }} </div>
|
<div class="contest-title"> {{ _('Contests') }} </div>
|
||||||
{{ contest_head(contest) }}
|
{{ contest_head(contest, organization) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="info-contest">
|
<div class="info-contest">
|
||||||
<div class="contest-title"> {{ _('Time') }} </div>
|
<div class="contest-title"> {{ _('Time') }} </div>
|
||||||
|
@ -288,7 +288,7 @@
|
||||||
<div class="list-contest">
|
<div class="list-contest">
|
||||||
<div class="info-contest">
|
<div class="info-contest">
|
||||||
<div class="contest-title"> {{ _('Contests') }} </div>
|
<div class="contest-title"> {{ _('Contests') }} </div>
|
||||||
{{ contest_head(contest) }}
|
{{ contest_head(contest, organization) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="info-contest">
|
<div class="info-contest">
|
||||||
<div class="contest-title"> {{ _('Time') }} </div>
|
<div class="contest-title"> {{ _('Time') }} </div>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{% macro contest_head(contest) %}
|
{% macro contest_head(contest, organization=None) %}
|
||||||
<a href="{{ url('contest_view', contest.key) }}" class="contest-list-title" style="margin-right: 5px;">
|
<a href="{{ url('contest_view', contest.key) }}" class="contest-list-title" style="margin-right: 5px;">
|
||||||
{{contest.name}}
|
{{contest.name}}
|
||||||
</a>
|
</a>
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
<i class="fa fa-eye-slash"></i> {{ _('hidden') }}
|
<i class="fa fa-eye-slash"></i> {{ _('hidden') }}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if contest.is_editable %}
|
{% if organization and contest.is_editable %}
|
||||||
<span class="contest-tag contest-tag-edit">
|
<span class="contest-tag contest-tag-edit">
|
||||||
<a href="{{ url('organization_contest_edit', organization.id, organization.slug, contest.key) }}" class="white">
|
<a href="{{ url('organization_contest_edit', organization.id, organization.slug, contest.key) }}" class="white">
|
||||||
<i class="fa fa-edit"></i> {{ _('Edit') }}
|
<i class="fa fa-edit"></i> {{ _('Edit') }}
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
<i class="fa fa-lock"></i> {{ _('private') }}
|
<i class="fa fa-lock"></i> {{ _('private') }}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if not hide_contest_orgs %}
|
{% if not organization %}
|
||||||
{% if contest.is_organization_private %}
|
{% if contest.is_organization_private %}
|
||||||
{% for org in contest.organizations.all() %}
|
{% for org in contest.organizations.all() %}
|
||||||
{% include "organization/tag.html" %}
|
{% include "organization/tag.html" %}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
{{ make_tab('impersonate', 'fa-eye', url('impersonate-start', user.user.id), _('Impersonate')) }}
|
{{ make_tab('impersonate', 'fa-eye', url('impersonate-start', user.user.id), _('Impersonate')) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if user.user == request.user %}
|
{% if user.user == request.user %}
|
||||||
{{ make_tab('bookmark', 'fa-bookmark', url('user_bookmark'), _('Bookmark')) }}
|
{{ make_tab('bookmark', 'fa-bookmark', url('user_bookmark'), _('Bookmarks')) }}
|
||||||
{{ make_tab('edit', 'fa-edit', url('user_edit_profile'), _('Edit profile')) }}
|
{{ make_tab('edit', 'fa-edit', url('user_edit_profile'), _('Edit profile')) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if perms.auth.change_user %}
|
{% if perms.auth.change_user %}
|
||||||
|
|
Loading…
Reference in a new issue