From 16009f9717af7e01eccf53c2d6e6949ea840e2d0 Mon Sep 17 00:00:00 2001 From: pretalx-translations Date: Mon, 16 Dec 2024 13:24:17 +0100 Subject: [PATCH 01/14] Translations update: Portuguese, Vietnamese --- .../locale/pt_BR/LC_MESSAGES/django.po | 8 +- src/pretalx/locale/vi/LC_MESSAGES/django.po | 1225 +++++++++++------ 2 files changed, 787 insertions(+), 446 deletions(-) diff --git a/src/pretalx/locale/pt_BR/LC_MESSAGES/django.po b/src/pretalx/locale/pt_BR/LC_MESSAGES/django.po index 5d033d71a..841119850 100644 --- a/src/pretalx/locale/pt_BR/LC_MESSAGES/django.po +++ b/src/pretalx/locale/pt_BR/LC_MESSAGES/django.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-10 16:16+0000\n" -"PO-Revision-Date: 2021-09-22 18:56+0000\n" -"Last-Translator: Alberto Leoncio \n" +"PO-Revision-Date: 2024-12-12 23:54+0000\n" +"Last-Translator: Jayme Klein \n" "Language-Team: none\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.4.2\n" +"X-Generator: Weblate 5.6.2\n" #: pretalx/agenda/phrases.py:8 msgid "Thank you for your feedback!" -msgstr "Obrigado pelo seu feedback!" +msgstr "Obrigado pelo seu comentário!" #: pretalx/agenda/phrases.py:9 msgid "Thanks, we (and our speakers) appreciate your feedback!" diff --git a/src/pretalx/locale/vi/LC_MESSAGES/django.po b/src/pretalx/locale/vi/LC_MESSAGES/django.po index 7268827f7..b3510aa11 100644 --- a/src/pretalx/locale/vi/LC_MESSAGES/django.po +++ b/src/pretalx/locale/vi/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-12-10 16:16+0000\n" -"PO-Revision-Date: 2024-10-30 14:07+0000\n" -"Last-Translator: Hoi thao Khoa hoc \n" +"PO-Revision-Date: 2024-12-16 12:18+0000\n" +"Last-Translator: Tobias Kunze \n" "Language-Team: none\n" "Language: vi\n" "MIME-Version: 1.0\n" @@ -499,7 +499,7 @@ msgstr "thu hồi" #: pretalx/cfp/templates/cfp/event/index.html:36 msgid "Go To Organiser Area" -msgstr "" +msgstr "Dành cho Ban Tổ chức" #: pretalx/cfp/templates/cfp/event/invitation.html:6 #: pretalx/cfp/templates/cfp/event/invitation.html:9 @@ -570,7 +570,7 @@ msgstr "" #: pretalx/cfp/templates/cfp/event/recover.html:25 msgid "Set your password to access your profile and proposals" -msgstr "" +msgstr "Tạo mật khẩu để truy cập hồ sơ và đề xuất tham luận của quý vị" #: pretalx/cfp/templates/cfp/event/submission_base.html:10 #: pretalx/orga/templates/orga/submission/content.html:27 @@ -950,14 +950,8 @@ msgid "Resources" msgstr "Tài liệu hỗ trợ" #: pretalx/cfp/templates/cfp/includes/submission_resources_form.html:13 -#, fuzzy -#| msgid "" -#| "Resources will be publicly visible. Please try to keep your uploads below " -#| "16MB." msgid "Resources will be publicly visible." -msgstr "" -"Tài liệu hỗ trợ sẽ được xuất bản không khai. Vui lòng tải giữ dung lượng của " -"mỗi tài liệu dưới 16MB." +msgstr "Tài liệu hỗ trợ sẽ được xuất bản không khai." #: pretalx/cfp/templates/cfp/includes/submission_resources_form.html:62 msgid "This proposal has no resources yet." @@ -1152,268 +1146,268 @@ msgstr "Mật khẩu không khớp nhau." #: pretalx/common/log_display.py:28 #, python-brace-format msgid "The event {name} ({slug}) by {organiser} was deleted." -msgstr "" +msgstr "Hội thảo {name} ({slug}) do {organiser} tổ chức đã bị xoá." #: pretalx/common/log_display.py:29 #, python-brace-format msgid "The organiser {name} was deleted." -msgstr "" +msgstr "Ban Tổ chức {name} đã bị xoá." #: pretalx/common/log_display.py:50 msgid "The CfP has been modified." -msgstr "" +msgstr "Thông báo mời viết tham luận (CfP) đã được sửa đổi." #: pretalx/common/log_display.py:51 msgid "The event has been added." -msgstr "" +msgstr "Hội thảo này đã được tạo mới." #: pretalx/common/log_display.py:52 msgid "The event was modified." -msgstr "" +msgstr "Hội thảo này đã được chỉnh sửa." #: pretalx/common/log_display.py:53 msgid "The event was made public." -msgstr "" +msgstr "Hội thảo này đã được công bố." #: pretalx/common/log_display.py:54 msgid "The event was deactivated." -msgstr "" +msgstr "Hội thảo này đã được tạm ngưng." #: pretalx/common/log_display.py:55 msgid "A plugin was enabled." -msgstr "" +msgstr "Công cụ bổ sung đã được kích hoạt." #: pretalx/common/log_display.py:56 msgid "A plugin was disabled." -msgstr "" +msgstr "Công cụ bổ sung đã được tạm ngưng." #: pretalx/common/log_display.py:57 msgid "The invitation to the event orga was accepted." -msgstr "" +msgstr "Lời mời tham dự Hội thảo orga đã được chấp nhận." #: pretalx/common/log_display.py:58 msgid "An invitation to the event orga was retracted." -msgstr "" +msgstr "Lời mời tham gia hội thảo orga đã được rút lại." #: pretalx/common/log_display.py:59 msgid "An invitation to the event orga was sent." -msgstr "" +msgstr "Lời mời tham dự hội thảo orga đã được gửi." #: pretalx/common/log_display.py:61 msgid "The invitation to the review team was retracted." -msgstr "" +msgstr "Lời mời tham gia Ban bình duyệt đã được rút lại." #: pretalx/common/log_display.py:63 msgid "The invitation to the review team was sent." -msgstr "" +msgstr "Lời mời tham gia Ban bình duyệt đã được gửi." #: pretalx/common/log_display.py:64 msgid "An email was created." -msgstr "" +msgstr "Email đã được soạn thảo." #: pretalx/common/log_display.py:65 msgid "A pending email was deleted." -msgstr "" +msgstr "Email đang chờ gửi đi đã được xoá." #: pretalx/common/log_display.py:66 msgid "All pending emails were deleted." -msgstr "" +msgstr "Tất cả email đang chờ gửi đi đã được xoá." #: pretalx/common/log_display.py:67 msgid "An email was sent." -msgstr "" +msgstr "Email đã được gửi." #: pretalx/common/log_display.py:68 msgid "An email was modified." -msgstr "" +msgstr "Email đã được chỉnh sửa." #: pretalx/common/log_display.py:69 msgid "A mail template was added." -msgstr "" +msgstr "Mẫu email đã được tạo mới." #: pretalx/common/log_display.py:70 msgid "A mail template was deleted." -msgstr "" +msgstr "Mẫu email đã được xoá." #: pretalx/common/log_display.py:71 msgid "A mail template was modified." -msgstr "" +msgstr "Mẫu email đã được sửa." #: pretalx/common/log_display.py:72 msgid "A question was added." -msgstr "" +msgstr "Một câu hỏi đã được bổ sung." #: pretalx/common/log_display.py:73 msgid "A question was deleted." -msgstr "" +msgstr "Một câu hỏi đã được xoá." #: pretalx/common/log_display.py:74 msgid "A question was modified." -msgstr "" +msgstr "Một câu hỏi đã được chỉnh sửa." #: pretalx/common/log_display.py:75 msgid "A question option was added." -msgstr "" +msgstr "Một lựa chọn cho câu hỏi đã được bổ sung." #: pretalx/common/log_display.py:76 msgid "A question option was deleted." -msgstr "" +msgstr "Một lựa chọn cho câu hỏi đã được xoá." #: pretalx/common/log_display.py:77 msgid "A question option was modified." -msgstr "" +msgstr "Một lựa chọn cho câu hỏi đã được sửa." #: pretalx/common/log_display.py:78 msgid "A tag was added." -msgstr "" +msgstr "Một thẻ đã được bổ sung." #: pretalx/common/log_display.py:79 msgid "A tag was deleted." -msgstr "" +msgstr "Một thẻ đã được xoá." #: pretalx/common/log_display.py:80 msgid "A tag was modified." -msgstr "" +msgstr "Một thẻ đã được chỉnh sửa." #: pretalx/common/log_display.py:81 msgid "A new room was added." -msgstr "" +msgstr "Một phòng mới đã được bổ sung." #: pretalx/common/log_display.py:82 msgid "A new schedule version was released." -msgstr "" +msgstr "Một bản lịch hội thảo mới đã được công bố." #: pretalx/common/log_display.py:83 msgid "The proposal was accepted." -msgstr "" +msgstr "Đề xuất tham luận đã được chấp nhận." #: pretalx/common/log_display.py:84 msgid "The proposal was cancelled." -msgstr "" +msgstr "Đề xuất tham luận đã được huỷ." #: pretalx/common/log_display.py:85 msgid "The proposal was confirmed." -msgstr "" +msgstr "Đề xuất tham luận đã được xác nhận sẽ thuyết trình." #: pretalx/common/log_display.py:86 msgid "The proposal was added." -msgstr "" +msgstr "Đề xuất tham luận đã được bổ sung." #: pretalx/common/log_display.py:87 msgid "The proposal was deleted." -msgstr "" +msgstr "Đề xuất tham luận đã được xoá." #: pretalx/common/log_display.py:88 msgid "The proposal was rejected." -msgstr "" +msgstr "Đề xuất tham luận đã bị tự chối." #: pretalx/common/log_display.py:89 msgid "A proposal resource was added." -msgstr "" +msgstr "Tài liệu phụ trợ cho đề xuất tham luận đã được bổ sung." #: pretalx/common/log_display.py:90 msgid "A proposal resource was deleted." -msgstr "" +msgstr "Tài liệu phụ trợ cho đề xuất tham luận đã được xoá." #: pretalx/common/log_display.py:91 msgid "A proposal resource was modified." -msgstr "" +msgstr "Tài liệu phụ trợ cho đề xuất tham luận đã được chỉnh sửa." #: pretalx/common/log_display.py:92 msgid "A speaker was added to the proposal." -msgstr "" +msgstr "Một diễn giả đã được thêm vào đề xuất tham luận." #: pretalx/common/log_display.py:93 msgid "A speaker was invited to the proposal." -msgstr "" +msgstr "Một diễn giả đã được mời tham gia đề xuất tham luận." #: pretalx/common/log_display.py:94 msgid "A speaker was removed from the proposal." -msgstr "" +msgstr "Một diễn giả đã được bỏ ra khỏi đề xuất tham luận." #: pretalx/common/log_display.py:95 msgid "The proposal was unconfirmed." -msgstr "" +msgstr "Một đề xuất tham luận đã được xác nhận không thuyết trình nữa." #: pretalx/common/log_display.py:96 msgid "The proposal was modified." -msgstr "" +msgstr "Một đề xuất tham luận đã được chỉnh sửa." #: pretalx/common/log_display.py:97 msgid "The proposal was withdrawn." -msgstr "" +msgstr "Một đề xuất tham luận đã được rút lại." #: pretalx/common/log_display.py:98 msgid "A proposal answer was modified." -msgstr "" +msgstr "Một câu hỏi về đề xuất tham luận đã được chỉnh sửa." #: pretalx/common/log_display.py:99 msgid "A proposal answer was added." -msgstr "" +msgstr "Một câu trả lời về đề xuất tham luận đã được bổ sung." #: pretalx/common/log_display.py:100 msgid "A session type was added." -msgstr "" +msgstr "Một loại phiên hội thảo đã được bổ sung." #: pretalx/common/log_display.py:101 msgid "A session type was deleted." -msgstr "" +msgstr "Một loại phiên hội thảo đã được xoá." #: pretalx/common/log_display.py:102 msgid "The session type was made default." -msgstr "" +msgstr "Một loại phiên hội thảo đã được đặt làm mặc định." #: pretalx/common/log_display.py:103 msgid "A session type was modified." -msgstr "" +msgstr "Một loại phiên hội thảo đã được chỉnh sửa." #: pretalx/common/log_display.py:104 msgid "An access code was added." -msgstr "" +msgstr "Một mã truy cập đã được bổ sung." #: pretalx/common/log_display.py:105 msgid "An access code was sent." -msgstr "" +msgstr "Một mã truy cập đã được gửi đi." #: pretalx/common/log_display.py:106 msgid "An access code was modified." -msgstr "" +msgstr "Một mã truy cập đã được chỉnh sửa." #: pretalx/common/log_display.py:107 msgid "An access code was deleted." -msgstr "" +msgstr "Một mã truy cập đã được xoá." #: pretalx/common/log_display.py:108 msgid "A track was added." -msgstr "" +msgstr "Một kênh hội thảo đã được bổ sung." #: pretalx/common/log_display.py:109 msgid "A track was deleted." -msgstr "" +msgstr "Một kênh hội thảo đã được xoá." #: pretalx/common/log_display.py:110 msgid "A track was modified." -msgstr "" +msgstr "Một kênh hội thảo đã được chỉnh sửa." #: pretalx/common/log_display.py:111 msgid "A speaker has been marked as arrived." -msgstr "" +msgstr "Một diễn giả được ghi chú là đã đến hội thảo." #: pretalx/common/log_display.py:112 msgid "A speaker has been marked as not arrived." -msgstr "" +msgstr "Một diễn giả được ghi chú là chưa đến hội thảo." #: pretalx/common/log_display.py:113 msgid "The API token was reset." -msgstr "" +msgstr "Mã API token đã được tạo lại." #: pretalx/common/log_display.py:115 msgid "The password was modified." -msgstr "" +msgstr "Mật khẩu đã được chỉnh sửa." #: pretalx/common/log_display.py:116 msgid "The profile was modified." -msgstr "" +msgstr "Hồ sơ đã được chỉnh sửa." #: pretalx/common/log_display.py:152 pretalx/common/log_display.py:156 #: pretalx/orga/templates/orga/cfp/question_form.html:29 @@ -1421,21 +1415,21 @@ msgstr "" #: pretalx/orga/templates/orga/review/dashboard.html:84 #: pretalx/orga/views/cfp.py:354 msgid "Question" -msgstr "" +msgstr "Câu hỏi" #: pretalx/common/log_display.py:163 msgid "Answer to question" -msgstr "" +msgstr "Câu trả lời" #: pretalx/common/log_display.py:166 pretalx/orga/templates/orga/base.html:245 #: pretalx/orga/templates/orga/cfp/text.html:20 #: pretalx/orga/templates/orga/cfp/text.html:24 msgid "Call for Proposals" -msgstr "" +msgstr "Thông báo mời viết Đề xuất tham luận" #: pretalx/common/log_display.py:169 msgid "Mail template" -msgstr "" +msgstr "Mẫu email" #: pretalx/common/log_display.py:173 pretalx/event/models/organiser.py:242 #: pretalx/orga/templates/orga/admin/user_detail.html:49 @@ -1445,13 +1439,15 @@ msgstr "" #: pretalx/orga/templates/orga/settings/team_detail.html:34 #: pretalx/person/models/user.py:91 msgid "Email" -msgstr "" +msgstr "Email" #: pretalx/common/models/settings.py:59 msgid "" "Please give a fair review on why you’d like to see this proposal at the " "conference, or why you think it would not be a good fit." msgstr "" +"Vui lòng bình duyệt một cách công bằng về lý do tại sao quý vị muốn tham " +"luận này được thuyết trình hoặc không nên được thuyết trình tại hội thảo." #: pretalx/common/models/settings.py:72 #, python-brace-format @@ -1469,6 +1465,18 @@ msgid "" "at https://github.com/pretalx/pretalx/issues/new or via an\n" "email to support@pretalx.com!\n" msgstr "" +"Kính thưa quý vị,\n" +"\n" +"Chúng tôi hy vọng rằng quý vị hài lòng với Hệ thống phần mềm quản trị hội " +"thảo Pretalx. Những đường dẫn sau có thể hữu ích trong thời gian tới:\n" +"\n" +"- Bảng điều khiển hội thảo: {event_dashboard}\n" +"- Danh mục đề xuất tham luận: {event_submissions}\n" +"- Soạn lịch hội thảo: {event_schedule}\n" +"\n" +"Nếu còn thấy thiếu chức năng nào, vui lòng cho chúng tôi biết tại đường dẫn " +"https://github.com/pretalx/pretalx/issues/new hoặc qua\n" +"email support@pretalx.com!\n" #: pretalx/common/models/settings.py:93 #, python-brace-format @@ -1487,6 +1495,20 @@ msgid "" "- And create your schedule here, once you have accepted proposals:\n" " {event_schedule}\n" msgstr "" +"Xin chào,\n" +"\n" +"Hệ thống xin báo để quý vị biết là thời hạn nộp đề xuất tham luận đã qua. " +"Dưới đây là danh sách các đường dẫn hữu ích mà quý vị cần biết:\n" +"\n" +"- Danh mục tất cả {submission_count} đề xuất tham luận của quý vị:\n" +" {event_submissions}\n" +"- Quý vị có thêm người bình duyệt ở đây:\n" +" {event_team}\n" +"- Quý vị có thể bình duyệt các đề xuất tham luận ở đây:\n" +" {event_review}\n" +"- Quý vị có thể lên lịch hội thảo ở đây, khi đã có các đề xuất tham luận đã " +"được chấp nhận:\n" +" {event_schedule}\n" #: pretalx/common/models/settings.py:115 #, python-brace-format @@ -1506,50 +1528,67 @@ msgid "" "at https://github.com/pretalx/pretalx/issues/new or via an\n" "email to support@pretalx.com!\n" msgstr "" +"Xin chào,\n" +"\n" +"Xin chúc mừng, hội thảo của quý vị đã kết thúc! Hy vọng hội thảo diễn ra " +"thành công tốt đẹp. Dưới đây là một số thống kê có thể quý vị quan tâm:\n" +"\n" +"- Hội thảo nhận được {submission_count} đề xuất tham luận,\n" +"- Trong đó có {talk_count} đề xuất được lựa chọn thành các phiên hội thảo.\n" +"- Hội đồng bình duyệt đã thực hiện {review_count} đánh giá.\n" +"- Ban Tổ chức đã công bố tổng số {schedule_count} lịch hội thảo.\n" +"- Trong suốt thời gian chuẩn bị và diễn ra hội thảo, Ban Tổ chức gửi ra " +"{mail_count} email.\n" +"\n" +"Nếu còn thiếu loại thông tin nào cần thiết, quý vị có thể góp ý với chúng " +"tôi tại địa chỉ https://github.com/pretalx/pretalx/issues/new hoặc qua\n" +"email support@pretalx.com!\n" #: pretalx/common/plugins.py:9 msgctxt "Type of plugin" msgid "Features" -msgstr "" +msgstr "Tính năng" #: pretalx/common/plugins.py:10 msgctxt "Type of plugin" msgid "Integrations" -msgstr "" +msgstr "Tích hợp" #: pretalx/common/plugins.py:11 msgctxt "Type of plugin" msgid "Customizations" -msgstr "" +msgstr "Tuỳ biến" #: pretalx/common/plugins.py:12 msgid "Exporters" -msgstr "" +msgstr "Xuất dữ liệu" #: pretalx/common/plugins.py:13 msgid "Recording integrations" -msgstr "" +msgstr "Tích hợp ghi hình" #: pretalx/common/plugins.py:14 msgid "Languages" -msgstr "" +msgstr "Ngôn ngữ" #: pretalx/common/plugins.py:15 #: pretalx/orga/templates/orga/mails/_placeholder_group.html:20 msgctxt "category of items" msgid "Other" -msgstr "" +msgstr "Khác" #: pretalx/common/templates/400.html:18 msgid "" "It looks as if the communication between you and pretalx went wrong in some " "way.
Please return to the last page and try again!" msgstr "" +"Có vẻ như quá trình giao tiếp giữa bạn và pretalx đã xảy ra sai sót.
" +"Vui lòng quay lại trang cuối và thử lại!" #: pretalx/common/templates/403_csrf.html:7 #: pretalx/common/templates/403_csrf.html:11 msgid "Verification failed." -msgstr "" +msgstr "Xác thực thất bại." #: pretalx/common/templates/403_csrf.html:17 msgid "" @@ -1557,14 +1596,17 @@ msgid "" "reasons, we cannot process it.
Please go back to the last page, " "refresh, and then try again." msgstr "" +"Chúng tôi không thể xác minh rằng yêu cầu này thực sự được bạn gửi. Vì lý do " +"bảo mật, chúng tôi không thể xử lý yêu cầu này.
Vui lòng quay lại trang " +"cuối, làm mới và sau đó thử lại." #: pretalx/common/templates/500.html:7 msgid "Internal server error." -msgstr "" +msgstr "Lỗi bên trong máy chủ." #: pretalx/common/templates/500.html:11 msgid "We have encountered an error." -msgstr "" +msgstr "Chúng tôi gặp phải sự cố." #: pretalx/common/templates/500.html:18 #, python-format @@ -1572,105 +1614,107 @@ msgid "" "Please help us to fix this by submitting a " "bug report!" msgstr "" +"Vui lòng giúp chúng tôi khắc phục lỗi này bằng cách gửi báo cáo lỗi!" #: pretalx/common/templates/common/auth.html:28 msgid "I already have an account" -msgstr "" +msgstr "Tôi đã có tài khoản" #: pretalx/common/templates/common/auth.html:34 msgid "Log in" -msgstr "" +msgstr "Đăng nhập" #: pretalx/common/templates/common/auth.html:47 msgid "I need a new account" -msgstr "" +msgstr "Tôi cần một tài khoản mới" #: pretalx/common/templates/common/auth.html:55 msgid "Register" -msgstr "" +msgstr "Đăng ký" #: pretalx/common/templates/common/avatar.html:7 #: pretalx/orga/templates/orga/admin/user_detail.html:73 #: pretalx/orga/templates/orga/cfp/text.html:198 #: pretalx/person/models/user.py:124 msgid "Profile picture" -msgstr "" +msgstr "Ảnh hồ sơ" #: pretalx/common/templates/common/avatar.html:22 msgid "Your avatar" -msgstr "" +msgstr "Ảnh đại diện" #: pretalx/common/templates/common/base.html:72 msgid "This event is currently non-public. Only organisers can see it." -msgstr "" +msgstr "Hội thảo này hiện không công bố. Chỉ Ban Tổ chức mới có thể xem." #: pretalx/common/templates/common/base.html:82 #: pretalx/orga/templates/orga/auth/base.html:31 msgid "The event’s logo" -msgstr "" +msgstr "Logo của hội thảo" #: pretalx/common/templates/common/base.html:112 msgid "My proposals" -msgstr "" +msgstr "Các đề xuất tham luận của tôi" #: pretalx/common/templates/common/base.html:116 msgid "My Emails" -msgstr "" +msgstr "Email gửi cho tôi" #: pretalx/common/templates/common/base.html:120 msgid "My profile" -msgstr "" +msgstr "Hồ sơ của tôi" #: pretalx/common/templates/common/base.html:126 msgid "Organiser area" -msgstr "" +msgstr "Dành cho Ban Tổ chức" #: pretalx/common/templates/common/base.html:134 msgid "Logout" -msgstr "" +msgstr "Đăng xuất" #: pretalx/common/templates/common/base.html:162 #, python-format msgid "This is a static export generated at %(timestamp)s" -msgstr "" +msgstr "Đây là một xuất tĩnh được tạo ra tại %(timestamp)s" #: pretalx/common/templates/common/base.html:170 msgid "Contact us" -msgstr "" +msgstr "Liên hệ" #: pretalx/common/templates/common/base.html:174 msgid "Imprint" -msgstr "" +msgstr "Dường dẫn thông tin hội thảo" #: pretalx/common/templates/common/forms/field.html:7 msgid "Optional" -msgstr "" +msgstr "Không bắt buộc" #: pretalx/common/templates/common/logs.html:17 msgid "This change was performed by a member of the event orga." -msgstr "" +msgstr "Thay đổi này được thực hiện bởi một thành viên Ban Tổ chức." #: pretalx/common/templates/common/logs.html:23 msgid "An organiser" -msgstr "" +msgstr "Thành viên Ban Tổ chức" #: pretalx/common/templates/common/powered_by.html:36 #, python-format msgid "powered by pretalx" -msgstr "" +msgstr "Vận hành trên phần mềm pretalx" #: pretalx/common/templates/common/question_answer.html:9 msgid "No file provided" -msgstr "" +msgstr "Chưa có file nào" #: pretalx/common/templates/common/question_answer.html:16 msgid "Not answered" -msgstr "" +msgstr "Chưa trả lời" #: pretalx/common/templates/common/redirect.html:7 #: pretalx/common/templates/common/redirect.html:13 msgid "Redirect" -msgstr "" +msgstr "Chuyển hướng" #: pretalx/common/templates/common/redirect.html:15 #, python-format @@ -1678,19 +1722,20 @@ msgid "" "The link you clicked on wants to redirect you to a destination on the " "website %(host)s." msgstr "" +"Liên kết bạn nhấp vào muốn chuyển hướng bạn đến đích trên trang web %(host)s." #: pretalx/common/templates/common/redirect.html:18 msgid "Please only proceed if you trust this website to be safe." -msgstr "" +msgstr "Vui lòng chỉ tiếp tục nếu bạn tin tưởng trang web này an toàn." #: pretalx/common/templates/common/redirect.html:24 #, python-format msgid "Proceed to %(host)s" -msgstr "" +msgstr "Tiếp tục đến %(host)s" #: pretalx/common/templates/common/user_api_token.html:8 msgid "API Access" -msgstr "" +msgstr "Truy cập API" #: pretalx/common/templates/common/user_api_token.html:11 #, python-format @@ -1699,22 +1744,27 @@ msgid "" "generate a new token, which will invalidate the old one. To find out more, " "please have a look at the API documentation." msgstr "" +"Mã thông báo này có thể được sử dụng để truy cập API pretalx. Bạn có thể tạo một mã thông báo mới, mã thông báo này sẽ vô hiệu hóa mã " +"thông báo cũ. Để tìm hiểu thêm, vui lòng xem tài liệu API." #: pretalx/common/templates/common/user_api_token.html:20 msgid "API Token" -msgstr "" +msgstr "API Token" #: pretalx/common/templates/common/user_api_token.html:25 msgid "Use for authentication when accessing the API." -msgstr "" +msgstr "Sử dụng để xác thực khi truy cập API." #: pretalx/common/templates/common/user_api_token.html:32 msgid "Generate a new token. The current token will not be usable any longer." msgstr "" +"Tạo một mã thông báo mới. Mã thông báo hiện tại sẽ không thể sử dụng được " +"nữa." #: pretalx/common/templates/common/user_api_token.html:33 msgid "Invalidate and regenerate" -msgstr "" +msgstr "Vô hiệu hóa và tái tạo" #. Translators: Text is used to describe the main text body of an email, or of #. similar options like the main text of the CfP or a review. It's separate from @@ -1723,221 +1773,225 @@ msgstr "" #: pretalx/common/text/phrases.py:123 pretalx/mail/models.py:69 #: pretalx/mail/models.py:264 pretalx/person/models/information.py:49 msgid "Text" -msgstr "" +msgstr "Nội dung" #: pretalx/common/templates/common/widgets/markdown.html:6 msgid "Preview" -msgstr "" +msgstr "Xem trước" #: pretalx/common/templatetags/copyable.py:13 msgid "Copy" -msgstr "" +msgstr "Copy" #: pretalx/common/templatetags/times.py:14 msgid "once" -msgstr "" +msgstr "một lần" #: pretalx/common/templatetags/times.py:16 msgid "twice" -msgstr "" +msgstr "hai lần" #: pretalx/common/templatetags/times.py:17 #, python-brace-format msgid "{number} times" -msgstr "" +msgstr "{number} lần" #: pretalx/common/text/css.py:116 #, python-brace-format msgid "“{value}” is not allowed as attribute of “{key}”" -msgstr "" +msgstr "“{value}” không được phép làm thuộc tính của “{key}”" #: pretalx/common/text/css.py:122 #, python-brace-format msgid "You are not allowed to include “{key}” keys in your CSS." -msgstr "" +msgstr "Bạn không được phép bao gồm các phím \"{key}\" trong CSS của mình." #: pretalx/common/text/daterange.py:68 #, python-brace-format msgid "{date_from} – {date_to}" -msgstr "" +msgstr "{date_from} – {date_to}" #. Translators: This is the label on buttons that trigger the sending of emails. #: pretalx/common/text/phrases.py:45 msgid "Send" -msgstr "" +msgstr "Gửi" #. Translators: This is the label on save buttons. #: pretalx/common/text/phrases.py:47 msgid "Save" -msgstr "" +msgstr "Ghi" #: pretalx/common/text/phrases.py:48 msgid "Cancel" -msgstr "" +msgstr "Hủy" #. Translators: This is the label on edit buttons. #: pretalx/common/text/phrases.py:50 msgid "Edit" -msgstr "" +msgstr "Sửa" #: pretalx/common/text/phrases.py:51 msgid "all" -msgstr "" +msgstr "tất cả" #. Translators: This is a label on navigation elements leading to the previous page. #: pretalx/common/text/phrases.py:53 msgid "Back" -msgstr "" +msgstr "Quay lại" #. Translators: This is a label on delete buttons. #: pretalx/common/text/phrases.py:55 msgid "Delete" -msgstr "" +msgstr "Xoá" #: pretalx/common/text/phrases.py:57 msgid "Confirm deletion" -msgstr "" +msgstr "Xác nhận xoá" #: pretalx/common/text/phrases.py:59 msgid "" "Please make sure that this is the item you want to delete. This action " "cannot be undone!" msgstr "" +"Vui lòng đảm bảo rằng đây là mục bạn muốn xóa. Hành động này không thể hoàn " +"tác được!" #: pretalx/common/text/phrases.py:62 msgid "Your changes have been saved." -msgstr "" +msgstr "Các thay đổi của bạn đã được lưu." #: pretalx/common/text/phrases.py:63 msgid "Please go back and try again." -msgstr "" +msgstr "Vui lòng quay lại và thử lại." #. Translators: This is an established term in the context of software development. #: pretalx/common/text/phrases.py:66 msgid "Bad request." -msgstr "" +msgstr "Yêu cầu gặp lỗi." #: pretalx/common/text/phrases.py:68 msgid "There was an error sending the mail. Please try again later." -msgstr "" +msgstr "Đã xảy ra lỗi khi gửi thư. Vui lòng thử lại sau." #: pretalx/common/text/phrases.py:71 msgid "We had trouble saving your input – Please see below for details." msgstr "" +"Chúng tôi đã gặp sự cố khi lưu đầu vào của bạn - Vui lòng xem bên dưới để " +"biết chi tiết." #: pretalx/common/text/phrases.py:73 msgid "You do not have permission to perform this action." -msgstr "" +msgstr "Bạn không có quyền thực hiện hành động này." #: pretalx/common/text/phrases.py:75 msgid "Permission denied." -msgstr "" +msgstr "Quyền bị từ chối." #: pretalx/common/text/phrases.py:77 msgid "Sorry, you do not have the required permissions to access this page." -msgstr "" +msgstr "Xin lỗi, bạn không có quyền cần thiết để truy cập trang này." #: pretalx/common/text/phrases.py:79 msgid "Page not found." -msgstr "" +msgstr "Trang không tìm thấy." #: pretalx/common/text/phrases.py:81 msgid "This page does not exist." -msgstr "" +msgstr "Trang không tồn tại." #: pretalx/common/text/phrases.py:82 msgid "Huh, I could have sworn there was something here." -msgstr "" +msgstr "Hừ, tôi có thể thề rằng có thứ gì đó ở đây." #: pretalx/common/text/phrases.py:84 msgid "This page is no more." -msgstr "" +msgstr "Trang này không còn nữa." #: pretalx/common/text/phrases.py:85 msgid "This page has ceased to be." -msgstr "" +msgstr "Trang này không còn tồn tại." #: pretalx/common/text/phrases.py:86 msgid "Huh." -msgstr "" +msgstr "Tiếc quá." #: pretalx/common/text/phrases.py:89 msgid "Email address" -msgstr "" +msgstr "Địa chỉ email" #: pretalx/common/text/phrases.py:90 msgid "New password" -msgstr "" +msgstr "Mật khẩu mới" #: pretalx/common/text/phrases.py:91 msgid "New password (again)" -msgstr "" +msgstr "Mật khẩu mới (nhập lại)" #: pretalx/common/text/phrases.py:93 msgid "You entered two different passwords. Please enter the same one twice!" -msgstr "" +msgstr "Bạn đã nhập hai mật khẩu khác nhau. Vui lòng nhập cùng một cái hai lần!" #: pretalx/common/text/phrases.py:95 msgctxt "noun / heading" msgid "Reset password" -msgstr "" +msgstr "Tạo mật khẩu mới" #: pretalx/common/text/phrases.py:96 msgid "Forgot your password?" -msgstr "" +msgstr "Quên mật khẩu?" #: pretalx/common/text/phrases.py:97 msgid "Let me set a new one!" -msgstr "" +msgstr "Để tôi tạo mật khẩu mới!" #: pretalx/common/text/phrases.py:99 msgid "Now you just need to choose your new password and you are ready to go." -msgstr "" +msgstr "Bây giờ bạn chỉ cần chọn mật khẩu mới và sẵn sàng sử dụng." #: pretalx/common/text/phrases.py:101 msgid "The password was reset." -msgstr "" +msgstr "Mật khẩu đã được đặt lại." #: pretalx/common/text/phrases.py:103 #, python-brace-format msgid "You can use {link_start}Markdown{link_end} here." -msgstr "" +msgstr "Bạn có thể sử dụng {link_start}Markdown{link_end} tại đây." #: pretalx/common/text/phrases.py:107 msgid "This content will be shown publicly." -msgstr "" +msgstr "Nội dung này sẽ được hiển thị công khai." #: pretalx/common/text/phrases.py:109 msgctxt "opening quotation mark" msgid "“" -msgstr "" +msgstr "“" #: pretalx/common/text/phrases.py:110 msgctxt "closing quotation mark" msgid "”" -msgstr "" +msgstr "”" #. Translators: Used both for language selection for users, and for the language #. attribute of events and sessions. #: pretalx/common/text/phrases.py:114 #: pretalx/submission/models/submission.py:217 msgid "Language" -msgstr "" +msgstr "Ngôn ngữ" #. Translators: Used as settings/section heading #: pretalx/common/text/phrases.py:117 msgid "General" -msgstr "" +msgstr "Tổng quát" #: pretalx/common/text/phrases.py:119 pretalx/mail/models.py:66 #: pretalx/mail/models.py:262 pretalx/person/models/information.py:47 msgctxt "email subject" msgid "Subject" -msgstr "" +msgstr "Chủ đề" #: pretalx/common/update_check.py:100 msgid "pretalx update available" -msgstr "" +msgstr "Có phiên bản pretalx mới" #: pretalx/common/update_check.py:104 #, python-brace-format @@ -1962,62 +2016,87 @@ msgid "" "Best regards,\n" "your pretalx developers" msgstr "" +"Xin chào!\n" +"\n" +"Bản cập nhật hiện có sẵn cho pretalx hoặc cho một trong các plugin bạn đã " +"cài đặt trong cài đặt pretalx của mình tại {base_url}.\n" +"Vui lòng theo liên kết này để biết thêm thông tin:\n" +"\n" +"{url}\n" +"\n" +"Bạn luôn có thể tìm thấy thông tin về các bản cập nhật mới nhất trong nhật " +"ký thay đổi:\n" +"\n" +"https://docs.pretalx.org/changelog.html\n" +"\n" +"Các bản cập nhật lớn hơn cũng được thông báo với các ghi chú nâng cấp trên " +"blog pretalx.com:\n" +"\n" +"https://pretalx.com/p/news\n" +"\n" +"Trân trọng,\n" +"\n" +"Các nhà phát triển phần mềm pretalx" #: pretalx/common/update_check.py:145 pretalx/common/update_check.py:152 msgid "Plugin" -msgstr "" +msgstr "Công cụ hỗ trợ" #: pretalx/common/views/mixins.py:274 msgid "ManagementForm data is missing or has been tampered with." -msgstr "" +msgstr "Dữ liệu ManagementForm bị thiếu hoặc đã bị giả mạo." #: pretalx/event/forms.py:57 msgid "" "Please either pick some events for this team, or grant access to all your " "events!" msgstr "" +"Vui lòng chọn một số hội thảo cho nhóm này hoặc cấp quyền truy cập vào tất " +"cả các hội thảo!" #: pretalx/event/forms.py:71 msgid "Please pick at least one permission for this team!" -msgstr "" +msgstr "Hãy chọn ít nhất một quyền cho nhóm này!" #: pretalx/event/forms.py:104 msgid "Email addresses" -msgstr "" +msgstr "Địa chỉ email" #: pretalx/event/forms.py:105 msgid "Enter one email address per line." -msgstr "" +msgstr "Nhập một địa chỉ email trên mỗi dòng." #: pretalx/event/forms.py:124 #, python-format msgid "“%(email)s” is not a valid email address." -msgstr "" +msgstr "“%(email)s” không phải là địa chỉ email hợp lệ." #: pretalx/event/forms.py:134 msgid "Please enter at least one email address!" -msgstr "" +msgstr "Vui lòng nhập ít nhất một địa chỉ email!" #: pretalx/event/forms.py:170 msgid "Use languages" -msgstr "" +msgstr "Sử dụng ngôn ngữ" #: pretalx/event/forms.py:171 msgid "Choose all languages that your event should be available in." -msgstr "" +msgstr "Chọn tất cả ngôn ngữ mà hội thảo của quý vị sẽ sử dụng." #: pretalx/event/forms.py:178 #: pretalx/orga/templates/orga/admin/user_detail.html:86 #: pretalx/orga/templates/orga/organiser/detail.html:6 #: pretalx/orga/views/organiser.py:332 msgid "Organiser" -msgstr "" +msgstr "Ban Tổ chức" #: pretalx/event/forms.py:192 msgid "" "The organiser running the event can copy settings from previous events and " "share team permissions across all or multiple events." msgstr "" +"Ban Tổ chức hội thảo này có thể sao chép cài đặt từ các hội thảo trước đó và " +"chia sẻ quyền của nhóm trên tất cả hoặc nhiều hội thảo." #: pretalx/event/forms.py:208 msgid "" @@ -2026,16 +2105,21 @@ msgid "" "kind of abbreviation with less than 30 characters that can be easily " "remembered." msgstr "" +"Đây là đường dẫn tới hội thảo của quý vị. Đường dẫn nên ngắn gọn, chỉ chứa " +"chữ thường và số và phải là duy nhất. Chúng tôi khuyến nghị nên sử dụng một " +"số loại chữ viết tắt có ít hơn 30 ký tự có thể dễ nhớ." #: pretalx/event/forms.py:214 msgid "You cannot change the slug later on!" -msgstr "" +msgstr "Quý vị không thể thay đổi slug sau này!" #: pretalx/event/forms.py:224 msgid "" "This short name is already taken, please choose another one (or ask the " "owner of that event to add you to their team)." msgstr "" +"Tên ngắn này đã có người dùng, vui lòng chọn tên khác (hoặc yêu cầu Ban Tổ " +"chức hội thảo đó thêm quý vị vào nhóm của họ)." #: pretalx/event/forms.py:244 msgid "" @@ -2043,10 +2127,13 @@ msgid "" "deadlines to individual session types, which will take precedence over this " "deadline." msgstr "" +"Hạn chót mặc định cho đề xuất tham luận hội thảo. Quý vị có thể chỉ định " +"thêm hạn chót cho từng loại phiên hội thảo và hạn chót đó sẽ được ưu tiên " +"hơn hạn chót mặc định này." #: pretalx/event/forms.py:311 msgid "Copy configuration from" -msgstr "" +msgstr "Sao chép cấu hình từ" #: pretalx/event/forms.py:315 #: pretalx/orga/templates/orga/event/wizard/copy.html:7 @@ -2055,15 +2142,18 @@ msgid "" "session types, and email templates. Please check those settings once the " "event has been created!" msgstr "" +"Quý vị có thể sao chép cài đặt từ các hội thảo trước đó tại đây, chẳng hạn " +"như cài đặt email, loại phiên và mẫu email. Vui lòng kiểm tra các cài đặt đó " +"sau khi hội thảo đã được tạo!" #: pretalx/event/forms.py:318 msgid "Do not copy" -msgstr "" +msgstr "Không sao chép" #: pretalx/event/models/event.py:61 #, python-brace-format msgid "Invalid event slug – this slug is reserved: {value}." -msgstr "" +msgstr "Slug hội thảo không hợp lệ – slug này được dành riêng: {value}." #: pretalx/event/models/event.py:156 pretalx/event/models/organiser.py:88 #: pretalx/orga/templates/orga/admin/admin.html:59 @@ -2076,83 +2166,89 @@ msgstr "" #: pretalx/submission/models/review.py:264 #: pretalx/submission/models/track.py:24 msgid "Name" -msgstr "" +msgstr "Tên" #: pretalx/event/models/event.py:165 pretalx/event/models/event.py:171 #: pretalx/event/models/organiser.py:97 msgid "The slug may only contain letters, numbers, dots and dashes." -msgstr "" +msgstr "Slug chỉ có thể chứa chữ cái, số, dấu chấm và dấu gạch ngang." #: pretalx/event/models/event.py:170 pretalx/event/models/organiser.py:101 msgid "Short form" -msgstr "" +msgstr "Dạng rút gọn" #: pretalx/event/models/event.py:179 msgid "Event is public" -msgstr "" +msgstr "Hội thảo đã được công bố" #: pretalx/event/models/event.py:180 msgid "Event start date" -msgstr "" +msgstr "Ngày bắt đầu" #: pretalx/event/models/event.py:181 msgid "Event end date" -msgstr "" +msgstr "Ngày kết thúc" #: pretalx/event/models/event.py:187 msgid "" "All event dates will be localised and interpreted to be in this timezone." msgstr "" +"Tất cả ngày diễn ra sự kiện sẽ được bản địa hóa và diễn giải theo múi giờ " +"này." #: pretalx/event/models/event.py:191 msgid "Organiser email address" -msgstr "" +msgstr "Email của Ban Tổ chức" #: pretalx/event/models/event.py:192 msgid "Will be used as Reply-To in emails." -msgstr "" +msgstr "Sẽ được sử dụng để nhận hồi âm." #: pretalx/event/models/event.py:195 msgid "Custom domain" -msgstr "" +msgstr "Tên miền riêng" #: pretalx/event/models/event.py:196 msgid "Enter a custom domain, such as https://my.event.example.org" -msgstr "" +msgstr "Nhập tên miền riêng, ví dụ: https://btc.hoithao.org" #: pretalx/event/models/event.py:211 msgid "Main event colour" -msgstr "" +msgstr "Màu chủ đạo của hội thảo" #: pretalx/event/models/event.py:213 msgid "" "Provide a hex value like #00ff00 if you want to style pretalx in your " "event’s colour scheme." msgstr "" +"Cung cấp giá trị hex như #00ff00 nếu bạn muốn tạo kiểu pretalx theo bảng màu " +"của sự kiện." #: pretalx/event/models/event.py:220 msgid "Custom Event CSS" -msgstr "" +msgstr "CSS tuỳ chỉnh cho hội thảo" #: pretalx/event/models/event.py:222 msgid "" "Upload a custom CSS file if changing the primary colour is not sufficient " "for you." -msgstr "" +msgstr "Tải lên tệp CSS tùy chỉnh nếu việc thay đổi màu chính không đủ với bạn." #: pretalx/event/models/event.py:229 msgid "Logo" -msgstr "" +msgstr "Logo" #: pretalx/event/models/event.py:231 msgid "" "If you provide a logo image, your event’s name will not be shown in the " "event header. The logo will be scaled down to a height of 150px." msgstr "" +"Nếu quý vị cung cấp hình ảnh logo, tên hội thảo của quý vị sẽ không được " +"hiển thị trong tiêu đề sự kiện. Logo sẽ được thu nhỏ xuống chiều cao 150px." #: pretalx/event/models/event.py:239 msgid "Header image" -msgstr "" +msgstr "Hỉnh ảnh tiêu đề" #: pretalx/event/models/event.py:241 msgid "" @@ -2161,30 +2257,38 @@ msgid "" "aligned, so when the window shrinks, the center parts will continue to be " "displayed, and not stretched." msgstr "" +"Nếu quý cung cấp hình ảnh tiêu đề, hình ảnh này sẽ được hiển thị thay cho " +"màu sắc và/hoặc mẫu tiêu đề của sự kiện ở đầu tất cả các trang sự kiện. Hình " +"ảnh này sẽ được căn giữa, do đó khi cửa sổ thu nhỏ lại, các phần ở giữa sẽ " +"tiếp tục được hiển thị và không bị kéo dài." #: pretalx/event/models/event.py:252 msgid "Default language" -msgstr "" +msgstr "Ngôn ngữ mặc định" #: pretalx/event/models/event.py:255 msgid "Landing page text" -msgstr "" +msgstr "Thông tin ở trang chủ" #: pretalx/event/models/event.py:257 msgid "" "This text will be shown on the landing page, alongside with links to the CfP " "and schedule, if appropriate." msgstr "" +"Văn bản này sẽ được hiển thị trên trang chủ, cùng với các liên kết đến Thông " +"báo mời viết đề xuất tham luận và lịch của hội thảo, nếu có." #: pretalx/event/models/event.py:265 msgid "Featured sessions text" -msgstr "" +msgstr "Thông tin các phiên nổi bật" #: pretalx/event/models/event.py:267 msgid "" "This text will be shown at the top of the featured sessions page instead of " "the default text." msgstr "" +"Văn bản này sẽ được hiển thị trên đầu của trang liệt kê các phiên nổi bật " +"thay cho văn bản mặc định." #: pretalx/event/models/event.py:274 #: pretalx/orga/templates/orga/admin/admin.html:106 @@ -2192,31 +2296,31 @@ msgstr "" #: pretalx/orga/templates/orga/plugins.html:5 #: pretalx/orga/templates/orga/plugins.html:7 msgid "Plugins" -msgstr "" +msgstr "Công cụ bổ trợ" #: pretalx/event/models/event.py:277 msgid "Plain" -msgstr "" +msgstr "Đơn sắc" #: pretalx/event/models/event.py:278 msgid "Circuits" -msgstr "" +msgstr "Mạch điện" #: pretalx/event/models/event.py:279 msgid "Circles" -msgstr "" +msgstr "Vòng tròn" #: pretalx/event/models/event.py:280 msgid "Signal" -msgstr "" +msgstr "Tín hiệu" #: pretalx/event/models/event.py:281 msgid "Topography" -msgstr "" +msgstr "Hình học tô-pô" #: pretalx/event/models/event.py:282 msgid "Graph Paper" -msgstr "" +msgstr "Giấy đồ hoạ" #: pretalx/event/models/event.py:558 pretalx/event/models/event.py:864 #: pretalx/event/stages.py:70 pretalx/orga/templates/orga/base.html:223 @@ -2225,46 +2329,49 @@ msgstr "" #: pretalx/orga/templates/orga/base.html:333 #: pretalx/orga/templates/orga/submission/review.html:174 msgid "Review" -msgstr "" +msgstr "Bình duyệt" #: pretalx/event/models/event.py:566 msgid "Selection" -msgstr "" +msgstr "Lựa chọn" #: pretalx/event/models/event.py:579 #: pretalx/orga/templates/orga/review/dashboard.html:60 #: pretalx/orga/templates/orga/submission/review.html:169 #: pretalx/submission/models/review.py:133 msgid "Score" -msgstr "" +msgstr "Điểm" #: pretalx/event/models/event.py:589 msgid "Maybe" -msgstr "" +msgstr "Có thể" #: pretalx/event/models/event.py:594 pretalx/submission/models/question.py:422 #: pretalx/submission/models/submission.py:938 msgid "Yes" -msgstr "" +msgstr "Có" #: pretalx/event/models/event.py:1014 msgid "News from your content system" -msgstr "" +msgstr "Tin tức từ hệ thống nội dung" #: pretalx/event/models/organiser.py:34 msgid "" "There must be at least one team with the permission to change teams, as " "otherwise nobody can create new teams or grant permissions to existing teams." msgstr "" +"Phải có ít nhất một đội có quyền thay đổi đội, nếu không sẽ không ai có thể " +"tạo đội mới hoặc cấp quyền cho các đội hiện tại." #: pretalx/event/models/organiser.py:41 msgid "Nobody on your teams has the permission to create new events." -msgstr "" +msgstr "Không ai trong nhóm của quý vị có quyền tạo hội thảo mới." #: pretalx/event/models/organiser.py:49 msgid "" "Nobody on your teams has the permission to change organiser-level settings." msgstr "" +"Không ai trong nhóm của quý vị có quyền thay đổi cài đặt ở cấp Ban tổ chức." #: pretalx/event/models/organiser.py:64 #, python-brace-format @@ -2272,6 +2379,8 @@ msgid "" "There must be at least one team with access to every event. Currently, " "nobody has access to {event_name}." msgstr "" +"Phải có ít nhất một đội có quyền truy cập vào mọi hội thảo. Hiện tại, không " +"ai có quyền truy cập vào {event_name}." #: pretalx/event/models/organiser.py:74 #, python-brace-format @@ -2279,64 +2388,70 @@ msgid "" "Nobody on your teams has the permissions to change settings for the event " "{event_name}" msgstr "" +"Không ai trong nhóm của quý vị có quyền thay đổi cài đặt cho hội thảo " +"{event_name}" #: pretalx/event/models/organiser.py:103 msgid "" "Should be short, only contain lowercase letters and numbers, and must be " "unique, as it is used in URLs." msgstr "" +"Phải ngắn gọn, chỉ chứa chữ thường và số và phải là duy nhất vì nó được sử " +"dụng trong URL." #: pretalx/event/models/organiser.py:160 msgid "Team name" -msgstr "" +msgstr "Tên nhóm" #: pretalx/event/models/organiser.py:162 msgid "Team members" -msgstr "" +msgstr "Thành viên nhóm" #: pretalx/event/models/organiser.py:167 msgid "" "Apply permissions to all events by this organiser (including newly created " "ones)" msgstr "" +"Áp dụng quyền cho tất cả các hội thảo của Ban tổ chức này (bao gồm cả những " +"hội thảo mới tạo)" #: pretalx/event/models/organiser.py:171 msgid "Limit permissions to these events" -msgstr "" +msgstr "Giới hạn quyền trong những hội thảo sau" #: pretalx/event/models/organiser.py:174 #: pretalx/person/models/information.py:36 #: pretalx/submission/models/review.py:22 msgid "Limit to tracks" -msgstr "" +msgstr "Giới hạn trong các kênh" #: pretalx/event/models/organiser.py:177 msgid "Can create events" -msgstr "" +msgstr "Có thể khởi tạo hội thảo" #: pretalx/event/models/organiser.py:180 msgid "Can change teams and permissions" -msgstr "" +msgstr "Có thể thay đổi nhóm và các quyền" #: pretalx/event/models/organiser.py:183 msgid "Can change organiser settings" -msgstr "" +msgstr "Có thể thay đổi các thiết lập cho Ban tổ chức" #: pretalx/event/models/organiser.py:186 msgid "Can change event settings" -msgstr "" +msgstr "Có thể thay đổi cài đặt của hội thảo" #: pretalx/event/models/organiser.py:189 msgid "Can work with and change proposals" -msgstr "" +msgstr "Có thể tương tác và sửa đổi đề xuất tham luận" #: pretalx/event/models/organiser.py:191 msgid "Is a reviewer" -msgstr "" +msgstr "Là người bình duyệt" #: pretalx/event/models/organiser.py:193 msgid "Always hide speaker names" -msgstr "" +msgstr "Luôn ẩn tên của diễn giả" #: pretalx/event/models/organiser.py:195 msgid "" @@ -2344,16 +2459,19 @@ msgid "" "setting will override the event settings and always hide speaker " "names for this team." msgstr "" +"Thông thường, ẩn danh được cấu hình trong cài đặt quy trình bình duyệt của " +"hội thảo. Cài đặt này sẽ vô hiệu cài đặt của hội thảo và luôn ẩn tên " +"diễn giả đối với nhóm này." #: pretalx/event/models/organiser.py:205 #, python-brace-format msgid "{name} on {orga}" -msgstr "" +msgstr "{name} trong {orga}" #: pretalx/event/models/organiser.py:251 #, python-brace-format msgid "Invite to team {team} for {email}" -msgstr "" +msgstr "Mời người có {email} vào nhóm {team}" #: pretalx/event/models/organiser.py:265 #, python-brace-format @@ -2367,66 +2485,74 @@ msgid "" "See you there,\n" "The {organiser} team" msgstr "" +"Xin chào!\n" +"Quý vị đã được mời tham gia một nhóm thuộc Ban tổ chức hội thảo {name} - Vui " +"lòng nhấp vào đây để chấp nhận:\n" +"\n" +"{invitation_link}\n" +"\n" +"Rất mong được chào đón quý vị,\n" +"Nhóm {organiser}" #: pretalx/event/models/organiser.py:277 msgid "You have been invited to an organiser team" -msgstr "" +msgstr "Quý vị được mời tham dự một nhóm thuộc Ban Tổ chức" #: pretalx/event/stages.py:43 msgid "Preparation" -msgstr "" +msgstr "Chuẩn bị" #: pretalx/event/stages.py:47 msgid "Configure the event" -msgstr "" +msgstr "Cấu hình hội thảo" #: pretalx/event/stages.py:48 msgid "Gather your team" -msgstr "" +msgstr "Tập hợp nhóm" #: pretalx/event/stages.py:49 msgid "Write a CfP" -msgstr "" +msgstr "Soạn Thông báo mời viết Đề xuất tham luận" #: pretalx/event/stages.py:51 msgid "Customize mail templates" -msgstr "" +msgstr "Tuỳ chỉnh mẫu email" #: pretalx/event/stages.py:57 msgid "CfP is open" -msgstr "" +msgstr "Thông báo mời viết Đề xuất tham luận đang mở" #: pretalx/event/stages.py:61 msgid "Monitor proposals" -msgstr "" +msgstr "Theo dõi đề xuất tham luận" #: pretalx/event/stages.py:63 msgid "Submit sessions for your speakers" -msgstr "" +msgstr "Gửi các phiên hội thảo tới diễn giả" #: pretalx/event/stages.py:66 msgid "Invite reviewers" -msgstr "" +msgstr "Mời người bình duyệt" #: pretalx/event/stages.py:74 msgid "Let reviewers do their work" -msgstr "" +msgstr "Để người bình duyệt thực hiện nhiệm vụ" #: pretalx/event/stages.py:76 msgid "Accept or reject proposals" -msgstr "" +msgstr "Chấp nhận hoặc từ chối đề xuất tham luận" #: pretalx/event/stages.py:79 msgid "Build your first schedule" -msgstr "" +msgstr "Lên phiên bản lịch hội thảo đầu tiên" #: pretalx/event/stages.py:88 msgid "Release schedules as needed" -msgstr "" +msgstr "Công bố các phiên bản lịch hội thảo nếu cần" #: pretalx/event/stages.py:92 msgid "Inform your speakers about the infrastructure" -msgstr "" +msgstr "Thông báo cho các diễn giả về hạ tầng" #: pretalx/event/stages.py:98 #: pretalx/orga/templates/orga/admin/user_detail.html:129 @@ -2435,107 +2561,109 @@ msgstr "" #: pretalx/orga/views/event.py:715 msgid "Event" msgid_plural "Events" -msgstr[0] "" +msgstr[0] "Hội thảo" #: pretalx/event/stages.py:102 msgid "Provide a point of contact for the speakers" -msgstr "" +msgstr "Cung cấp người để diễn giả liên hệ" #: pretalx/event/stages.py:103 msgid "Enjoy the event!" -msgstr "" +msgstr "Trải nghiệm hội thảo!" #: pretalx/event/stages.py:107 msgid "Wrapup" -msgstr "" +msgstr "Tổng kết" #: pretalx/event/stages.py:111 msgid "Monitor incoming feedback" -msgstr "" +msgstr "Theo dõi các phản hồi" #: pretalx/event/stages.py:112 msgid "Embed session recordings if available" -msgstr "" +msgstr "Nhúng các bản ghi phiên hội thảo nếu có" #: pretalx/event/stages.py:113 msgid "Release next event date?" -msgstr "" +msgstr "Công bố ngày diễn ra hội thảo tiếp theo?" #: pretalx/mail/context.py:84 msgid "The event’s full name" -msgstr "" +msgstr "Tên đầy đủ của Hội thảo" #: pretalx/mail/context.py:91 msgid "The event’s short form, used in URLs" -msgstr "" +msgstr "Tên rút gọn của hội thảo, được dùng trong đường dẫn URLs" #: pretalx/mail/context.py:98 msgid "The event’s public base URL" -msgstr "" +msgstr "Đường dẫn chuẩn công khai của hội thảo" #: pretalx/mail/context.py:105 msgid "The event’s public schedule URL" -msgstr "" +msgstr "Đường dẫn tới lịch công khai của hội thảo" #: pretalx/mail/context.py:112 msgid "The event’s public CfP URL" -msgstr "" +msgstr "Đường dẫn tới Thông báo mời viết đề xuất tham luận của hội thảo" #: pretalx/mail/context.py:119 msgid "URL to a user’s list of proposals" -msgstr "" +msgstr "Đường dẫn tới danh mục các đề xuất tham luận của một tác giả" #: pretalx/mail/context.py:134 msgid "The general CfP deadline" -msgstr "" +msgstr "Thời hạn chót chung cho Thông báo mời viết Đề xuất tham luận" #: pretalx/mail/context.py:141 msgid "The proposal’s unique ID" -msgstr "" +msgstr "Mã ID đơn nhất của đề xuất tham luận" #: pretalx/mail/context.py:148 msgid "The proposal’s public URL" -msgstr "" +msgstr "Đường dẫn công khai của đề xuất tham luận" #: pretalx/mail/context.py:155 msgid "The speaker’s edit page for the proposal" -msgstr "" +msgstr "Trang chỉnh sửa đề xuất tham luận dành cho diễn giả" #: pretalx/mail/context.py:162 msgid "Link to confirm a proposal after it has been accepted." msgstr "" +"Đường dẫn xác nhận sẽ thuyết trình một đề xuất tham luận sau khi nó được " +"chấp thuận." #: pretalx/mail/context.py:169 msgid "Link to withdraw the proposal" -msgstr "" +msgstr "Đường dẫn rút lại đề xuất tham luận" #: pretalx/mail/context.py:175 msgid "This Is a Proposal Title" -msgstr "" +msgstr "Đây là Tiêu đề của Đề xuất tham luận" #: pretalx/mail/context.py:176 msgid "The proposal’s title" -msgstr "" +msgstr "Tiêu đề của đề xuất tham luận" #: pretalx/mail/context.py:183 msgid "The name(s) of all speakers in this proposal." -msgstr "" +msgstr "Tên của tất cả diễn giả trong đề xuất tham luận này." #: pretalx/mail/context.py:189 msgid "Session Type A" -msgstr "" +msgstr "Phiên hội thảo Loại A" #: pretalx/mail/context.py:190 msgid "The proposal’s session type" -msgstr "" +msgstr "Loại phiên hội thảo" #: pretalx/mail/context.py:196 msgid "Track A" -msgstr "" +msgstr "Kênh A" #: pretalx/mail/context.py:197 msgid "The track the proposal belongs to" -msgstr "" +msgstr "Kênh mà đề xuất tham luận được xếp" #: pretalx/mail/context.py:204 msgid "" @@ -2545,46 +2673,51 @@ msgid "" "\n" "Second review, containing heavy criticism!" msgstr "" +"Bình duyệt lần đầu, nhất trí với đề xuất tham luận.\n" +"\n" +"--------- \n" +"\n" +"Bình duyệt lần hai, phê phán thậm tệ!" #: pretalx/mail/context.py:206 msgid "All review texts for this proposal" -msgstr "" +msgstr "Tất cả các bản đánh giá cho đề xuất này" #: pretalx/mail/context.py:213 msgid "The session’s start date" -msgstr "" +msgstr "Ngày bắt đầu của phiên" #: pretalx/mail/context.py:220 msgid "The session’s start time" -msgstr "" +msgstr "Giờ bắt đầu của phiên" #: pretalx/mail/context.py:227 msgid "The session’s end date" -msgstr "" +msgstr "Ngày kết thúc của phiên" #: pretalx/mail/context.py:234 msgid "The session’s end time" -msgstr "" +msgstr "Giờ kết thúc của phiên" #: pretalx/mail/context.py:240 msgid "Room 101" -msgstr "" +msgstr "Phòng 101" #: pretalx/mail/context.py:241 msgid "The session’s room" -msgstr "" +msgstr "Phòng của phiên" #: pretalx/mail/context.py:247 msgid "Jane Doe" -msgstr "" +msgstr "Jane Doe" #: pretalx/mail/context.py:248 msgid "The addressed user’s full name" -msgstr "" +msgstr "Tên đầy đủ của người dùng được giải quyết" #: pretalx/mail/context.py:255 msgid "The addressed user’s email address" -msgstr "" +msgstr "Email của người dùng được giải quyết" #: pretalx/mail/context.py:266 #, python-brace-format @@ -2592,11 +2725,16 @@ msgid "" "- Your session “Title” will take place at {time} in Room 101.\n" "- Your session “Other Title” has been moved to {time2} in Room 102." msgstr "" +"- Phiên \"Tiêu đề\" của quý vị sẽ diễn ra vào {time} tại Phòng 101.\n" +"- Phiên \"Tiêu đề khác\" của quý vị đã được chuyển đến {time2} trong Phòng " +"102." #: pretalx/mail/context.py:270 msgid "" "A list of all changes to the user’s schedule in the current schedule version." msgstr "" +"Danh sách tất cả các thay đổi đối với lịch trình của người dùng trong phiên " +"bản lịch trình hiện tại." #: pretalx/mail/context.py:281 #, python-brace-format @@ -2604,15 +2742,19 @@ msgid "" "- Your session “Title” will take place at {time} in Room 101.\n" "- Your session “Other Title” will take place at {time2} in Room 102." msgstr "" +"- Phiên \"Tiêu đề\" của quý vị sẽ diễn ra vào {time} tại Phòng 101.\n" +"- Phiên \"Tiêu đề khác\" của quý vị sẽ diễn ra tại {time2} tại Phòng 102." #: pretalx/mail/context.py:284 msgid "A list of time and place for this user’s publicly visible sessions." msgstr "" +"Danh sách thời gian và địa điểm cho các phiên hiển thị công khai của người " +"dùng này." #: pretalx/mail/default_templates.py:4 #, python-brace-format msgid "Your proposal: {submission_title}" -msgstr "" +msgstr "Đề xuất của quý vị: {submission_title}" #: pretalx/mail/default_templates.py:8 #, python-brace-format @@ -2628,6 +2770,18 @@ msgid "" "\n" "The {event_name} organisers" msgstr "" +"Xin chào!\n" +"\n" +"Chúng tôi đã nhận được đề xuất của quý vị “{submission_title}” để\n" +"{event_name}. Chúng tôi sẽ thông báo cho quý vị khi chúng tôi có thời gian " +"để xem xét tất cả\n" +"Đề xuất, nhưng cho đến lúc đó quý vị có thể xem và chỉnh sửa đề xuất của " +"mình tại\n" +"{submission_url}.\n" +"\n" +"Xin đừng ngần ngại liên hệ với chúng tôi nếu quý vị có bất kỳ câu hỏi nào!\n" +"\n" +"Ban tổ chức {event_name}" #: pretalx/mail/default_templates.py:23 #, python-brace-format @@ -2649,6 +2803,22 @@ msgid "" "See you there!\n" "The {event_name} organisers" msgstr "" +"Xin chào!\n" +"\n" +"Chúng tôi vui mừng thông báo với quý vị rằng chúng tôi chấp nhận đề xuất " +"“{submission_title}” và mời quý vị thuyết trình phiên này tại {event_name}. " +"Vui lòng nhấp vào liên kết này để xác nhận sự tham dự của quý vị:\n" +"\n" +"{confirmation_link}\n" +"\n" +"Chúng tôi mong được gặp quý vị tại {event_name} - Vui lòng liên hệ với chúng " +"tôi nếu quý vị có bất kỳ câu hỏi nào! Chúng tôi sẽ liên hệ lại trước hội " +"nghị để cho quý vị biết chi tiết vị trí phiên của quý vị trong lịch trình và " +"các chi tiết kỹ thuật liên quan đến phòng và công nghệ thuyết trình.\n" +"\n" +"Mong gặp quý vị tại Hội thảo!\n" +"\n" +"Ban tổ chức {event_name}" #: pretalx/mail/default_templates.py:42 #, python-brace-format @@ -2662,10 +2832,19 @@ msgid "" "\n" "The {event_name} organisers" msgstr "" +"Xin chào!\n" +"\n" +"Chúng tôi rất tiếc phải thông báo rằng đề xuất tham luận của quý vị " +"“{submission_title}” đã không được những người bình duyệt lựa chọn để thuyết " +"trình tại Hội thảo {event_name}. Có quá nhiều đề xuất tham luận xuất sắc - " +"nhưng chúng tôi vẫn hy vọng sẽ gặp quý vị tại {event_name} với tư cách là " +"người tham dự dù không phải là diễn giả!\n" +"\n" +"Ban tổ chức {event_name}" #: pretalx/mail/default_templates.py:53 msgid "New schedule!" -msgstr "" +msgstr "Lịch hội thảo mới!" #: pretalx/mail/default_templates.py:56 #, python-brace-format @@ -2681,10 +2860,22 @@ msgid "" "\n" "The {event_name} organisers" msgstr "" +"Xin chào!\n" +"\n" +"Chúng tôi đã phát hành phiên bản lịch hội thảo mới và muốn thông báo tới quý " +"vị:\n" +"\n" +"{speaker_schedule_new}\n" +"\n" +"Chúng tôi mong được đón tiếp quý vị tại hội thảo, xin vui lòng liên hệ với " +"chúng tôi nếu có bất kỳ vấn đề nào với phiên họp hoặc thời gian được chỉ " +"định của quý vị.\n" +"\n" +"Ban tổ chức {event_name}" #: pretalx/mail/default_templates.py:69 msgid "We have some questions about your proposal" -msgstr "" +msgstr "Chúng tôi có một số câu hỏi về đề xuất của quý vị" #: pretalx/mail/default_templates.py:73 #, python-brace-format @@ -2702,11 +2893,23 @@ msgid "" "\n" "The {event_name} organisers" msgstr "" +"Xin chào!\n" +"\n" +"Chúng tôi có một số câu hỏi mở về quý vị và đề xuất tham luận của quý vị " +"dưới đây:\n" +"\n" +"{questions}\n" +"\n" +"Quý vị có thể trả lời các câu hỏi này tại địa chỉ {url}.\n" +"\n" +"Vui lòng liên hệ với chúng tôi nếu quý vị có bất kỳ câu hỏi nào!\n" +"\n" +"Ban tổ chức {event_name}" #: pretalx/mail/default_templates.py:89 #, python-brace-format msgid "New proposal: {proposal_title}" -msgstr "" +msgstr "Đề xuất mới: {proposal_title}" #: pretalx/mail/default_templates.py:93 #, python-brace-format @@ -2722,11 +2925,23 @@ msgid "" "All the best,\n" "your {event_name} CfP system.\n" msgstr "" +"Xin chào,\n" +"\n" +"Quý vị đã nhận được đề xuất tham luận mới cho Hội thảo {event_name} mà quý " +"vị tổ chức:\n" +"“{submission_title}” từ diễn giả {speakers}.\n" +"Quý vị có thể xem chi tiết tại\n" +"\n" +"{orga_url}\n" +"\n" +"Chúc quý vị mọi điều tốt lành,\n" +"\n" +"Hệ thống quản trị hội thảo {event_name}.\n" #: pretalx/mail/default_templates.py:108 #, python-brace-format msgid "You have been added to a proposal for {event_name}" -msgstr "" +msgstr "Quý vị vừa được thêm vào đề xuất tham luận cho Hội thảo {event_name}" #: pretalx/mail/default_templates.py:113 #, python-brace-format @@ -2745,6 +2960,19 @@ msgid "" "\n" "The {event} orga crew" msgstr "" +"Xin chào!\n" +"\n" +"Quý vị đã được thêm vào đề xuất cho {event_name}, có tiêu đề là " +"“{proposal_title}”.\n" +"Một tài khoản đã được tạo cho bạn – vui lòng theo liên kết này để đặt mật " +"khẩu tài khoản của bạn.\n" +"\n" +"{invitation_link}\n" +"\n" +"Sau đó, quý vị có thể chỉnh sửa hồ sơ người dùng của mình và xem trạng thái " +"đề xuất của quý vị.\n" +"\n" +"Ban tổ chức {event}" #: pretalx/mail/default_templates.py:127 #, python-brace-format @@ -2760,20 +2988,28 @@ msgid "" "\n" "The {event_name} organisers" msgstr "" +"Xin chào!\n" +"\n" +"Quý vị đã được thêm vào đề xuất của {event_name}, có tiêu đề là " +"“{proposal_title}”.\n" +"Vui lòng theo liên kết này để chỉnh sửa hồ sơ người dùng của quý vị và xem " +"trạng thái đề xuất của quý vị:\n" +"\n" +"{proposal_url}\n" +"\n" +"Ban tổ chức {event_name}" #: pretalx/mail/models.py:28 msgid "Acknowledge proposal submission" -msgstr "" +msgstr "Xác nhận việc gửi đề xuất" #: pretalx/mail/models.py:30 msgid "New proposal (organiser notification)" -msgstr "" +msgstr "Đề xuất mới (thông báo cho BTC)" #: pretalx/mail/models.py:32 -#, fuzzy -#| msgid "Proposals are closed" msgid "Proposal accepted" -msgstr "Các đề xuất đã đóng" +msgstr "Đề xuất được chấp nhận" #: pretalx/mail/models.py:33 #, fuzzy @@ -2783,74 +3019,76 @@ msgstr "Các đề xuất đã đóng" #: pretalx/mail/models.py:35 msgid "Add a speaker to a proposal (new account)" -msgstr "" +msgstr "Thêm diễn giả vào đề xuất (tài khoản mới)" #: pretalx/mail/models.py:38 msgid "Add a speaker to a proposal (existing account)" -msgstr "" +msgstr "Thêm người nói vào đề xuất (tài khoản đã có)" #: pretalx/mail/models.py:40 #: pretalx/orga/templates/orga/cfp/question_remind.html:18 #: pretalx/orga/templates/orga/includes/mail_template_role.html:9 msgid "Unanswered questions reminder" -msgstr "" +msgstr "Nhắc nhở câu hỏi chưa trả lời" #: pretalx/mail/models.py:41 -#, fuzzy -#| msgid "View schedule preview" msgid "New schedule published" -msgstr "Xem trước chương trình" +msgstr "Lịch mới của hội thảo được công bố" #: pretalx/mail/models.py:75 pretalx/mail/models.py:244 msgid "Reply-To" -msgstr "" +msgstr "Hồi âm tới" #: pretalx/mail/models.py:77 msgid "" "Change the Reply-To address if you do not want to use the default organiser " "address" msgstr "" +"Thay đổi địa chỉ ở ô Hồi âm tới nếu quý vị không muốn sử dụng địa chỉ mặc " +"địch của Ban tổ chức" #: pretalx/mail/models.py:84 pretalx/mail/models.py:258 msgid "BCC" -msgstr "" +msgstr "BCC" #: pretalx/mail/models.py:86 msgid "" "Enter comma separated addresses. Will receive a blind copy of every mail " "sent from this template. This may be a LOT!" msgstr "" +"Nhập địa chỉ cách nhau bằng dấu phẩy. Sẽ nhận được một bản sao ẩn của mọi " +"email được gửi từ mẫu này. Có thể là RẤT NHIỀU!" #: pretalx/mail/models.py:231 pretalx/orga/forms/cfp.py:442 #: pretalx/orga/templates/orga/mails/outbox_list.html:54 #: pretalx/orga/templates/orga/mails/sent_list.html:21 msgid "To" -msgstr "" +msgstr "To" #: pretalx/mail/models.py:232 pretalx/mail/models.py:252 #: pretalx/mail/models.py:259 msgid "One email address or several addresses separated by commas." -msgstr "" +msgstr "Một địa chỉ email hoặc nhiều địa chỉ được phân tách bằng dấu phẩy." #: pretalx/mail/models.py:245 msgid "By default, the organiser address is used as Reply-To." -msgstr "" +msgstr "Theo mặc định, địa chỉ của Ban tổ chức được sử dụng để nhận Hồi âm." #: pretalx/mail/models.py:251 msgid "CC" -msgstr "" +msgstr "CC" #: pretalx/mail/models.py:265 msgid "Sent at" -msgstr "" +msgstr "Gửi lúc" #: pretalx/mail/models.py:332 msgid "This mail has been sent already. It cannot be sent again." -msgstr "" +msgstr "Thư này đã được gửi rồi. Không thể gửi lại được nữa." #: pretalx/orga/forms/admin.py:17 msgid "Perform update checks" -msgstr "" +msgstr "Thực hiện kiểm tra cập nhật" #: pretalx/orga/forms/admin.py:19 msgid "" @@ -2861,10 +3099,17 @@ msgid "" "any IP addresses and we will not know who you are or where to find your " "instance. You can disable this behavior here at any time." msgstr "" +"Trong quá trình kiểm tra cập nhật, pretalx sẽ báo cáo một ID cài đặt ẩn " +"danh, duy nhất, phiên bản hiện tại của pretalx và các plugin đã cài đặt của " +"bạn cùng số lượng sự kiện đang hoạt động và không hoạt động trong cài đặt " +"của bạn tới các máy chủ do các nhà phát triển pretalx vận hành. Chúng tôi sẽ " +"chỉ lưu trữ dữ liệu ẩn danh, không bao giờ lưu trữ bất kỳ địa chỉ IP nào và " +"chúng tôi sẽ không biết bạn là ai hoặc tìm phiên bản của bạn ở đâu. Bạn có " +"thể vô hiệu hóa hành vi này tại đây bất kỳ lúc nào." #: pretalx/orga/forms/admin.py:28 msgid "Email notifications" -msgstr "" +msgstr "Thông báo qua email" #: pretalx/orga/forms/admin.py:30 msgid "" @@ -2872,86 +3117,98 @@ msgid "" "available. This address will not be transmitted to pretalx.com, the emails " "will be sent by your server locally." msgstr "" +"Chúng tôi sẽ thông báo cho quý vị tại địa chỉ này nếu chúng tôi phát hiện có " +"bản cập nhật mới. Địa chỉ này sẽ không được truyền đến pretalx.com, email sẽ " +"được gửi bởi máy chủ cục bộ của quý vị." #: pretalx/orga/forms/cfp.py:39 msgid "Use tracks" -msgstr "" +msgstr "Sử dụng kênh" #: pretalx/orga/forms/cfp.py:41 msgid "Do you organise your sessions by tracks?" -msgstr "" +msgstr "Quý vị có sắp xếp các phiên hội thảo theo từng kênh không?" #: pretalx/orga/forms/cfp.py:44 pretalx/submission/models/submission.py:210 msgid "Slot Count" -msgstr "" +msgstr "Số lượng chỗ (slot)" #: pretalx/orga/forms/cfp.py:46 msgid "Can sessions be held multiple times?" -msgstr "" +msgstr "Phiên hội thảo có được lặp lại nhiều lần không?" #: pretalx/orga/forms/cfp.py:49 msgid "Send mail on new proposal" -msgstr "" +msgstr "Gửi email về đề xuất tham luận mới" #: pretalx/orga/forms/cfp.py:51 msgid "" "If this setting is checked, you will receive an email to the organiser " "address for every received proposal." msgstr "" +"Nếu cài đặt này được chọn, quý vị sẽ nhận được email tới địa chỉ của Ban tổ " +"chức mỗi khi có nhận được một đề xuất mới." #: pretalx/orga/forms/cfp.py:56 msgid "Allow submitters to share their proposal publicly" -msgstr "" +msgstr "Cho phép người nộp bài chia sẻ đề xuất của họ một cách công khai" #: pretalx/orga/forms/cfp.py:58 msgid "Allow submitters to share a secret link to their proposal with others." msgstr "" +"Cho phép người nộp bài chia sẻ liên kết bí mật tới đề xuất của họ với người " +"khác." #: pretalx/orga/forms/cfp.py:111 msgid "Do not ask" -msgstr "" +msgstr "Không hỏi" #: pretalx/orga/forms/cfp.py:112 msgid "Ask, but do not require input" -msgstr "" +msgstr "Hỏi, nhưng không bắt buộc nhập dữ liệu" #: pretalx/orga/forms/cfp.py:113 msgid "Ask and require input" -msgstr "" +msgstr "Hỏi và bắt buộc nhập dữ liệu" #: pretalx/orga/forms/cfp.py:148 msgid "Display deadline publicly" -msgstr "" +msgstr "Hiển thị hạn chót công khai" #: pretalx/orga/forms/cfp.py:150 msgid "Show the time and date the CfP ends to potential speakers." msgstr "" +"Hiển thị ngày giờ Thông báo mời viết Đề xuất tham luận tới các diễn giả tiềm " +"năng" #: pretalx/orga/forms/cfp.py:153 msgid "Count text length in" -msgstr "" +msgstr "Tính độ dài nội dung theo" #: pretalx/orga/forms/cfp.py:154 msgid "Characters" -msgstr "" +msgstr "Ký tự" #: pretalx/orga/forms/cfp.py:154 msgid "Words" -msgstr "" +msgstr "Từ" #: pretalx/orga/forms/cfp.py:171 msgid "Upload options" -msgstr "" +msgstr "Lựa chọn tải lên" #: pretalx/orga/forms/cfp.py:173 msgid "" "You can upload question options here, one option per line. To use multiple " "languages, please upload a JSON file with a list of options:" msgstr "" +"Quý vị có thể tải lên các trả lời tùy chọn cho câu hỏi ở đây, mỗi dòng một " +"tùy chọn. Để sử dụng nhiều ngôn ngữ, vui lòng tải lên tệp JSON có danh sách " +"các tùy chọn:" #: pretalx/orga/forms/cfp.py:181 msgid "Replace existing options" -msgstr "" +msgstr "Thay thế những tuỳ chọn đã có" #: pretalx/orga/forms/cfp.py:183 msgid "" @@ -2960,49 +3217,55 @@ msgid "" "not check this, the uploaded options will be added to the existing ones, " "without adding duplicates." msgstr "" +"Nếu quý vị lên các tùy chọn mới, quý vị có muốn thay thế các tùy chọn hiện " +"có không? Xin lưu ý rằng thao tác này sẽ XÓA tất cả các câu trả lời hiện có " +"cho câu hỏi này! Nếu quý vị không đánh dấu kiểm ở mục này, các tùy chọn đã " +"tải lên sẽ được thêm vào các tùy chọn hiện có mà không thêm các mục trùng " +"lặp." #: pretalx/orga/forms/cfp.py:222 msgid "Could not read file." -msgstr "" +msgstr "Không đọc được file." #: pretalx/orga/forms/cfp.py:227 msgid "JSON file does not contain a list." -msgstr "" +msgstr "File JSON không có danh mục." #: pretalx/orga/forms/cfp.py:229 msgid "JSON file does not contain a list of objects." -msgstr "" +msgstr "File JSON không có danh sách các đối tượng." #: pretalx/orga/forms/cfp.py:243 msgid "" "Please select a deadline after which the question should become mandatory." -msgstr "" +msgstr "Vui lòng chọn thời hạn mà sau đó câu hỏi sẽ trở thành bắt buộc." #: pretalx/orga/forms/cfp.py:255 msgid "You cannot replace answer options without uploading new ones." msgstr "" +"Bạn không thể thay thế các tùy chọn trả lời mà không tải lên tùy chọn mới." #: pretalx/orga/forms/cfp.py:360 msgid "You already have a session type by this name!" -msgstr "" +msgstr "Quý vị đã có một kiểu phiên hội thảo có tên này!" #: pretalx/orga/forms/cfp.py:374 pretalx/orga/forms/submission.py:209 msgid "minutes" -msgstr "" +msgstr "phút" #: pretalx/orga/forms/cfp.py:385 #, python-brace-format msgid "You can create an access code here." -msgstr "" +msgstr "Quý vị có thể tạo một mã truy cập tại đây." #: pretalx/orga/forms/cfp.py:394 msgid "You already have a track by this name!" -msgstr "" +msgstr "Quý vị đã có một kênh có tên này!" #: pretalx/orga/forms/cfp.py:448 #, python-brace-format msgid "Access code for the {event} CfP" -msgstr "" +msgstr "Mã truy cập cho Thông báo mời viết Đề xuất tham luận cho {event}" #: pretalx/orga/forms/cfp.py:452 #, python-brace-format @@ -3011,25 +3274,29 @@ msgid "" "\n" "This is an access code for the {event} CfP." msgstr "" +"Xin chào!\n" +"\n" +"Đây là mã truy cập cho Thông báo mời viết Đề xuất tham luận cho {event}." #: pretalx/orga/forms/cfp.py:463 #, python-brace-format msgid "It will allow you to submit a proposal to the “{track}” track." -msgstr "" +msgstr "Nó sẽ cho phép quý vị gửi đề xuất cho kênh “{track}”." #: pretalx/orga/forms/cfp.py:469 msgid "It will allow you to submit a proposal to our CfP." msgstr "" +"Nó sẽ cho phép quý vị gửi một đề xuất tham luận theo Thông báo của chúng tôi." #: pretalx/orga/forms/cfp.py:473 #, python-brace-format msgid "This access code is valid until {date}." -msgstr "" +msgstr "Mã truy cập này còn giá trị tới ngày {date}." #: pretalx/orga/forms/cfp.py:485 #, python-brace-format msgid "The code can be redeemed multiple times ({num})." -msgstr "" +msgstr "Mã này có thể sử dụng nhiều lần {num}." #: pretalx/orga/forms/cfp.py:490 #, python-brace-format @@ -3042,35 +3309,42 @@ msgid "" "I’m looking forward to your proposal!\n" "{name}" msgstr "" +"\n" +"Vui lòng theo URL này để sử dụng mã:\n" +"\n" +"{url}\n" +"\n" +"Tôi mong chờ đề xuất tham luận của quý vị!\n" +"{name}" #: pretalx/orga/forms/cfp.py:521 msgid "Accepted or confirmed speakers" -msgstr "" +msgstr "Diễn giả được chấp nhận hoặc đã xác nhận" #: pretalx/orga/forms/cfp.py:522 msgid "Confirmed speakers" -msgstr "" +msgstr "Diễn giả đã xác nhận" #: pretalx/orga/forms/cfp.py:525 #: pretalx/orga/templates/orga/mails/_mail_editor.html:28 msgid "Recipients" -msgstr "" +msgstr "Người nhận" #: pretalx/orga/forms/cfp.py:596 msgid "If you select no question, all questions will be used." -msgstr "" +msgstr "Nếu quý vị không chọn câu hỏi, tất cả câu hỏi sẽ được sử dụng." #: pretalx/orga/forms/event.py:40 msgid "Grid" -msgstr "" +msgstr "Lưới" #: pretalx/orga/forms/event.py:41 msgid "List" -msgstr "" +msgstr "Danh mục" #: pretalx/orga/forms/event.py:57 msgid "Active languages" -msgstr "" +msgstr "Ngôn ngữ đang dùng" #: pretalx/orga/forms/event.py:61 msgid "" @@ -3079,83 +3353,96 @@ msgid "" "language a user selects, it will be shown in your event’s default language " "instead." msgstr "" +"Người dùng sẽ có thể sử dụng pretalx bằng các ngôn ngữ này và quý vị sẽ có " +"thể cung cấp tất cả các văn bản bằng các ngôn ngữ này. Nếu quý vị không cung " +"cấp văn bản bằng ngôn ngữ mà người dùng chọn, văn bản đó sẽ được hiển thị " +"bằng ngôn ngữ mặc định của sự kiện." #: pretalx/orga/forms/event.py:67 msgid "Content languages" -msgstr "" +msgstr "Ngôn ngữ nội dung" #: pretalx/orga/forms/event.py:70 msgid "Users will be able to submit proposals in these languages." -msgstr "" +msgstr "Người dùng có thể nộp đề xuất tham luận ở các ngôn ngữ sau." #: pretalx/orga/forms/event.py:76 msgid "You can type in your CSS instead of uploading it, too." -msgstr "" +msgstr "Bạn cũng có thể nhập mã CSS thay vì tải nó lên." #: pretalx/orga/forms/event.py:79 msgid "Imprint URL" -msgstr "" +msgstr "Đường dẫn thông tin BTC" #: pretalx/orga/forms/event.py:81 msgid "" "This should point e.g. to a part of your website that has your contact " "details and legal information." msgstr "" +"Ví dụ, phần này sẽ trỏ đến một phần trên trang web có thông tin liên lạc và " +"thông tin pháp lý của Ban Tổ chức." #: pretalx/orga/forms/event.py:86 msgid "Show schedule publicly" -msgstr "" +msgstr "Hiển thị lịch hội thảo công khai" #: pretalx/orga/forms/event.py:88 msgid "" "Unset to hide your schedule, e.g. if you want to use the HTML export " "exclusively." msgstr "" +"Bỏ chọn để ẩn lịch hội thảo, ví dụ: nếu quý vị chỉ muốn sử dụng chức năng " +"xuất HTML." #: pretalx/orga/forms/event.py:98 msgid "Show featured sessions" -msgstr "" +msgstr "Hiển thị các phiên nổi bật" #: pretalx/orga/forms/event.py:100 pretalx/submission/models/review.py:292 #: pretalx/submission/models/review.py:313 msgid "Never" -msgstr "" +msgstr "Không bao giờ" #: pretalx/orga/forms/event.py:101 msgid "Until the first schedule is released" -msgstr "" +msgstr "Tới khi phiên bản lịch đầu tiên được công bố" #: pretalx/orga/forms/event.py:102 pretalx/submission/models/review.py:291 msgid "Always" -msgstr "" +msgstr "Luôn luôn" #: pretalx/orga/forms/event.py:105 msgid "" "Marking sessions as “featured” is a good way to show them before the first " "schedule release, or to highlight them once the schedule is visible." msgstr "" +"Đánh dấu các phiên là \"nổi bật\" là một cách hay để hiển thị chúng trước " +"khi phát hành lịch trình đầu tiên hoặc để làm nổi bật chúng sau khi lịch " +"trình hiển thị." #: pretalx/orga/forms/event.py:110 msgid "Enable anonymous feedback" -msgstr "" +msgstr "Cho phép phản hồi ẩn danh" #: pretalx/orga/forms/event.py:112 msgid "Attendees will be able to send in feedback after a session is over." -msgstr "" +msgstr "Người tham dự có thể gửi phản hồi sau khi phiên hội thảo kết thúc." #: pretalx/orga/forms/event.py:117 msgid "Generate HTML export on schedule release" -msgstr "" +msgstr "Tạo bản xuất định dạng HTML mỗi khi lịch hội thảo được phát hành" #: pretalx/orga/forms/event.py:119 msgid "" "The static HTML export will be provided as a .zip archive on the schedule " "export page." msgstr "" +"Tệp xuất HTML tĩnh sẽ được cung cấp dưới dạng tệp .zip trên trang xuất lịch " +"trình." #: pretalx/orga/forms/event.py:124 msgid "HTML Export URL" -msgstr "" +msgstr "Đường dẫn URL của bản xuất HTML" #: pretalx/orga/forms/event.py:126 msgid "" @@ -3163,26 +3450,32 @@ msgid "" "absolute URL to be set in various places. Please only set this value once " "you have published your schedule. Should end with a slash." msgstr "" +"Nếu bạn xuất bản lịch trình của mình thông qua xuất HTML, bạn sẽ muốn URL " +"tuyệt đối chính xác được đặt ở nhiều nơi khác nhau. Vui lòng chỉ đặt giá trị " +"này sau khi bạn đã xuất bản lịch trình của mình. Nên kết thúc bằng dấu gạch " +"chéo." #: pretalx/orga/forms/event.py:139 msgid "Ask search engines not to index the event pages" -msgstr "" +msgstr "Yêu cầu các công cụ tìm kiếm không lập chỉ mục các trang của hội thảo" #: pretalx/orga/forms/event.py:148 #, python-brace-format msgid "Make sure to point a CNAME record from your domain to {site_url}." -msgstr "" +msgstr "Đảm bảo trỏ bản ghi CNAME từ tên miền của bạn tới {site_url}." #: pretalx/orga/forms/event.py:155 #, python-brace-format msgid "You can find the page here." -msgstr "" +msgstr "Quý vị có thể tìm trang ở đây." #: pretalx/orga/forms/event.py:164 msgid "" "Please contact your administrator if you need to change the short name of " "your event." msgstr "" +"Vui lòng liên hệ với người quản trị nếu quý vị cần đổi tên viết tắt của sự " +"kiện." #: pretalx/orga/forms/event.py:167 msgid "" @@ -3190,10 +3483,13 @@ msgid "" "event dates. You will have to release a new schedule version to notify all " "speakers." msgstr "" +"Bất kỳ phiên hội thảo nào quý vị đã lên lịch sẽ được chuyển nếu quý vị thay " +"đổi ngày sự kiện. Quý vị sẽ phải phát hành phiên bản lịch hội thảo mới để " +"thông báo cho tất cả diễn giả." #: pretalx/orga/forms/event.py:184 msgid "Please do not choose the default domain as custom event domain." -msgstr "" +msgstr "Vui lòng không chọn tên miền mặc định làm tên miền sự kiện tùy chỉnh." #: pretalx/orga/forms/event.py:195 #, python-brace-format @@ -3201,99 +3497,111 @@ msgid "" "The domain “{domain}” does not have a name server entry at this time. Please " "make sure the domain is working before configuring it here." msgstr "" +"Tên miền “{domain}” hiện không có mục nhập máy chủ tên. Vui lòng đảm bảo tên " +"miền đang hoạt động trước khi cấu hình ở đây." #: pretalx/orga/forms/event.py:232 msgid "Your default language needs to be one of your active languages." msgstr "" +"Ngôn ngữ mặc định của quý vị phải là một trong những ngôn ngữ đang được sử " +"dụng." #: pretalx/orga/forms/event.py:368 msgid "Contact address" -msgstr "" +msgstr "Địa chỉ liên hệ" #: pretalx/orga/forms/event.py:370 msgid "" "Reply-To address. If this setting is empty and you have no custom sender, " "your event email address will be used as Reply-To address." msgstr "" +"Địa chỉ nhận hồi âm (Reply-To). Nếu cài đặt này để trống và quý vị không có " +"người gửi tùy chỉnh, địa chỉ email của hội thảo sẽ được sử dụng làm địa chỉ " +"nhận hồi âm." #: pretalx/orga/forms/event.py:375 msgid "Mail subject prefix" -msgstr "" +msgstr "Tiền tố chủ đề thư" #: pretalx/orga/forms/event.py:377 msgid "The prefix will be prepended to outgoing mail subjects in [brackets]." -msgstr "" +msgstr "Tiền tố sẽ được thêm vào trước tiêu đề thư gửi đi trong [ngoặc vuông]." #: pretalx/orga/forms/event.py:382 msgid "Mail signature" -msgstr "" +msgstr "Chữ ký email" #: pretalx/orga/forms/event.py:384 msgid "The signature will be added to outgoing mails, preceded by “-- ”." -msgstr "" +msgstr "Chữ ký sẽ được thêm vào thư gửi đi, bắt đầu bằng dấu “--”." #: pretalx/orga/forms/event.py:392 msgid "Use custom SMTP server" -msgstr "" +msgstr "Sủ dụng máy chủ SMTP dùng riêng" #: pretalx/orga/forms/event.py:394 msgid "" "All mail related to your event will be sent over the SMTP server specified " "by you." msgstr "" +"Mọi email liên quan đến hội thảo này sẽ được gửi qua máy chủ SMTP được chỉ " +"định dưới đây." #: pretalx/orga/forms/event.py:399 msgid "Sender address" -msgstr "" +msgstr "Địa chỉ người gửi" #: pretalx/orga/forms/event.py:400 msgid "Sender address for outgoing emails." -msgstr "" +msgstr "Địa chỉ người gửi cho email gửi ra." #: pretalx/orga/forms/event.py:403 msgid "Hostname" -msgstr "" +msgstr "Tên máy chủ" #: pretalx/orga/forms/event.py:404 #: pretalx/orga/templates/orga/admin/admin.html:84 msgid "Port" -msgstr "" +msgstr "Cổng" #: pretalx/orga/forms/event.py:405 msgid "Username" -msgstr "" +msgstr "Tên tài khoản (username)" #: pretalx/orga/forms/event.py:407 #: pretalx/orga/templates/orga/admin/admin.html:90 pretalx/person/forms.py:51 #: pretalx/person/forms.py:66 msgid "Password" -msgstr "" +msgstr "Mật khẩu (password)" #: pretalx/orga/forms/event.py:415 msgid "Use STARTTLS" -msgstr "" +msgstr "Sử dụng STARTTLS" #: pretalx/orga/forms/event.py:416 msgid "Commonly enabled on port 587." -msgstr "" +msgstr "Thường được bật trên cổng 587." #: pretalx/orga/forms/event.py:420 msgid "Use SSL" -msgstr "" +msgstr "Sử dụng SSL" #: pretalx/orga/forms/event.py:420 msgid "Commonly enabled on port 465." -msgstr "" +msgstr "Thường được bật trên cổng 465." #: pretalx/orga/forms/event.py:448 msgid "You have to provide a sender address if you use a custom SMTP server." msgstr "" +"Bạn phải cung cấp địa chỉ người gửi nếu bạn sử dụng máy chủ SMTP tùy chỉnh." #: pretalx/orga/forms/event.py:457 msgid "" "You can activate either SSL or STARTTLS security, but not both at the same " "time." msgstr "" +"Bạn có thể kích hoạt bảo mật SSL hoặc STARTTLS, nhưng không thể kích hoạt cả " +"hai cùng một lúc." #: pretalx/orga/forms/event.py:474 msgid "" @@ -3302,73 +3610,83 @@ msgid "" "instance-wide bypass. If you use this bypass, please also adjust your " "Privacy Policy." msgstr "" +"Bạn phải kích hoạt bảo mật SSL hoặc STARTTLS nếu bạn sử dụng máy chủ thư " +"không cục bộ vì lý do bảo vệ dữ liệu. Quản trị viên của bạn có thể thêm chế " +"độ bỏ qua toàn phiên bản. Nếu bạn sử dụng chế độ bỏ qua này, vui lòng điều " +"chỉnh Chính sách bảo mật của bạn." #: pretalx/orga/forms/event.py:505 msgid "Require a review score" -msgstr "" +msgstr "Yêu cầu điểm đánh giá" #: pretalx/orga/forms/event.py:508 msgid "Require a review text" -msgstr "" +msgstr "Yêu cầu lời nhận xét bình duyệt" #: pretalx/orga/forms/event.py:511 msgid "Score display" -msgstr "" +msgstr "Hiển thị điểm" #: pretalx/orga/forms/event.py:514 msgid "Text and score, e.g “Good (3)”" -msgstr "" +msgstr "Nhận xét và điểm, ví dụ \"Tốt (3)\"" #: pretalx/orga/forms/event.py:515 msgid "Score and text, e.g “3 (good)”" -msgstr "" +msgstr "Điểm và Nhận xét, ví dụ \"3 (Tốt)\"" #: pretalx/orga/forms/event.py:516 msgid "Just scores" -msgstr "" +msgstr "Chỉ hiện điểm" #: pretalx/orga/forms/event.py:517 msgid "Just text" -msgstr "" +msgstr "Chỉ hiện nhận xét" #: pretalx/orga/forms/event.py:521 msgid "" "This is how the score will look like on the review interface. The dashboard " "will always show numerical scores." msgstr "" +"Đây là cách điểm số sẽ hiển thị trên giao diện bình duyệt. Bảng điều khiển " +"sẽ luôn hiển thị điểm số." #: pretalx/orga/forms/event.py:526 msgid "Score aggregation method" -msgstr "" +msgstr "Phương pháp tổng hợp điểm" #: pretalx/orga/forms/event.py:528 #: pretalx/orga/templates/orga/review/dashboard.html:160 msgid "Median" -msgstr "" +msgstr "Trung vị" #: pretalx/orga/forms/event.py:528 msgid "Average (mean)" -msgstr "" +msgstr "Trung bình (mean)" #: pretalx/orga/forms/event.py:532 msgid "Help text for reviewers" -msgstr "" +msgstr "Thông tin hướng dẫn cho người bình duyệt" #: pretalx/orga/forms/event.py:534 msgid "" "This text will be shown at the top of every review, as long as reviews can " "be created or edited." msgstr "" +"Văn bản này sẽ được hiển thị ở đầu mỗi bài bình duyệt, miễn là bài bình " +"duyệt có thể được tạo hoặc chỉnh sửa." #: pretalx/orga/forms/event.py:554 msgid "Show the widget even if the schedule is not public" -msgstr "" +msgstr "Hiển thị tiện ích (widget) ngay cả khi lịch trình không được công khai" #: pretalx/orga/forms/event.py:556 msgid "" "Set to allow external pages to show the schedule widget, even if the " "schedule is not shown here using pretalx." msgstr "" +"Đặt để cho phép các trang bên ngoài hiển thị tiện ích lịch hội thảo, ngay cả " +"khi lịch hội thảo không được hiển thị ở đây bằng pretalx." #: pretalx/orga/forms/event.py:572 msgid "Limit days" @@ -3546,124 +3864,129 @@ msgstr "" #: pretalx/orga/forms/review.py:266 msgid "Reviewer name" -msgstr "" +msgstr "Tên người bình duyệt" #: pretalx/orga/forms/review.py:270 msgid "Reviewer email" -msgstr "" +msgstr "Email người bình duyệt" #: pretalx/orga/forms/review.py:328 #, python-brace-format msgid "Score in “{score_category}”" -msgstr "" +msgstr "Điểm trong {score_category}" #: pretalx/orga/forms/review.py:371 pretalx/person/models/information.py:51 #: pretalx/submission/models/resource.py:26 msgid "File" -msgstr "" +msgstr "File" #: pretalx/orga/forms/review.py:373 pretalx/orga/forms/review.py:376 msgid "Replace current assignments" -msgstr "" +msgstr "Thay thế các giao bài hiện tại" #: pretalx/orga/forms/review.py:375 msgid "Keep current assignments" -msgstr "" +msgstr "Giữ các giao bài hiện tại" #: pretalx/orga/forms/review.py:379 msgid "" "Select to remove all current assignments and replace them with the import. " "Otherwise, the import will be an addition to the current assignments." msgstr "" +"Chọn để xóa tất cả các giao bài hiện tại và thay thế chúng bằng lệnh nhập. " +"Nếu không, lệnh nhập sẽ là lệnh bổ sung cho các giao bài hiện tại." #: pretalx/orga/forms/review.py:385 msgid "Cannot parse JSON file." -msgstr "" +msgstr "Không thể phân tích tệp JSON." #: pretalx/orga/forms/review.py:402 msgid "Unknown user: {}" -msgstr "" +msgstr "Người dùng không xác định: {}" #: pretalx/orga/forms/review.py:412 msgid "Unknown proposal: {}" -msgstr "" +msgstr "Đề xuất không xác định: {}" #: pretalx/orga/forms/schedule.py:21 msgid "Notify speakers of changes" -msgstr "" +msgstr "Cập nhật cho diễn giả về các thay đổi" #: pretalx/orga/forms/schedule.py:36 msgid "We released a new schedule version!" -msgstr "" +msgstr "Chúng tôi vừa công bố một phiên bản lịch hội thảo mới." #: pretalx/orga/forms/schedule.py:45 msgid "This schedule version was used already, please choose a different one." msgstr "" +"Phiên bản lịch trình hội thảo đã được sử dụng, vui lòng chọn phiên bản khác." #: pretalx/orga/forms/schedule.py:61 pretalx/orga/forms/speaker.py:13 #: pretalx/orga/templates/orga/speaker/information_list.html:53 msgid "Target group" -msgstr "" +msgstr "Nhóm mục tiêu" #: pretalx/orga/forms/schedule.py:97 msgid "Speaker IDs" -msgstr "" +msgstr "Mã số (ID) của diễn giả" #: pretalx/orga/forms/schedule.py:99 msgid "The unique ID of a speaker is used in the speaker URL and in exports" msgstr "" +"ID đơn nhất của diễn giả được sử dụng trong đường dẫn URL của diễn giả và " +"trong các bản xuất dữ liệu" #: pretalx/orga/forms/schedule.py:104 msgid "Speaker names" -msgstr "" +msgstr "Tên diễn giả" #: pretalx/orga/forms/schedule.py:120 pretalx/orga/forms/schedule.py:139 msgid "date" -msgstr "" +msgstr "ngày" #: pretalx/orga/forms/schedule.py:128 pretalx/orga/forms/schedule.py:144 msgid "time" -msgstr "" +msgstr "giờ" #: pretalx/orga/forms/schedule.py:149 msgid "Median score" -msgstr "" +msgstr "Điểm trung bình (median)" #: pretalx/orga/forms/schedule.py:150 msgid "Median review score, if there have been reviews yet" -msgstr "" +msgstr "Điểm đánh giá trung bình, nếu đã có đánh giá" #: pretalx/orga/forms/schedule.py:154 msgid "Average (mean) score" -msgstr "" +msgstr "Điểm trung bình (mean)" #: pretalx/orga/forms/schedule.py:155 msgid "Average review score, if there have been reviews yet" -msgstr "" +msgstr "Điểm đánh giá trung bình (average), nếu đã có đánh giá" #: pretalx/orga/forms/schedule.py:161 msgid "Resources provided by the speaker, either as links or as uploaded files" -msgstr "" +msgstr "Tài nguyên do diễn giả cung cấp, dưới dạng liên kết hoặc tệp đã tải lên" #: pretalx/orga/forms/speaker.py:16 msgid "With accepted proposals" -msgstr "" +msgstr "Với các đề xuất được chấp nhận" #: pretalx/orga/forms/speaker.py:17 msgid "With confirmed proposals" -msgstr "" +msgstr "Với các đề xuất được xác nhận" #: pretalx/orga/forms/speaker.py:18 msgid "With rejected proposals" -msgstr "" +msgstr "Với các đề xuất bị từ chối" #: pretalx/orga/forms/speaker.py:31 msgid "Proposal IDs" -msgstr "" +msgstr "Mã (ID) của đề xuất" #: pretalx/orga/forms/speaker.py:36 msgid "Proposal titles" -msgstr "" +msgstr "Tiêu đề của đề xuất" #: pretalx/orga/forms/speaker.py:40 #: pretalx/orga/templates/orga/cfp/text.html:192 @@ -3671,34 +3994,34 @@ msgstr "" #: pretalx/orga/templates/orga/submission/speakers.html:45 #: pretalx/person/models/profile.py:31 msgid "Biography" -msgstr "" +msgstr "Tiểu sử" #: pretalx/orga/forms/speaker.py:44 msgid "Picture" -msgstr "" +msgstr "Ảnh" #: pretalx/orga/forms/speaker.py:45 msgid "The link to the speaker’s profile picture" -msgstr "" +msgstr "Liên kết đến ảnh hồ sơ của diễn giả" #: pretalx/orga/forms/submission.py:81 #: pretalx/submission/models/submission.py:164 msgid "Proposal state" -msgstr "" +msgstr "Tình trạng của đề xuất" #: pretalx/orga/forms/submission.py:138 #: pretalx/submission/forms/submission.py:151 msgid "Leave empty to use the default duration for the session type." -msgstr "" +msgstr "Để trống để sử dụng thời lượng mặc định cho loại phiên." #: pretalx/orga/forms/submission.py:149 msgid "The end time has to be after the start time." -msgstr "" +msgstr "Thời gian kết thúc phải sau thời gian bắt đầu." #: pretalx/orga/forms/submission.py:270 #: pretalx/orga/templates/orga/review/dashboard.html:310 msgid "Mark the new state as “pending”" -msgstr "" +msgstr "Đánh dấu trạng thái mới là “đang xử lý”" #: pretalx/orga/forms/submission.py:272 #: pretalx/orga/templates/orga/review/dashboard.html:312 @@ -3707,38 +4030,42 @@ msgid "" "right away. You can always apply pending changes for some or all proposals " "in one go once you’re ready to make your decisions public." msgstr "" +"Nếu quý vị đánh dấu các thay đổi trạng thái là đang xử lý, chúng sẽ không " +"hiển thị ngay cho người nói. Quý vị luôn có thể áp dụng các thay đổi đang xử " +"lý cho một số hoặc tất cả các đề xuất cùng một lúc khi quý vị đã sẵn sàng " +"công khai quyết định của mình." #: pretalx/orga/forms/submission.py:283 msgid "" "The email address of the speaker holding the session. They will be invited " "to create an account." msgstr "" +"Địa chỉ email của diễn giả chủ toạ phiên hội thảo. Họ sẽ được mời tạo tài " +"khoản." #: pretalx/orga/forms/submission.py:289 msgid "Speaker name" -msgstr "" +msgstr "Tên diễn giả" #: pretalx/orga/forms/submission.py:290 msgid "The name of the speaker that should be displayed publicly." -msgstr "" +msgstr "Tên của diễn giả sẽ được hiển thị công khai." #: pretalx/orga/forms/submission.py:294 msgid "Invite language" -msgstr "" +msgstr "Ngôn ngữ thư mời" #: pretalx/orga/forms/submission.py:298 msgid "The language in which the speaker will receive their invitation email." -msgstr "" +msgstr "Ngôn ngữ mà diễn giả sẽ nhận được trong email mời." #: pretalx/orga/forms/submission.py:311 -#, fuzzy -#| msgid "Please provide a valid email address." msgid "Please provide an email address." -msgstr "Vui lòng cung cấp một địa chỉ email hợp lệ." +msgstr "Vui lòng cung cấp một địa chỉ email." #: pretalx/orga/forms/widgets.py:39 msgid "Community translations" -msgstr "" +msgstr "Các bản dịch từ cộng đồng" #: pretalx/orga/forms/widgets.py:41 #, python-brace-format @@ -3748,37 +4075,45 @@ msgid "" "translated and will show in English instead. You can contribute to the translations." msgstr "" +"Các bản dịch này không được nhóm pretalx duy trì. Chúng tôi không thể đảm " +"bảo tính chính xác của chúng và các tính năng mới hoặc mới thay đổi gần đây " +"có thể không được dịch và sẽ hiển thị bằng tiếng Anh. Bạn có thể đóng góp vào các bản dịch." #: pretalx/orga/phrases.py:7 msgid "The event end cannot be before the start." -msgstr "" +msgstr "Sự kiện không thể kết thúc trước khi bắt đầu." #: pretalx/orga/phrases.py:9 msgid "Frontpage header pattern" -msgstr "" +msgstr "Mẫu tiêu đề trang đầu" #: pretalx/orga/phrases.py:11 msgid "" "Choose how the frontpage header banner will be styled. Pattern source: heropatterns.com, CC BY 4.0." msgstr "" +"Chọn cách tạo kiểu cho biểu ngữ tiêu đề trang chủ. Nguồn mẫu: heropatterns.com, CC BY 4.0." #: pretalx/orga/phrases.py:13 msgid "Schedule display format" -msgstr "" +msgstr "Định dạng hiển thị lịch trình" #: pretalx/orga/phrases.py:15 msgid "The unique ID of a proposal is used in the proposal URL and in exports" msgstr "" +"ID đơn nhất của đề xuất được sử dụng trong URL đề xuất và trong các bản xuất " +"dữ liệu" #: pretalx/orga/phrases.py:17 msgid "The password was reset and the user was notified." -msgstr "" +msgstr "Mật khẩu đã được đặt lại và người dùng đã được thông báo." #: pretalx/orga/phrases.py:19 msgid "" "The password reset email could not be sent, so the password was not reset." -msgstr "" +msgstr "Không thể gửi email đặt lại mật khẩu nên mật khẩu không được đặt lại." #: pretalx/orga/phrases.py:22 #, python-brace-format @@ -3786,11 +4121,13 @@ msgid "" "{count} emails have been saved to the outbox – you can make individual " "changes there or just send them all." msgstr "" +"{count} email đã được lưu vào hộp thư đi – bạn có thể thực hiện từng thay " +"đổi ở đó hoặc gửi tất cả." #: pretalx/orga/templates/orga/admin/admin.html:14 #: pretalx/orga/templates/orga/admin/admin.html:18 msgid "Administrator information" -msgstr "" +msgstr "Dành cho người quản trị" #: pretalx/orga/templates/orga/admin/admin.html:23 msgid "" @@ -3798,15 +4135,17 @@ msgid "" "and set the DEBUG variable to False if this page is in any way reachable " "from the internet." msgstr "" +"Bạn đang chạy pretalx ở chế độ phát triển. Vui lòng DỪNG và " +"đặt biến DEBUG thành False nếu trang này có thể truy cập được từ internet." #: pretalx/orga/templates/orga/admin/admin.html:33 msgid "Your pretalx version is:" -msgstr "" +msgstr "Phiên bản pretalx của bạn là:" #: pretalx/orga/templates/orga/admin/admin.html:34 #, python-format msgid "You can check for updates here." -msgstr "" +msgstr "Bạn có thể kiểm tra các bản cập nhật tại đây." #: pretalx/orga/templates/orga/admin/admin.html:39 #: pretalx/orga/templates/orga/base.html:207 @@ -3815,50 +4154,52 @@ msgstr "" #: pretalx/orga/templates/orga/settings/form.html:24 #: pretalx/orga/templates/orga/settings/form.html:27 msgid "Settings" -msgstr "" +msgstr "Cài đặt" #: pretalx/orga/templates/orga/admin/admin.html:43 msgid "Settings have been loaded from:" -msgstr "" +msgstr "Cài đặt đã được tải từ:" #: pretalx/orga/templates/orga/admin/admin.html:48 msgid "" "No settings files were found, all settings are either set to their default " "value or have been read from environment variables." msgstr "" +"Không tìm thấy tệp cài đặt nào, tất cả cài đặt đều được đặt thành giá trị " +"mặc định hoặc đã được đọc từ biến môi trường." #: pretalx/orga/templates/orga/admin/admin.html:53 msgid "Database" -msgstr "" +msgstr "CSDL" #: pretalx/orga/templates/orga/admin/admin.html:56 msgid "Driver" -msgstr "" +msgstr "Driver" #: pretalx/orga/templates/orga/admin/admin.html:64 msgid "Files" -msgstr "" +msgstr "File" #: pretalx/orga/templates/orga/admin/admin.html:67 msgid "Log" -msgstr "" +msgstr "Nhật ký" #: pretalx/orga/templates/orga/admin/admin.html:70 msgid "Static files" -msgstr "" +msgstr "File tĩnh" #: pretalx/orga/templates/orga/admin/admin.html:73 msgid "Media files" -msgstr "" +msgstr "File đa phương tiện" #: pretalx/orga/templates/orga/admin/admin.html:78 #: pretalx/orga/templates/orga/base.html:393 msgid "Mails" -msgstr "" +msgstr "Email" #: pretalx/orga/templates/orga/admin/admin.html:81 msgid "Host" -msgstr "" +msgstr "Đăng cai" #: pretalx/orga/templates/orga/admin/admin.html:87 #: pretalx/orga/templates/orga/mails/_placeholder_group.html:12 @@ -5321,7 +5662,7 @@ msgstr "" #: pretalx/orga/templates/orga/review/dashboard.html:280 #: pretalx/orga/templates/orga/speaker/form.html:64 msgid "pending" -msgstr "" +msgstr "đang xử lý" #. Translators: This is a button to mark a proposal as accepted #: pretalx/orga/templates/orga/review/dashboard.html:288 From 57765045e9b8e9d46305f7b3190ea7aa50574c31 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Mon, 16 Dec 2024 13:25:58 +0100 Subject: [PATCH 02/14] Fix typo --- src/pretalx/person/models/user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pretalx/person/models/user.py b/src/pretalx/person/models/user.py index c096ef4bc..81a83e37b 100644 --- a/src/pretalx/person/models/user.py +++ b/src/pretalx/person/models/user.py @@ -494,7 +494,7 @@ def change_password(self, new_password): Your pretalx account password was just changed. -If you did not cange your password, please contact the site administration immediately. +If you did not change your password, please contact the site administration immediately. All the best, the pretalx team""" From 9eb27cd2de794eebb0f8e283e01ff84e16e0522c Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Mon, 16 Dec 2024 13:26:30 +0100 Subject: [PATCH 03/14] Update translations --- src/pretalx/locale/ar/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/ca/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/cs/LC_MESSAGES/django.po | 50 +++++++++----- .../locale/de_DE/LC_MESSAGES/django.po | 50 +++++++++----- .../locale/de_Formal/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/django.pot | 50 +++++++++----- src/pretalx/locale/el/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/es/LC_MESSAGES/django.po | 50 +++++++++----- .../locale/es_MX/LC_MESSAGES/django.po | 50 +++++++++----- .../locale/fr_FR/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/id/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/it/LC_MESSAGES/django.po | 50 +++++++++----- .../locale/ja_JP/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/ko/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/nl/LC_MESSAGES/django.po | 50 +++++++++----- .../locale/pt_BR/LC_MESSAGES/django.po | 50 +++++++++----- .../locale/pt_PT/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/ru/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/sl/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/sv/LC_MESSAGES/django.po | 50 +++++++++----- src/pretalx/locale/vi/LC_MESSAGES/django.po | 67 ++++++++++++------- .../locale/zh_Hans/LC_MESSAGES/django.po | 50 +++++++++----- .../locale/zh_Hant/LC_MESSAGES/django.po | 50 +++++++++----- 23 files changed, 792 insertions(+), 375 deletions(-) diff --git a/src/pretalx/locale/ar/LC_MESSAGES/django.po b/src/pretalx/locale/ar/LC_MESSAGES/django.po index 02fcfc7c3..96812d66a 100644 --- a/src/pretalx/locale/ar/LC_MESSAGES/django.po +++ b/src/pretalx/locale/ar/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2023-05-22 13:26+0000\n" "Last-Translator: malek chalak \n" "Language-Team: none\n" @@ -3796,54 +3796,54 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "يحتاج البريد الإلكتروني إلى مستلم واحد على الأقل." -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 #, fuzzy #| msgid "Send mails" msgid "Send immediately" msgstr "إرسال الإيميل" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "المجموعات المستفيدة" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 #, fuzzy #| msgid "Reviewer" msgid "Reviewers" msgstr "المراجعين" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 #, fuzzy #| msgid "Gather your team" msgid "Other teams" msgstr "اجمع فريقك" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3855,26 +3855,26 @@ msgstr "اجمع فريقك" msgid "Proposals" msgstr "الطلبات (المقترحات)" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7657,7 +7657,7 @@ msgstr "كلمة المرور الحالية التي أدخلتها غير صح msgid "Password (current)" msgstr "كلمة السر (الحالية)" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "مقدمو الطلبات غير المقبولين" @@ -7764,6 +7764,24 @@ msgstr "" msgid "Password recovery" msgstr "استعادة كلمة السر" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "لا يوجد متحدثين" diff --git a/src/pretalx/locale/ca/LC_MESSAGES/django.po b/src/pretalx/locale/ca/LC_MESSAGES/django.po index 1b2914eb3..992ccedf2 100644 --- a/src/pretalx/locale/ca/LC_MESSAGES/django.po +++ b/src/pretalx/locale/ca/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2022-05-09 09:22+0000\n" "Last-Translator: Víctor \n" "Language-Team: none\n" @@ -3353,48 +3353,48 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3406,26 +3406,26 @@ msgstr "" msgid "Proposals" msgstr "" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -6773,7 +6773,7 @@ msgstr "" msgid "Password (current)" msgstr "" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "" @@ -6861,6 +6861,24 @@ msgstr "" msgid "Password recovery" msgstr "" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "" diff --git a/src/pretalx/locale/cs/LC_MESSAGES/django.po b/src/pretalx/locale/cs/LC_MESSAGES/django.po index 3f11c1787..61d1e839b 100644 --- a/src/pretalx/locale/cs/LC_MESSAGES/django.po +++ b/src/pretalx/locale/cs/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-11-24 04:58+0000\n" "Last-Translator: Michal Stanke \n" "Language-Team: none\n" @@ -3771,7 +3771,7 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "Seznam otázek, na které uživatel neodpověděl" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." @@ -3779,24 +3779,24 @@ msgstr "" "Šablona e-mailu není platná. Zkontrolujte prosím, jestli někde nemáte " "zbloudilé { or }, a že uvnitř bloků {} nejsou žádné mezery." -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "Neznámý zástupný symbol!" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "Ve svém e-mailu máte prázdný odkaz označený jako „{text}“!" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "E-mail musí mít alespoň jednoho příjemce." -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "Odeslat hned" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." @@ -3804,19 +3804,19 @@ msgstr "" "Pokud toto vyberete, nebudou e-maily umístěné do fronty k odeslání, ale " "budou odeslané hned." -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "Skupiny příjemců" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "Kontrolující" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "Ostatní týmy" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3828,7 +3828,7 @@ msgstr "Ostatní týmy" msgid "Proposals" msgstr "Přihlášky" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." @@ -3836,14 +3836,14 @@ msgstr "" "Vyberte přihlášky, jejichž odesilatelé mají obdržet e-mail bez ohledu na " "ostatní filtry." -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" "Vyberte přednášející, kteří mají obdržet e-mail bez ohledu na ostatní filtry." -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " @@ -3853,7 +3853,7 @@ msgstr "" "uvedete více jazyků, bude pro každého přednášejícího bude použit ten " "nejvhodnější." -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7448,7 +7448,7 @@ msgstr "Vložené aktuální heslo není správné." msgid "Password (current)" msgstr "Heslo (aktuální)" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "Nepřijatí odesilatelé přihlášek" @@ -7553,6 +7553,24 @@ msgstr "" msgid "Password recovery" msgstr "Obnova hesla" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "Žádní přednášející" diff --git a/src/pretalx/locale/de_DE/LC_MESSAGES/django.po b/src/pretalx/locale/de_DE/LC_MESSAGES/django.po index a27e10fd4..98d50eb6a 100644 --- a/src/pretalx/locale/de_DE/LC_MESSAGES/django.po +++ b/src/pretalx/locale/de_DE/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-10-21 14:40+0000\n" "Last-Translator: Tobias Kunze \n" "Language-Team: \n" @@ -3848,7 +3848,7 @@ msgid "The list of questions that the user has not answered, as bullet points" msgstr "" "Liste der Fragen, die noch nicht beantwortet wurden, als Stichpunktliste" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." @@ -3857,24 +3857,24 @@ msgstr "" "{ oder } irgendwo stehen hast, und dass innerhalb der {}-Blöcke keine " "Leerzeichen sind." -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "Unbekannter Platzhalter!" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "In deiner E-Mail gibt es einen leeren Link mit Bezeichnung „{text}“!" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "Eine E-Mail braucht mindestens einen Adressaten." -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "Sofort verschicken" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." @@ -3882,19 +3882,19 @@ msgstr "" "Mit dieser Option werden E-Mails direkt verschickt, statt zuerst in den " "Postausgang gelegt zu werden." -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "Empfängergruppen" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "Reviewer" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "Andere Teams" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3906,7 +3906,7 @@ msgstr "Andere Teams" msgid "Proposals" msgstr "Einreichungen" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." @@ -3914,7 +3914,7 @@ msgstr "" "Auswahl von Einreichungen, die diese Mail zusätzlich zu den augewählten " "Filtern erhalten sollen." -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." @@ -3922,7 +3922,7 @@ msgstr "" "Auswahl von Vortragenden, die diese Mail unabhängig von den ausgewählten " "Filtern erhalten sollen." -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " @@ -3932,7 +3932,7 @@ msgstr "" "verwendet. Bei mehreren Sprachen wird jeweils die am besten passende Sprache " "versendet." -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7522,7 +7522,7 @@ msgstr "Das eingegebene aktuelle Passwort war nicht korrekt." msgid "Password (current)" msgstr "Aktuelles Passwort" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "Nicht angenommene Einreichende" @@ -7633,6 +7633,24 @@ msgstr "" msgid "Password recovery" msgstr "Passwortwiederherstellung" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "Keine Vortragenden" diff --git a/src/pretalx/locale/de_Formal/LC_MESSAGES/django.po b/src/pretalx/locale/de_Formal/LC_MESSAGES/django.po index fa62a9515..e8d61ce1a 100644 --- a/src/pretalx/locale/de_Formal/LC_MESSAGES/django.po +++ b/src/pretalx/locale/de_Formal/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-10-21 14:40+0000\n" "Last-Translator: Tobias Kunze \n" "Language-Team: \n" @@ -3855,7 +3855,7 @@ msgid "The list of questions that the user has not answered, as bullet points" msgstr "" "Liste der Fragen, die noch nicht beantwortet wurden, als Stichpunktliste" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." @@ -3864,24 +3864,24 @@ msgstr "" "{ oder } irgendwo stehen, und dass innerhalb der {}-Blöcke keine Leerzeichen " "sind." -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "Unbekannter Platzhalter!" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "In Ihrer E-Mail gibt es einen leeren Link mit Bezeichnung „{text}“!" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "Eine E-Mail braucht mindestens einen Adressaten." -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "Sofort verschicken" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." @@ -3889,19 +3889,19 @@ msgstr "" "Mit dieser Option werden E-Mails direkt verschickt, statt zuerst in den " "Postausgang gelegt zu werden." -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "Empfängergruppen" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "Reviewer" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "Andere Teams" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3913,7 +3913,7 @@ msgstr "Andere Teams" msgid "Proposals" msgstr "Einreichungen" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." @@ -3921,7 +3921,7 @@ msgstr "" "Auswahl von Einreichungen, die diese Mail zusätzlich zu den augewählten " "Filtern erhalten sollen." -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." @@ -3929,7 +3929,7 @@ msgstr "" "Auswahl von Vortragenden, die diese Mail unabhängig von den ausgewählten " "Filtern erhalten sollen." -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " @@ -3939,7 +3939,7 @@ msgstr "" "verwendet. Bei mehreren Sprachen wird jeweils die am besten passende Sprache " "versendet." -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7540,7 +7540,7 @@ msgstr "Das eingegebene aktuelle Passwort war nicht korrekt." msgid "Password (current)" msgstr "Aktuelles Passwort" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "Nicht angenommene Einreichende" @@ -7652,6 +7652,24 @@ msgstr "" msgid "Password recovery" msgstr "Passwortwiederherstellung" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "Keine Vortragenden" diff --git a/src/pretalx/locale/django.pot b/src/pretalx/locale/django.pot index 30d9b0025..55e30232e 100644 --- a/src/pretalx/locale/django.pot +++ b/src/pretalx/locale/django.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3299,48 +3299,48 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3352,26 +3352,26 @@ msgstr "" msgid "Proposals" msgstr "" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -6650,7 +6650,7 @@ msgstr "" msgid "Password (current)" msgstr "" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "" @@ -6738,6 +6738,24 @@ msgstr "" msgid "Password recovery" msgstr "" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "" diff --git a/src/pretalx/locale/el/LC_MESSAGES/django.po b/src/pretalx/locale/el/LC_MESSAGES/django.po index e376cb74c..a9fe659c2 100644 --- a/src/pretalx/locale/el/LC_MESSAGES/django.po +++ b/src/pretalx/locale/el/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2023-10-14 10:38+0000\n" "Last-Translator: Vangelis Zacharioudakis \n" "Language-Team: none\n" @@ -3893,7 +3893,7 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "Η λίστα των ερωτήσεων που ο χρήστης δεν έχει απαντήσει, ως κουκκίδες" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." @@ -3901,50 +3901,50 @@ msgstr "" "Μη έγκυρο πρότυπο email! Βεβαιωθείτε ότι δεν έχετε αδέσποτο { ή } κάπου και " "ότι δεν υπάρχουν κενά μέσα στα μπλοκ {}." -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 #, fuzzy #| msgid "Unknown template key!" msgid "Unknown placeholder!" msgstr "Άγνωστο κλειδί προτύπου!" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "Έχετε έναν κενό σύνδεσμο στο email σας, με την ετικέτα \"{text}\"!" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "Ένα email πρέπει να έχει τουλάχιστον έναν παραλήπτη." -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 #, fuzzy #| msgid "Send mails" msgid "Send immediately" msgstr "Στείλτε mail" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "Ομάδες παραληπτών" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 #, fuzzy #| msgid "Reviewer" msgid "Reviewers" msgstr "Κριτής" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 #, fuzzy #| msgid "Gather your team" msgid "Other teams" msgstr "Συγκεντρώστε την ομάδα σας" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3956,7 +3956,7 @@ msgstr "Συγκεντρώστε την ομάδα σας" msgid "Proposals" msgstr "Προτάσεις" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." @@ -3964,7 +3964,7 @@ msgstr "" "Επιλέξτε προτάσεις που θα πρέπει να λαμβάνουν το email ανεξάρτητα από τα " "άλλα φίλτρα." -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 #, fuzzy #| msgid "" #| "Select proposals that should receive the email regardless of the other " @@ -3976,7 +3976,7 @@ msgstr "" "Επιλέξτε προτάσεις που θα πρέπει να λαμβάνουν το email ανεξάρτητα από τα " "άλλα φίλτρα." -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " @@ -3986,7 +3986,7 @@ msgstr "" "μηνύματα ηλεκτρονικού ταχυδρομείου. Εάν παρέχετε πολλές γλώσσες, θα " "χρησιμοποιηθεί η καλύτερη προσαρμογή για κάθε ομιλητή." -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7747,7 +7747,7 @@ msgstr "Ο κωδικός που μόλις εισήγατε δεν ήταν σ msgid "Password (current)" msgstr "Κωδικός πρόσβασης (τρέχων)" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "Μη-αποδεκτοί αιτούντες" @@ -7860,6 +7860,24 @@ msgstr "" msgid "Password recovery" msgstr "Ανάκτηση κωδικού πρόσβασης" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "Χωρίς ηχεία" diff --git a/src/pretalx/locale/es/LC_MESSAGES/django.po b/src/pretalx/locale/es/LC_MESSAGES/django.po index 9d6cbc657..d3a4cf0f9 100644 --- a/src/pretalx/locale/es/LC_MESSAGES/django.po +++ b/src/pretalx/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2023-09-08 12:47+0000\n" "Last-Translator: Pedro Galvan \n" "Language-Team: none\n" @@ -3900,56 +3900,56 @@ msgid "The list of questions that the user has not answered, as bullet points" msgstr "" "La lista de preguntas que el usuario no ha contestado, en forma de viñetas" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 #, fuzzy #| msgid "Unknown template key!" msgid "Unknown placeholder!" msgstr "¡Clave de plantilla desconocida!" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "Un correo electrónico debe tener al menos un destinatario." -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 #, fuzzy #| msgid "Send mails" msgid "Send immediately" msgstr "Enviar mails" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "Grupos de destinatarios" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 #, fuzzy #| msgid "Reviewer" msgid "Reviewers" msgstr "Crítico" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 #, fuzzy #| msgid "Gather your team" msgid "Other teams" msgstr "Reúne a tu equipo" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3961,7 +3961,7 @@ msgstr "Reúne a tu equipo" msgid "Proposals" msgstr "Propuestas" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." @@ -3969,7 +3969,7 @@ msgstr "" "Seleccionar las propuestas que tendrían que recibir un correo electrónico " "independientemente de los otros filtros." -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 #, fuzzy #| msgid "" #| "Select proposals that should receive the email regardless of the other " @@ -3981,7 +3981,7 @@ msgstr "" "Seleccionar las propuestas que tendrían que recibir un correo electrónico " "independientemente de los otros filtros." -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " @@ -3991,7 +3991,7 @@ msgstr "" "electrónicos. Si introduce varios idiomas, se utilizará el más adecuado para " "cada orador." -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7780,7 +7780,7 @@ msgstr "La contraseña actual que ha introducido no es correcta." msgid "Password (current)" msgstr "Contraseña (actual)" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "Proponentes no acceptados" @@ -7888,6 +7888,24 @@ msgstr "" msgid "Password recovery" msgstr "Recuperar contraseña" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "Ningún ponente" diff --git a/src/pretalx/locale/es_MX/LC_MESSAGES/django.po b/src/pretalx/locale/es_MX/LC_MESSAGES/django.po index 07be12640..4404d6ba1 100644 --- a/src/pretalx/locale/es_MX/LC_MESSAGES/django.po +++ b/src/pretalx/locale/es_MX/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2021-02-03 16:17+0000\n" "Last-Translator: Bryan Hernandez \n" "Language-Team: none\n" @@ -3578,50 +3578,50 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 #, fuzzy #| msgid "Speakers" msgid "Reviewers" msgstr "Conferencistas" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3633,26 +3633,26 @@ msgstr "" msgid "Proposals" msgstr "" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7088,7 +7088,7 @@ msgstr "" msgid "Password (current)" msgstr "" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "" @@ -7180,6 +7180,24 @@ msgstr "" msgid "Password recovery" msgstr "" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "No hay conferencistas" diff --git a/src/pretalx/locale/fr_FR/LC_MESSAGES/django.po b/src/pretalx/locale/fr_FR/LC_MESSAGES/django.po index de85d0891..42bc29f67 100644 --- a/src/pretalx/locale/fr_FR/LC_MESSAGES/django.po +++ b/src/pretalx/locale/fr_FR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-10-01 09:55+0000\n" "Last-Translator: Harrissou Sant-anna \n" "Language-Team: \n" @@ -3891,7 +3891,7 @@ msgstr "" "La liste des questions auxquelles l'utilisateur n'a pas répondu, sous forme " "de puces" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." @@ -3900,24 +3900,24 @@ msgstr "" "{ ou } parasites quelque part, et qu'il n'y a pas d'espaces à l'intérieur " "des blocs {}." -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "Paramètre générique inconnu !" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "Vous avez un lien vide dans votre courriel, intitulé “{text}” !" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "Un courriel doit avoir au moins un destinataire." -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "Envoyer immédiatement" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." @@ -3925,19 +3925,19 @@ msgstr "" "Si vous cochez ceci, les courriels seront envoyés immédiatement, au lieu " "d'être placés dans la boîte d'envoi." -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "Groupes de destinataires" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "Évaluateurs" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "Autres équipes" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3949,7 +3949,7 @@ msgstr "Autres équipes" msgid "Proposals" msgstr "Propositions" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." @@ -3957,7 +3957,7 @@ msgstr "" "Sélectionnez les propositions qui doivent recevoir le courrier électronique " "indépendamment des autres filtres." -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." @@ -3965,7 +3965,7 @@ msgstr "" "Sélectionnez les intervenants qui doivent recevoir le courriel " "indépendamment des autres filtres." -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " @@ -3975,7 +3975,7 @@ msgstr "" "courriels. Si vous indiquez plusieurs langues, c'est la langue la mieux " "adaptée à chaque locuteur qui sera utilisée." -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7627,7 +7627,7 @@ msgstr "Le mot de passe que vous avez entré est incorrect." msgid "Password (current)" msgstr "Mot de passe (actuel)" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "Intervenants pas encore acceptés" @@ -7737,6 +7737,24 @@ msgstr "" msgid "Password recovery" msgstr "Récupération du mot de passe" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "Pas d'intervenants" diff --git a/src/pretalx/locale/id/LC_MESSAGES/django.po b/src/pretalx/locale/id/LC_MESSAGES/django.po index f60410cbd..943867895 100644 --- a/src/pretalx/locale/id/LC_MESSAGES/django.po +++ b/src/pretalx/locale/id/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2023-02-28 19:43+0000\n" "Last-Translator: Robert Sim \n" "Language-Team: none\n" @@ -3299,48 +3299,48 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3352,26 +3352,26 @@ msgstr "" msgid "Proposals" msgstr "" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -6633,7 +6633,7 @@ msgstr "" msgid "Password (current)" msgstr "" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "" @@ -6721,6 +6721,24 @@ msgstr "" msgid "Password recovery" msgstr "" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "" diff --git a/src/pretalx/locale/it/LC_MESSAGES/django.po b/src/pretalx/locale/it/LC_MESSAGES/django.po index 364f9eee9..d42363887 100644 --- a/src/pretalx/locale/it/LC_MESSAGES/django.po +++ b/src/pretalx/locale/it/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-04-07 16:33+0000\n" "Last-Translator: Luca Delucchi \n" "Language-Team: none\n" @@ -3838,7 +3838,7 @@ msgid "The list of questions that the user has not answered, as bullet points" msgstr "" "Una lista di domande a cui l'utente non ha risposto, in un elenco puntato" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." @@ -3846,24 +3846,24 @@ msgstr "" "Modello di mail non valido! Controlla di non avere lasciato { o } aperte o " "chiuse e che non ci sono spazi nei blocchi di {}." -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "Segnaposto sconosciuto!" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "C'è un link vuoto nella vostra email, denominato “{text}”!" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "La mail deve avere almeno un destinatario." -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "Invia subito" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." @@ -3871,19 +3871,19 @@ msgstr "" "Se scegli questa opzione, le mail saranno inviate subito invece di essere " "messe nei messaggi da inviare." -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "Gruppi di destinatari" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "Revisori" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "Altri team" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3895,19 +3895,19 @@ msgstr "Altri team" msgid "Proposals" msgstr "Proposte" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "Scegli proposte che riceveranno la mail a prescindere da altri filtri." -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "Scegli latori che riceveranno la mail a prescindere da altri filtri." -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " @@ -3916,7 +3916,7 @@ msgstr "" "Se specifichi solo una lingua, sarà usata per tutte le mail. Se specifichi " "più di una lingua, sarà usata quella più adatta per ogni relatore." -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7555,7 +7555,7 @@ msgstr "La password che hai inserito non è corretta." msgid "Password (current)" msgstr "Password (attuale)" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "Contributori non accettati" @@ -7663,6 +7663,24 @@ msgstr "" msgid "Password recovery" msgstr "Recupero della password" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "Non ci sono relatori" diff --git a/src/pretalx/locale/ja_JP/LC_MESSAGES/django.po b/src/pretalx/locale/ja_JP/LC_MESSAGES/django.po index 4eb98b739..3ca03ccd7 100644 --- a/src/pretalx/locale/ja_JP/LC_MESSAGES/django.po +++ b/src/pretalx/locale/ja_JP/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2020-09-28 02:42+0000\n" "Last-Translator: Satoshi IIDA \n" "Language-Team: \n" @@ -3940,54 +3940,54 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "質問への回答がまだありません。" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "メールには、少なくとも1人の受信者が必要です。" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 #, fuzzy #| msgid "Send mails" msgid "Send immediately" msgstr "メールを送信" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "受信者グループ" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 #, fuzzy #| msgid "Reviewer" msgid "Reviewers" msgstr "レビュアー" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 #, fuzzy #| msgid "Gather your team" msgid "Other teams" msgstr "チームを集める" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3999,26 +3999,26 @@ msgstr "チームを集める" msgid "Proposals" msgstr "提案" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7795,7 +7795,7 @@ msgstr "入力した現在のパスワードが間違っています。" msgid "Password (current)" msgstr "パスワード(現在)" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "承認されていない投稿者" @@ -7912,6 +7912,24 @@ msgstr "" msgid "Password recovery" msgstr "パスワードリカバリ" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "登壇者なし" diff --git a/src/pretalx/locale/ko/LC_MESSAGES/django.po b/src/pretalx/locale/ko/LC_MESSAGES/django.po index ed2936899..23ac707b6 100644 --- a/src/pretalx/locale/ko/LC_MESSAGES/django.po +++ b/src/pretalx/locale/ko/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-04-25 21:24+0000\n" "Last-Translator: Han Lee | 이한결 \n" "Language-Team: none\n" @@ -3551,48 +3551,48 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3604,26 +3604,26 @@ msgstr "" msgid "Proposals" msgstr "" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -6956,7 +6956,7 @@ msgstr "" msgid "Password (current)" msgstr "" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "" @@ -7044,6 +7044,24 @@ msgstr "" msgid "Password recovery" msgstr "" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "" diff --git a/src/pretalx/locale/nl/LC_MESSAGES/django.po b/src/pretalx/locale/nl/LC_MESSAGES/django.po index e824f58ec..602292710 100644 --- a/src/pretalx/locale/nl/LC_MESSAGES/django.po +++ b/src/pretalx/locale/nl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-12-03 16:19+0000\n" "Last-Translator: r spoor \n" "Language-Team: none\n" @@ -3820,7 +3820,7 @@ msgstr "" "De lijst met vragen die de gebruiker niet heeft beantwoord, als " "opsommingstekens" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." @@ -3828,24 +3828,24 @@ msgstr "" "Ongeldige email sjabloon! Controleer of je niet ergens een verdwaalde { or } " "hebt, en dat er geen spaties in de {} blokken staan." -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "Onbekende placeholder!" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "Je hebt een lege link in je e-mail, met de label “{text}”!" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "Een email moet minstens één ontvanger hebben." -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "Direct versturen" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." @@ -3853,19 +3853,19 @@ msgstr "" "Als je dit instelt, worden emails direct verzonden, in plaats van in de " "outbox geplaatst." -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "Ontvangst groepen" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "Recencenten" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "Andere teams" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3877,21 +3877,21 @@ msgstr "Andere teams" msgid "Proposals" msgstr "Voorstellen" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" "Selecteer voorstellen die de email moeten ontvangen, ongeacht andere filters." -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" "Selecteer sprekers die de email moeten ontvangen, ongeacht de andere filters." -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " @@ -3901,7 +3901,7 @@ msgstr "" "emails. Als je meerder talen instelt, wordt de beste keus voor iedere " "spreker gemaakt." -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7486,7 +7486,7 @@ msgstr "Het wachtwoord dat u momenteel hebt ingevoerd, is niet correct." msgid "Password (current)" msgstr "Wachtwoord (huidig)" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "Niet-geaccepteerde indieners" @@ -7595,6 +7595,24 @@ msgstr "" msgid "Password recovery" msgstr "Wachtwoordherstel" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "Geen sprekers" diff --git a/src/pretalx/locale/pt_BR/LC_MESSAGES/django.po b/src/pretalx/locale/pt_BR/LC_MESSAGES/django.po index 841119850..0a5bc39d3 100644 --- a/src/pretalx/locale/pt_BR/LC_MESSAGES/django.po +++ b/src/pretalx/locale/pt_BR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-12-12 23:54+0000\n" "Last-Translator: Jayme Klein \n" "Language-Team: none\n" @@ -3840,7 +3840,7 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "A lista de perguntas que o usuário não respondeu, como marcadores" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." @@ -3848,47 +3848,47 @@ msgstr "" "Modelo de e-mail inválido! Por favor, verifique se não tem chaves ({}) " "perdidas em algum lugar. E que não há espaços dentro dos blocos {}." -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 #, fuzzy #| msgid "Unknown template key!" msgid "Unknown placeholder!" msgstr "Chave de template desconhecida!" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "Você possui um link vazio no seu e-mail, etiquetado como \"{text}\"!" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "Um e-mail precisa ter pelo menos um destinatário." -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 #, fuzzy msgid "Send immediately" msgstr "Enviar emails" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "Grupos de destinatários" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 #, fuzzy msgid "Reviewers" msgstr "Revisor" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 #, fuzzy msgid "Other teams" msgstr "Monte sua equipe" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3900,7 +3900,7 @@ msgstr "Monte sua equipe" msgid "Proposals" msgstr "Propostas" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." @@ -3908,7 +3908,7 @@ msgstr "" "Selecione as propostas que devem receber o e-mail independentemente dos " "outros filtros." -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 #, fuzzy msgid "" "Select speakers that should receive the email regardless of the other " @@ -3917,7 +3917,7 @@ msgstr "" "Selecione as propostas que devem receber o e-mail independentemente dos " "outros filtros." -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " @@ -3927,7 +3927,7 @@ msgstr "" "mails. Se você fornecer vários idiomas, será usado o melhor ajuste para cada " "palestrante." -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7604,7 +7604,7 @@ msgstr "A senha atual que você digitou não estava correta." msgid "Password (current)" msgstr "Senha (atual)" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "Remetentes não aceitos" @@ -7712,6 +7712,24 @@ msgstr "" msgid "Password recovery" msgstr "Recuperação de senha" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "Sem palestrante" diff --git a/src/pretalx/locale/pt_PT/LC_MESSAGES/django.po b/src/pretalx/locale/pt_PT/LC_MESSAGES/django.po index a80cad157..36ade6cfc 100644 --- a/src/pretalx/locale/pt_PT/LC_MESSAGES/django.po +++ b/src/pretalx/locale/pt_PT/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-06-13 06:39+0000\n" "Last-Translator: Francisco \n" "Language-Team: none\n" @@ -3812,7 +3812,7 @@ msgid "The list of questions that the user has not answered, as bullet points" msgstr "" "A lista de perguntas que o utilizador não respondeu, como lista não ordenada" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." @@ -3820,50 +3820,50 @@ msgstr "" "Modelo de email inválido! Verifique se não tem { ou } por abrir ou fechar em " "algum lugar e se não há espaços dentro dos blocos {}." -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 #, fuzzy #| msgid "Unknown template key!" msgid "Unknown placeholder!" msgstr "Chave de modelo desconhecida!" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "Tem um link vazio no seu e -mail, etiquetado como \"{text}\"!" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "Um e-mail precisa de ter pelo menos um destinatário." -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 #, fuzzy #| msgid "Send mails" msgid "Send immediately" msgstr "Enviar e-mails" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "Grupos de destinatários" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 #, fuzzy #| msgid "Reviewer" msgid "Reviewers" msgstr "Revisor" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 #, fuzzy #| msgid "Gather your team" msgid "Other teams" msgstr "Reúna a sua equipa" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3875,7 +3875,7 @@ msgstr "Reúna a sua equipa" msgid "Proposals" msgstr "Propostas" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." @@ -3883,7 +3883,7 @@ msgstr "" "Selecione propostas que devem receber o email, independentemente dos outros " "filtros." -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 #, fuzzy #| msgid "" #| "Select proposals that should receive the email regardless of the other " @@ -3895,7 +3895,7 @@ msgstr "" "Selecione propostas que devem receber o email, independentemente dos outros " "filtros." -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " @@ -3905,7 +3905,7 @@ msgstr "" "mails. Se fornecer várias línguas, a língua mais adequada para cada orador " "será utilizada." -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7622,7 +7622,7 @@ msgstr "A senha atual que inseriu não está correta." msgid "Password (current)" msgstr "Senha (atual)" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "Utilizadores que submeteram dados não aceites" @@ -7728,6 +7728,24 @@ msgstr "" msgid "Password recovery" msgstr "Recuperação de senha" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "Sem oradores" diff --git a/src/pretalx/locale/ru/LC_MESSAGES/django.po b/src/pretalx/locale/ru/LC_MESSAGES/django.po index 9b4ecb2ca..cf845d413 100644 --- a/src/pretalx/locale/ru/LC_MESSAGES/django.po +++ b/src/pretalx/locale/ru/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-10-28 11:26+0000\n" "Last-Translator: aschepilova \n" "Language-Team: none\n" @@ -3364,48 +3364,48 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3417,26 +3417,26 @@ msgstr "" msgid "Proposals" msgstr "" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -6729,7 +6729,7 @@ msgstr "" msgid "Password (current)" msgstr "" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "" @@ -6817,6 +6817,24 @@ msgstr "" msgid "Password recovery" msgstr "" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "" diff --git a/src/pretalx/locale/sl/LC_MESSAGES/django.po b/src/pretalx/locale/sl/LC_MESSAGES/django.po index c9c58ba8f..45cdb8230 100644 --- a/src/pretalx/locale/sl/LC_MESSAGES/django.po +++ b/src/pretalx/locale/sl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-04-08 12:39+0000\n" "Last-Translator: Tobias Kunze \n" "Language-Team: none\n" @@ -3448,48 +3448,48 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3501,26 +3501,26 @@ msgstr "" msgid "Proposals" msgstr "" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -6852,7 +6852,7 @@ msgstr "" msgid "Password (current)" msgstr "" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "" @@ -6940,6 +6940,24 @@ msgstr "" msgid "Password recovery" msgstr "" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "" diff --git a/src/pretalx/locale/sv/LC_MESSAGES/django.po b/src/pretalx/locale/sv/LC_MESSAGES/django.po index c1ac1a3d2..ce8fbde93 100644 --- a/src/pretalx/locale/sv/LC_MESSAGES/django.po +++ b/src/pretalx/locale/sv/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-04-20 13:14+0000\n" "Last-Translator: jving \n" "Language-Team: none\n" @@ -3502,48 +3502,48 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3555,26 +3555,26 @@ msgstr "" msgid "Proposals" msgstr "" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -6913,7 +6913,7 @@ msgstr "" msgid "Password (current)" msgstr "" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "" @@ -7001,6 +7001,24 @@ msgstr "" msgid "Password recovery" msgstr "" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "" diff --git a/src/pretalx/locale/vi/LC_MESSAGES/django.po b/src/pretalx/locale/vi/LC_MESSAGES/django.po index b3510aa11..f50c3b33d 100644 --- a/src/pretalx/locale/vi/LC_MESSAGES/django.po +++ b/src/pretalx/locale/vi/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-12-16 12:18+0000\n" "Last-Translator: Tobias Kunze \n" "Language-Team: none\n" @@ -1929,7 +1929,8 @@ msgstr "Mật khẩu mới (nhập lại)" #: pretalx/common/text/phrases.py:93 msgid "You entered two different passwords. Please enter the same one twice!" -msgstr "Bạn đã nhập hai mật khẩu khác nhau. Vui lòng nhập cùng một cái hai lần!" +msgstr "" +"Bạn đã nhập hai mật khẩu khác nhau. Vui lòng nhập cùng một cái hai lần!" #: pretalx/common/text/phrases.py:95 msgctxt "noun / heading" @@ -2232,7 +2233,8 @@ msgstr "CSS tuỳ chỉnh cho hội thảo" msgid "" "Upload a custom CSS file if changing the primary colour is not sufficient " "for you." -msgstr "Tải lên tệp CSS tùy chỉnh nếu việc thay đổi màu chính không đủ với bạn." +msgstr "" +"Tải lên tệp CSS tùy chỉnh nếu việc thay đổi màu chính không đủ với bạn." #: pretalx/event/models/event.py:229 msgid "Logo" @@ -3758,48 +3760,48 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 msgid "Send immediately" msgstr "" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 msgid "Reviewers" msgstr "" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 msgid "Other teams" msgstr "" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3811,26 +3813,26 @@ msgstr "" msgid "Proposals" msgstr "" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -3966,7 +3968,8 @@ msgstr "Điểm đánh giá trung bình (average), nếu đã có đánh giá" #: pretalx/orga/forms/schedule.py:161 msgid "Resources provided by the speaker, either as links or as uploaded files" -msgstr "Tài nguyên do diễn giả cung cấp, dưới dạng liên kết hoặc tệp đã tải lên" +msgstr "" +"Tài nguyên do diễn giả cung cấp, dưới dạng liên kết hoặc tệp đã tải lên" #: pretalx/orga/forms/speaker.py:16 msgid "With accepted proposals" @@ -4077,8 +4080,8 @@ msgid "" msgstr "" "Các bản dịch này không được nhóm pretalx duy trì. Chúng tôi không thể đảm " "bảo tính chính xác của chúng và các tính năng mới hoặc mới thay đổi gần đây " -"có thể không được dịch và sẽ hiển thị bằng tiếng Anh. Bạn có thể đóng góp vào các bản dịch." +"có thể không được dịch và sẽ hiển thị bằng tiếng Anh. Bạn có thể đóng góp vào các bản dịch." #: pretalx/orga/phrases.py:7 msgid "The event end cannot be before the start." @@ -4093,8 +4096,8 @@ msgid "" "Choose how the frontpage header banner will be styled. Pattern source: heropatterns.com, CC BY 4.0." msgstr "" -"Chọn cách tạo kiểu cho biểu ngữ tiêu đề trang chủ. Nguồn mẫu: heropatterns.com, CC BY 4.0." +"Chọn cách tạo kiểu cho biểu ngữ tiêu đề trang chủ. Nguồn mẫu: heropatterns.com, CC BY 4.0." #: pretalx/orga/phrases.py:13 msgid "Schedule display format" @@ -7135,7 +7138,7 @@ msgstr "" msgid "Password (current)" msgstr "" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "" @@ -7223,6 +7226,24 @@ msgstr "" msgid "Password recovery" msgstr "" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "" diff --git a/src/pretalx/locale/zh_Hans/LC_MESSAGES/django.po b/src/pretalx/locale/zh_Hans/LC_MESSAGES/django.po index 5107a1da4..1ecb701ec 100644 --- a/src/pretalx/locale/zh_Hans/LC_MESSAGES/django.po +++ b/src/pretalx/locale/zh_Hans/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2023-05-27 12:16+0000\n" "Last-Translator: Joel (Jiawei) Wang \n" "Language-Team: none\n" @@ -3674,7 +3674,7 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "用户未回答的问题清单,作为项目符号列出。" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." @@ -3682,50 +3682,50 @@ msgstr "" "无效的邮件模板!请检查您是否在某处使用了杂散的 { 或 },并且在 {} 块内是否没有" "空格。" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 #, fuzzy #| msgid "Unknown template key!" msgid "Unknown placeholder!" msgstr "未知的模板键!" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "你的电子邮件中有一个空链接,标注为\"{text}\"!" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "一封电子邮件至少需要一个收件人。" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 #, fuzzy #| msgid "Send mails" msgid "Send immediately" msgstr "发送邮件" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "受方群体" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 #, fuzzy #| msgid "Reviewer" msgid "Reviewers" msgstr "评论员" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 #, fuzzy #| msgid "Gather your team" msgid "Other teams" msgstr "组织您的团队" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3737,13 +3737,13 @@ msgstr "组织您的团队" msgid "Proposals" msgstr "提案" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "选择应该收到电子邮件的提议,而不考虑其它过滤器。" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 #, fuzzy #| msgid "" #| "Select proposals that should receive the email regardless of the other " @@ -3753,7 +3753,7 @@ msgid "" "filters." msgstr "选择应该收到电子邮件的提议,而不考虑其它过滤器。" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " @@ -3762,7 +3762,7 @@ msgstr "" "如果您只提供一种语言,那么所有的邮件都将使用该语言。如果您提供多种语言,将会" "根据每位收件人的最佳语言进行使用。" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7308,7 +7308,7 @@ msgstr "您输入的当前密码不正确。" msgid "Password (current)" msgstr "密码(当前)" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "未被接受的提交者" @@ -7410,6 +7410,24 @@ msgstr "" msgid "Password recovery" msgstr "密码恢复" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "没有扬声器" diff --git a/src/pretalx/locale/zh_Hant/LC_MESSAGES/django.po b/src/pretalx/locale/zh_Hant/LC_MESSAGES/django.po index 350c29365..6177a817e 100644 --- a/src/pretalx/locale/zh_Hant/LC_MESSAGES/django.po +++ b/src/pretalx/locale/zh_Hant/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-10 16:16+0000\n" +"POT-Creation-Date: 2024-12-16 12:26+0000\n" "PO-Revision-Date: 2024-06-01 00:25+0000\n" "Last-Translator: Yucheng Lin \n" "Language-Team: none\n" @@ -3650,54 +3650,54 @@ msgstr "" msgid "The list of questions that the user has not answered, as bullet points" msgstr "目前所有問題都還沒有人回答。" -#: pretalx/orga/forms/mails.py:138 +#: pretalx/orga/forms/mails.py:145 msgid "" "Invalid email template! Please check that you don’t have stray { or } " "somewhere, and that there are no spaces inside the {} blocks." msgstr "" -#: pretalx/orga/forms/mails.py:145 +#: pretalx/orga/forms/mails.py:152 msgid "Unknown placeholder!" msgstr "" -#: pretalx/orga/forms/mails.py:165 +#: pretalx/orga/forms/mails.py:172 #, python-brace-format msgid "You have an empty link in your email, labeled “{text}”!" msgstr "你的電子郵件中有一個空連結,標記為「{text}!" -#: pretalx/orga/forms/mails.py:220 +#: pretalx/orga/forms/mails.py:227 msgid "An email needs to have at least one recipient." msgstr "電子郵件至少需要一名收件者。" -#: pretalx/orga/forms/mails.py:255 +#: pretalx/orga/forms/mails.py:262 #, fuzzy #| msgid "Send mails" msgid "Send immediately" msgstr "傳送郵件" -#: pretalx/orga/forms/mails.py:258 +#: pretalx/orga/forms/mails.py:265 msgid "" "If you check this, the emails will be sent immediately, instead of being put " "in the outbox." msgstr "" -#: pretalx/orga/forms/mails.py:275 +#: pretalx/orga/forms/mails.py:282 msgid "Recipient groups" msgstr "收件者群組" -#: pretalx/orga/forms/mails.py:292 +#: pretalx/orga/forms/mails.py:299 #, fuzzy #| msgid "Reviewer" msgid "Reviewers" msgstr "檢閱者" -#: pretalx/orga/forms/mails.py:296 +#: pretalx/orga/forms/mails.py:303 #, fuzzy #| msgid "Gather your team" msgid "Other teams" msgstr "組織您的團隊" -#: pretalx/orga/forms/mails.py:341 pretalx/orga/forms/mails.py:345 +#: pretalx/orga/forms/mails.py:348 pretalx/orga/forms/mails.py:352 #: pretalx/orga/templates/orga/admin/user_detail.html:122 #: pretalx/orga/templates/orga/cfp/submission_type_view.html:49 #: pretalx/orga/templates/orga/cfp/track_view.html:51 @@ -3709,26 +3709,26 @@ msgstr "組織您的團隊" msgid "Proposals" msgstr "議程投稿" -#: pretalx/orga/forms/mails.py:343 +#: pretalx/orga/forms/mails.py:350 msgid "" "Select proposals that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:352 +#: pretalx/orga/forms/mails.py:359 msgid "" "Select speakers that should receive the email regardless of the other " "filters." msgstr "" -#: pretalx/orga/forms/mails.py:379 +#: pretalx/orga/forms/mails.py:386 msgid "" "If you provide only one language, that language will be used for all emails. " "If you provide multiple languages, the best fit for each speaker will be " "used." msgstr "" -#: pretalx/orga/forms/mails.py:518 pretalx/orga/templates/orga/base.html:263 +#: pretalx/orga/forms/mails.py:525 pretalx/orga/templates/orga/base.html:263 #: pretalx/orga/templates/orga/cfp/track_view.html:7 #: pretalx/orga/templates/orga/cfp/track_view.html:25 #: pretalx/submission/forms/submission.py:265 @@ -7279,7 +7279,7 @@ msgstr "" msgid "Password (current)" msgstr "現在的密碼" -#: pretalx/person/forms.py:395 pretalx/person/forms.py:431 +#: pretalx/person/forms.py:394 pretalx/person/forms.py:430 msgid "Non-accepted submitters" msgstr "" @@ -7372,6 +7372,24 @@ msgstr "" msgid "Password recovery" msgstr "回復密碼" +#: pretalx/person/models/user.py:477 +#, python-brace-format +msgid "" +"Hi {name},\n" +"\n" +"Your pretalx account password was just changed.\n" +"\n" +"If you did not change your password, please contact the site administration " +"immediately.\n" +"\n" +"All the best,\n" +"the pretalx team" +msgstr "" + +#: pretalx/person/models/user.py:489 +msgid "[pretalx] Password changed" +msgstr "" + #: pretalx/schedule/ascii.py:24 msgid "No speakers" msgstr "沒有講者" From d8db09392f7acd6653943c5e4ee83bc8570b0c23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 11:22:58 +0000 Subject: [PATCH 04/14] Bump nanoid from 3.3.6 to 3.3.8 in /src/pretalx/frontend/schedule-editor Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.6 to 3.3.8. - [Release notes](https://github.com/ai/nanoid/releases) - [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md) - [Commits](https://github.com/ai/nanoid/compare/3.3.6...3.3.8) --- updated-dependencies: - dependency-name: nanoid dependency-type: indirect ... Signed-off-by: dependabot[bot] --- .../frontend/schedule-editor/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/pretalx/frontend/schedule-editor/package-lock.json b/src/pretalx/frontend/schedule-editor/package-lock.json index 525870467..d1ce8a729 100644 --- a/src/pretalx/frontend/schedule-editor/package-lock.json +++ b/src/pretalx/frontend/schedule-editor/package-lock.json @@ -4739,9 +4739,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -10787,9 +10787,9 @@ "dev": true }, "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==" }, "natural-compare": { "version": "1.4.0", From b74f573beb12fb0c5c309262e2826e07984cfc4f Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Mon, 16 Dec 2024 13:35:02 +0100 Subject: [PATCH 05/14] Remove pytest-rerunfailures --- .github/workflows/tests.yml | 1 - pyproject.toml | 1 - src/tests/common/test_common_auth.py | 2 -- src/tests/orga/views/test_orga_views_cfp.py | 1 - 4 files changed, 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7f0f121db..498d873be 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -78,7 +78,6 @@ jobs: python -m pytest \ -nauto -p no:sugar \ --junitxml=pytest.xml \ - --reruns 3 \ --cov-report=term-missing:skip-covered \ tests | tee pytest-coverage.txt env: diff --git a/pyproject.toml b/pyproject.toml index 2dde99abd..1327cd977 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -88,7 +88,6 @@ dev = [ "pytest-cov", "pytest-django", "pytest-mock", - "pytest-rerunfailures", "pytest-sugar", "pytest-xdist", "pywatchman", diff --git a/src/tests/common/test_common_auth.py b/src/tests/common/test_common_auth.py index 5a1a1d3ce..b2985703e 100644 --- a/src/tests/common/test_common_auth.py +++ b/src/tests/common/test_common_auth.py @@ -3,7 +3,6 @@ from rest_framework.authtoken.models import Token -@pytest.mark.flaky(reruns=3) @pytest.mark.django_db def test_can_see_schedule_with_bearer_token(event, schedule, slot, orga_user): Token.objects.create(user=orga_user) @@ -15,7 +14,6 @@ def test_can_see_schedule_with_bearer_token(event, schedule, slot, orga_user): assert slot.submission.title in response.content.decode() -@pytest.mark.flaky(reruns=3) @pytest.mark.django_db def test_cannot_see_schedule_with_wrong_bearer_token(event, schedule, slot, orga_user): Token.objects.create(user=orga_user) diff --git a/src/tests/orga/views/test_orga_views_cfp.py b/src/tests/orga/views/test_orga_views_cfp.py index 72dbb74d8..86445b119 100644 --- a/src/tests/orga/views/test_orga_views_cfp.py +++ b/src/tests/orga/views/test_orga_views_cfp.py @@ -76,7 +76,6 @@ def test_edit_cfp_flow(orga_client, event): assert response.status_code == 200, response.content.decode() -@pytest.mark.flaky(reruns=3) @pytest.mark.django_db def test_make_submission_type_default( orga_client, submission_type, default_submission_type From fe5b486a19a88029cc4235ad707786d758aa9f36 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Mon, 16 Dec 2024 13:35:16 +0100 Subject: [PATCH 06/14] Fix code style From a4f6ec94aecd4a1a3ec671578407c7592230881a Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Mon, 16 Dec 2024 14:28:34 +0100 Subject: [PATCH 07/14] Show avatar clear checkbox when allowed fixes #1919 --- .../templates/common/widgets/image_input.html | 6 +++--- src/pretalx/person/forms.py | 1 + src/pretalx/static/common/css/_forms.css | 17 +++++++++++++++++ src/pretalx/static/common/css/avatar.css | 5 ----- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/pretalx/common/templates/common/widgets/image_input.html b/src/pretalx/common/templates/common/widgets/image_input.html index 3495a5566..06864985f 100644 --- a/src/pretalx/common/templates/common/widgets/image_input.html +++ b/src/pretalx/common/templates/common/widgets/image_input.html @@ -6,8 +6,8 @@
{% endif %} -{% if widget.is_initial %}{{ widget.initial_text }}: {{ widget.value }}{% if not widget.required %} - - {% endif %}
+{% if widget.is_initial %}{{ widget.initial_text }}: {{ widget.value }}{% if not widget.is_required %} + + {% endif %}
{{ widget.input_text }}:{% endif %} diff --git a/src/pretalx/person/forms.py b/src/pretalx/person/forms.py index 0d625a636..613d62a1e 100644 --- a/src/pretalx/person/forms.py +++ b/src/pretalx/person/forms.py @@ -217,6 +217,7 @@ def __init__(self, *args, name=None, **kwargs): self.fields.pop("get_gravatar", None) elif "avatar" in self.fields: self.fields["avatar"].required = False + self.fields["avatar"].widget.is_required = False if self.is_bound and not self.is_valid() and "availabilities" in self.errors: # Replace self.data with a version that uses initial["availabilities"] # in order to have event and timezone data available diff --git a/src/pretalx/static/common/css/_forms.css b/src/pretalx/static/common/css/_forms.css index 4dc144bb4..dfb501a5b 100644 --- a/src/pretalx/static/common/css/_forms.css +++ b/src/pretalx/static/common/css/_forms.css @@ -365,6 +365,23 @@ input[type="number"] { box-shadow: var(--shadow-light); } } +.form-image-initial { + display: inline-flex; + & > a { + padding-left: 0.25rem; + } + &:has(.form-image-clear) { + padding-bottom: 0.5rem; + } + .form-image-clear { + display: inline-flex; + margin-left: 0.5rem; + input[type="checkbox"] + label { + padding-top: 0; + padding-bottom: 0; + } + } +} .input-group { position: relative; diff --git a/src/pretalx/static/common/css/avatar.css b/src/pretalx/static/common/css/avatar.css index 4c71164ca..6793123ff 100644 --- a/src/pretalx/static/common/css/avatar.css +++ b/src/pretalx/static/common/css/avatar.css @@ -15,14 +15,9 @@ padding-top: 8px; - input[type="checkbox"] { - margin: 0 2px 0 12px; - } - input[type="file"] { display: inline-block; width: auto; - margin-left: 2px; } } } From f7e3b21613d1dbd0de342aa4be8892f7bb65878d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 14:40:45 +0000 Subject: [PATCH 08/14] Update django-i18nfield requirement from ~=1.9.0 to >=1.9,<1.11 Updates the requirements on [django-i18nfield](https://github.com/raphaelm/django-i18nfield) to permit the latest version. - [Commits](https://github.com/raphaelm/django-i18nfield/compare/1.9.0...1.10.2) --- updated-dependencies: - dependency-name: django-i18nfield dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1327cd977..670dc4b67 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,7 +41,7 @@ dependencies = [ "django-formset-js-improved==0.5.0.3", "django-formtools~=2.5.1", "django-hierarkey~=1.2.0", - "django-i18nfield~=1.9.0", + "django-i18nfield>=1.9,<1.11", "django-libsass~=0.8", "django-scopes~=2.0.0", "django-pdb~=0.6.2", From beb59d4b97c68466d79e899b99e132b9548f0bb3 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Tue, 17 Dec 2024 23:59:05 +0100 Subject: [PATCH 09/14] Explicitly depend on setuptools --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 670dc4b67..cc54662b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,6 +55,7 @@ dependencies = [ "reportlab~=4.2.0", "requests~=2.32.0", "rules~=3.5.0", + "setuptools", "urlman~=2.0.1", "vobject~=0.9.0", "whitenoise~=6.8.0", From 1f49646779cae5a33ea0e9815d3b54a3fca3d8fd Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Thu, 19 Dec 2024 15:45:36 +0100 Subject: [PATCH 10/14] Make header and footer links configurable --- doc/changelog.rst | 2 + src/pretalx/agenda/templates/agenda/base.html | 7 + .../cfp/event/user_submission_edit.html | 1 - src/pretalx/common/context_processors.py | 16 +- src/pretalx/common/middleware/event.py | 4 +- src/pretalx/common/templates/common/base.html | 3 +- .../event/migrations/0038_eventextralink.py | 49 ++++ src/pretalx/event/models/event.py | 24 +- src/pretalx/orga/forms/event.py | 60 +++- .../orga/includes/event_links_formset.html | 50 ++++ .../orga/templates/orga/settings/form.html | 90 ++++-- src/pretalx/orga/views/event.py | 31 +++ .../agenda/test_agenda_schedule_export.py | 8 +- .../agenda/views/test_agenda_feedback.py | 12 +- .../agenda/views/test_agenda_schedule.py | 32 +-- src/tests/agenda/views/test_agenda_talks.py | 24 +- src/tests/agenda/views/test_agenda_widget.py | 2 +- src/tests/orga/views/test_orga_views_event.py | 261 +++++------------- 18 files changed, 407 insertions(+), 269 deletions(-) create mode 100644 src/pretalx/event/migrations/0038_eventextralink.py create mode 100644 src/pretalx/orga/templates/orga/includes/event_links_formset.html diff --git a/doc/changelog.rst b/doc/changelog.rst index c6bd9d957..8dd1581a1 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -3,6 +3,8 @@ Release Notes ============= +- :feature:`schedule` Organisers can now configure additional links to show in the top menu next to "Schedule", "Sessions", "Speakers", handy for links back to the conference website, livestreams, etc. +- :feature:`orga` Organisers can now configure footer links that will be shown on all schedule pages. - :feature:`cfp` pretalx will now send an email after a user changes their password, notifying them of the change. - :feature:`orga,1302` Organisers can now customise the template used to inform speakers when they are added to a proposal by an organiser. There are two new templates – one for speakers with an existing account, and one for speakers without account who need to set their password. - :feature:`orga,1311` Organisers can now customise the “New proposal” notification email contents. diff --git a/src/pretalx/agenda/templates/agenda/base.html b/src/pretalx/agenda/templates/agenda/base.html index 00b619086..79469e27a 100644 --- a/src/pretalx/agenda/templates/agenda/base.html +++ b/src/pretalx/agenda/templates/agenda/base.html @@ -3,6 +3,8 @@ {% load event_tags %} {% load i18n %} {% load rules %} +{% load safelink %} + {% block custom_header %} {% block alternate_link %} @@ -31,6 +33,11 @@ {{ phrases.schedule.speakers }} + {% for link in header_links %} + + {{ link.label }} + + {% endfor %} {% if request.event.display_settings.ticket_link %} {% translate "Tickets" %} diff --git a/src/pretalx/cfp/templates/cfp/event/user_submission_edit.html b/src/pretalx/cfp/templates/cfp/event/user_submission_edit.html index 4e70e5c84..9090da479 100644 --- a/src/pretalx/cfp/templates/cfp/event/user_submission_edit.html +++ b/src/pretalx/cfp/templates/cfp/event/user_submission_edit.html @@ -16,7 +16,6 @@ - {% endcompress %} {% endblock cfp_header %} diff --git a/src/pretalx/common/context_processors.py b/src/pretalx/common/context_processors.py index 27dd90e30..fcd0b6526 100644 --- a/src/pretalx/common/context_processors.py +++ b/src/pretalx/common/context_processors.py @@ -65,6 +65,20 @@ def system_information(request): event = getattr(request, "event", None) if not request.path.startswith("/orga/"): + context["footer_links"] = [] + context["header_links"] = [] + + if event: + context["footer_links"] = [ + {"label": link.label, "url": link.url} + for link in event.extra_links.all() + if link.role == "footer" + ] + context["header_links"] = [ + {"label": link.label, "url": link.url} + for link in event.extra_links.all() + if link.role == "header" + ] for __, response in footer_link.send(event, request=request): if isinstance(response, list): _footer += response @@ -74,7 +88,7 @@ def system_information(request): "Please return a list in your footer_link signal receiver, not a dictionary.", DeprecationWarning, ) - context["footer_links"] = _footer + context["footer_links"] += _footer if event: for _receiver, response in html_head.send(event, request=request): diff --git a/src/pretalx/common/middleware/event.py b/src/pretalx/common/middleware/event.py index c285e7f57..94cf61495 100644 --- a/src/pretalx/common/middleware/event.py +++ b/src/pretalx/common/middleware/event.py @@ -149,7 +149,9 @@ def __call__(self, request): with scopes_disabled(): try: request.event = get_object_or_404( - Event.objects.prefetch_related("schedules", "submissions"), + Event.objects.prefetch_related( + "schedules", "submissions", "extra_links" + ), slug__iexact=event_slug, ) except ValueError: diff --git a/src/pretalx/common/templates/common/base.html b/src/pretalx/common/templates/common/base.html index 0a3c5ac4b..70adfd6a8 100644 --- a/src/pretalx/common/templates/common/base.html +++ b/src/pretalx/common/templates/common/base.html @@ -1,4 +1,5 @@ {% load compress %} +{% load safelink %} {% load i18n %} {% load rules %} {% load static %} @@ -177,7 +178,7 @@

{% endif %} {% for footer in footer_links %} · - {{ footer.label }} + {{ footer.label }} {% endfor %} diff --git a/src/pretalx/event/migrations/0038_eventextralink.py b/src/pretalx/event/migrations/0038_eventextralink.py new file mode 100644 index 000000000..7cdca05b9 --- /dev/null +++ b/src/pretalx/event/migrations/0038_eventextralink.py @@ -0,0 +1,49 @@ +# Generated by Django 5.1.4 on 2024-12-19 13:05 + +import django.db.models.deletion +import i18nfield.fields +import pretalx.common.models.mixins +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("event", "0037_remove_event_accept_template_and_more"), + ] + + operations = [ + migrations.CreateModel( + name="EventExtraLink", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, primary_key=True, serialize=False + ), + ), + ("created", models.DateTimeField(auto_now_add=True, null=True)), + ("updated", models.DateTimeField(auto_now=True, null=True)), + ("label", i18nfield.fields.I18nCharField(max_length=200)), + ("url", models.URLField()), + ("role", models.CharField(default="footer", max_length=6)), + ( + "event", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="extra_links", + to="event.event", + ), + ), + ], + options={ + "abstract": False, + }, + bases=( + pretalx.common.models.mixins.OrderedModel, + pretalx.common.models.mixins.LogMixin, + pretalx.common.models.mixins.FileCleanupMixin, + models.Model, + ), + ), + ] diff --git a/src/pretalx/event/models/event.py b/src/pretalx/event/models/event.py index 3f09dc095..03863a9ea 100644 --- a/src/pretalx/event/models/event.py +++ b/src/pretalx/event/models/event.py @@ -13,13 +13,13 @@ from django.utils.functional import cached_property from django.utils.timezone import make_aware, now from django.utils.translation import gettext_lazy as _ -from django_scopes import scopes_disabled +from django_scopes import ScopedManager, scopes_disabled from i18nfield.fields import I18nCharField, I18nTextField from pretalx.common.cache import ObjectRelatedCache from pretalx.common.language import LANGUAGE_NAMES from pretalx.common.models import TIMEZONE_CHOICES -from pretalx.common.models.mixins import PretalxModel +from pretalx.common.models.mixins import OrderedModel, PretalxModel from pretalx.common.models.settings import hierarkey from pretalx.common.plugins import get_all_plugins from pretalx.common.text.daterange import daterange @@ -629,6 +629,11 @@ def copy_data_from(self, other_event, skip_attributes=None): setattr(self, attribute, getattr(other_event, attribute)) self.save() + for extra_link in other_event.extra_links.all(): + extra_link.pk = None + extra_link.event = self + extra_link.save() + self.mail_templates.all().delete() for template in other_event.mail_templates.all().filter(is_auto_created=False): template.pk = None @@ -1086,3 +1091,18 @@ def shred(self, person=None): entry.delete() shred.alters_data = True + + +class EventExtraLink(OrderedModel, PretalxModel): + event = models.ForeignKey( + to="Event", on_delete=models.CASCADE, related_name="extra_links" + ) + label = I18nCharField(max_length=200, verbose_name=_("Link text")) + url = models.URLField(verbose_name=_("Link URL")) + role = models.CharField( + max_length=6, + choices=(("footer", "Footer"), ("header", "Header")), + default="footer", + ) + + objects = ScopedManager(event="event") diff --git a/src/pretalx/orga/forms/event.py b/src/pretalx/orga/forms/event.py index 04033de05..5e5dedd5c 100644 --- a/src/pretalx/orga/forms/event.py +++ b/src/pretalx/orga/forms/event.py @@ -8,10 +8,11 @@ from django.core.exceptions import ValidationError from django.core.files.base import ContentFile from django.db.models import F, Q +from django.forms import inlineformset_factory from django.utils.translation import gettext_lazy as _ from django_scopes.forms import SafeModelMultipleChoiceField from i18nfield.fields import I18nFormField, I18nTextarea -from i18nfield.forms import I18nFormMixin, I18nModelForm +from i18nfield.forms import I18nFormMixin, I18nFormSetMixin, I18nModelForm from pretalx.common.forms.fields import ColorField, ImageField from pretalx.common.forms.mixins import ( @@ -20,6 +21,7 @@ JsonSubfieldMixin, ReadOnlyFlag, ) +from pretalx.common.forms.renderers import InlineFormRenderer from pretalx.common.forms.widgets import ( EnhancedSelect, EnhancedSelectMultiple, @@ -29,7 +31,7 @@ ) from pretalx.common.text.css import validate_css from pretalx.common.text.phrases import phrases -from pretalx.event.models.event import Event +from pretalx.event.models.event import Event, EventExtraLink from pretalx.orga.forms.widgets import HeaderSelect, MultipleLanguagesWidget from pretalx.schedule.models import Availability, TalkSlot from pretalx.submission.models import ReviewPhase, ReviewScore, ReviewScoreCategory @@ -743,3 +745,57 @@ class Meta: "limit_tracks": SafeModelMultipleChoiceField, } widgets = {"limit_tracks": EnhancedSelectMultiple(color_field="color")} + + +class EventExtraLinkForm(I18nModelForm): + default_renderer = InlineFormRenderer + + class Meta: + model = EventExtraLink + fields = ["label", "url"] + + +class BaseEventExtraLinkFormSet(I18nFormSetMixin, forms.BaseInlineFormSet): + def __init__(self, *args, **kwargs): + event = kwargs.pop("event", None) + if event: + kwargs["locales"] = event.locales + super().__init__(*args, **kwargs) + + def get_queryset(self): + return super().get_queryset().filter(role=self.role) + + def save_new(self, form, commit=True): + instance = super().save_new(form, commit=False) + instance.role = self.role + if commit: + instance.save() + return instance + + +class BaseEventFooterLinkFormSet(BaseEventExtraLinkFormSet): + role = "footer" + + +class BaseEventHeaderLinkFormSet(BaseEventExtraLinkFormSet): + role = "header" + + +EventFooterLinkFormset = inlineformset_factory( + Event, + EventExtraLink, + EventExtraLinkForm, + formset=BaseEventFooterLinkFormSet, + can_order=False, + can_delete=True, + extra=0, +) +EventHeaderLinkFormset = inlineformset_factory( + Event, + EventExtraLink, + EventExtraLinkForm, + formset=BaseEventHeaderLinkFormSet, + can_order=False, + can_delete=True, + extra=0, +) diff --git a/src/pretalx/orga/templates/orga/includes/event_links_formset.html b/src/pretalx/orga/templates/orga/includes/event_links_formset.html new file mode 100644 index 000000000..259ce59c7 --- /dev/null +++ b/src/pretalx/orga/templates/orga/includes/event_links_formset.html @@ -0,0 +1,50 @@ +{% load formset_tags %} {% load i18n %} + +
+ {{ formset.management_form }} {{ formset.non_form_errors }} + +
+ {% for form in formset %} +
+
{{ form.id }} {{ form.DELETE}}
+
+ {{ form.non_field_errors }} {{ form.label.as_field_group }} +
+
{{ form.url.as_field_group }}
+
+ +
+
+ {% endfor %} +
+ + + +

+ +

+
diff --git a/src/pretalx/orga/templates/orga/settings/form.html b/src/pretalx/orga/templates/orga/settings/form.html index da5222986..3a5a9fe56 100644 --- a/src/pretalx/orga/templates/orga/settings/form.html +++ b/src/pretalx/orga/templates/orga/settings/form.html @@ -18,6 +18,9 @@ + + + {% endcompress %} {% endblock scripts %} @@ -53,29 +56,70 @@

{% translate "Settings" %}

{{ form.featured_sessions_text.as_field_group }}
diff --git a/src/pretalx/orga/views/event.py b/src/pretalx/orga/views/event.py index 94feac14e..8dd0cbc42 100644 --- a/src/pretalx/orga/views/event.py +++ b/src/pretalx/orga/views/event.py @@ -43,6 +43,8 @@ from pretalx.event.models import Event, Team, TeamInvite from pretalx.orga.forms import EventForm from pretalx.orga.forms.event import ( + EventFooterLinkFormset, + EventHeaderLinkFormset, MailSettingsForm, ReviewPhaseForm, ReviewScoreCategoryForm, @@ -84,6 +86,26 @@ def get_form_kwargs(self, *args, **kwargs): response["is_administrator"] = self.request.user.is_administrator return response + @context + @cached_property + def header_links_formset(self): + return EventHeaderLinkFormset( + self.request.POST if self.request.method == "POST" else None, + event=self.object, + prefix="header-links", + instance=self.object, + ) + + @context + @cached_property + def footer_links_formset(self): + return EventFooterLinkFormset( + self.request.POST if self.request.method == "POST" else None, + event=self.object, + prefix="footer-links", + instance=self.object, + ) + @context def tablist(self): return { @@ -98,7 +120,16 @@ def get_success_url(self) -> str: @transaction.atomic def form_valid(self, form): + if ( + not self.footer_links_formset.is_valid() + or not self.header_links_formset.is_valid() + ): + messages.error(self.request, phrases.base.error_saving_changes) + return self.form_invalid(form) + result = super().form_valid(form) + self.footer_links_formset.save() + self.header_links_formset.save() form.instance.log_action( "pretalx.event.update", person=self.request.user, orga=True diff --git a/src/tests/agenda/test_agenda_schedule_export.py b/src/tests/agenda/test_agenda_schedule_export.py index 815ea6760..1d27ada38 100644 --- a/src/tests/agenda/test_agenda_schedule_export.py +++ b/src/tests/agenda/test_agenda_schedule_export.py @@ -181,7 +181,7 @@ def test_schedule_ical_export(slot, orga_client, django_assert_max_num_queries): @pytest.mark.django_db def test_schedule_single_ical_export(slot, client, django_assert_max_num_queries): - with django_assert_max_num_queries(15): + with django_assert_max_num_queries(16): response = client.get(slot.submission.urls.ical, follow=True) assert response.status_code == 200 @@ -201,7 +201,7 @@ def test_schedule_export_nonpublic( slot.submission.event.save() exporter = "feed" if exporter == "feed" else f"export.{exporter}" - with django_assert_max_num_queries(5): + with django_assert_max_num_queries(6): response = client.get( reverse(f"agenda:{exporter}", kwargs={"event": slot.submission.event.slug}), follow=True, @@ -217,7 +217,7 @@ def test_schedule_export_nonpublic( def test_schedule_export_public(exporter, slot, client, django_assert_max_num_queries): exporter = "feed" if exporter == "feed" else f"export.{exporter}" - with django_assert_max_num_queries(14): + with django_assert_max_num_queries(15): response = client.get( reverse(f"agenda:{exporter}", kwargs={"event": slot.submission.event.slug}), follow=True, @@ -232,7 +232,7 @@ def test_schedule_speaker_ical_export( with scope(event=slot.submission.event): speaker = slot.submission.speakers.all()[0] profile = speaker.profiles.get(event=slot.event) - with django_assert_max_num_queries(16): + with django_assert_max_num_queries(17): response = client.get(profile.urls.talks_ical, follow=True) assert response.status_code == 200 diff --git a/src/tests/agenda/views/test_agenda_feedback.py b/src/tests/agenda/views/test_agenda_feedback.py index 9de4db4a5..bcee519e5 100644 --- a/src/tests/agenda/views/test_agenda_feedback.py +++ b/src/tests/agenda/views/test_agenda_feedback.py @@ -11,7 +11,7 @@ def test_can_create_feedback(django_assert_num_queries, past_slot, client, event): with scope(event=event): assert past_slot.submission.speakers.count() == 1 - with django_assert_num_queries(41): + with django_assert_num_queries(42): response = client.post( past_slot.submission.urls.feedback, {"review": "cool!"}, follow=True ) @@ -33,7 +33,7 @@ def test_can_create_feedback_for_multiple_speakers( past_slot.submission.speakers.add(other_speaker) past_slot.submission.speakers.add(speaker) assert past_slot.submission.speakers.count() == 2 - with django_assert_num_queries(42): + with django_assert_num_queries(43): response = client.post( past_slot.submission.urls.feedback, {"review": "cool!"}, follow=True ) @@ -54,7 +54,7 @@ def test_cannot_create_feedback_before_talk( start=_now + dt.timedelta(minutes=30), end=_now + dt.timedelta(minutes=60), ) - with django_assert_num_queries(12): + with django_assert_num_queries(13): response = client.post( slot.submission.urls.feedback, {"review": "cool!"}, follow=True ) @@ -67,7 +67,7 @@ def test_cannot_create_feedback_before_talk( @pytest.mark.django_db() def test_can_see_feedback(django_assert_num_queries, feedback, client): client.force_login(feedback.talk.speakers.first()) - with django_assert_num_queries(19): + with django_assert_num_queries(20): response = client.get(feedback.talk.urls.feedback) assert response.status_code == 200 assert feedback.review in response.content.decode() @@ -75,13 +75,13 @@ def test_can_see_feedback(django_assert_num_queries, feedback, client): @pytest.mark.django_db() def test_can_see_feedback_form(django_assert_num_queries, past_slot, client): - with django_assert_num_queries(13): + with django_assert_num_queries(14): response = client.get(past_slot.submission.urls.feedback, follow=True) assert response.status_code == 200 @pytest.mark.django_db() def test_cannot_see_feedback_form_before_talk(django_assert_num_queries, slot, client): - with django_assert_num_queries(15): + with django_assert_num_queries(16): response = client.get(slot.submission.urls.feedback, follow=True) assert response.status_code == 200 diff --git a/src/tests/agenda/views/test_agenda_schedule.py b/src/tests/agenda/views/test_agenda_schedule.py index c4f2d5616..886893f13 100644 --- a/src/tests/agenda/views/test_agenda_schedule.py +++ b/src/tests/agenda/views/test_agenda_schedule.py @@ -7,7 +7,7 @@ @pytest.mark.django_db -@pytest.mark.parametrize("version,queries", (("js", 5), ("nojs", 8))) +@pytest.mark.parametrize("version,queries", (("js", 6), ("nojs", 9))) def test_can_see_schedule( client, django_assert_num_queries, @@ -34,9 +34,7 @@ def test_can_see_schedule( @pytest.mark.django_db @pytest.mark.parametrize("version", ("js", "nojs")) -def test_orga_can_see_wip_schedule( - orga_client, django_assert_num_queries, user, event, slot, other_slot, version -): +def test_orga_can_see_wip_schedule(orga_client, user, event, slot, other_slot, version): with scope(event=event): url = event.urls.schedule + "v/wip/" if version != "js": @@ -49,9 +47,7 @@ def test_orga_can_see_wip_schedule( @pytest.mark.django_db -def test_can_see_text_schedule( - client, django_assert_num_queries, user, event, slot, other_slot -): +def test_can_see_text_schedule(client, user, event, slot, other_slot): response = client.get(event.urls.schedule, follow=True, HTTP_ACCEPT="*/*") assert response.status_code == 200 with scope(event=event): @@ -60,7 +56,7 @@ def test_can_see_text_schedule( @pytest.mark.django_db def test_can_see_schedule_with_broken_accept_header( - client, django_assert_num_queries, user, event, slot, other_slot + client, user, event, slot, other_slot ): response = client.get(event.urls.schedule, follow=True, HTTP_ACCEPT="foo/bar") assert response.status_code == 200 @@ -110,7 +106,7 @@ def test_speaker_list( client, django_assert_num_queries, event, speaker, slot, other_slot ): url = event.urls.speakers - with django_assert_num_queries(8): + with django_assert_num_queries(9): response = client.get(url, follow=True) assert response.status_code == 200 assert speaker.name in response.content.decode() @@ -134,7 +130,7 @@ def test_speaker_page( other_submission.slots.all().update(is_visible=True) slot.submission.slots.all().update(is_visible=True) url = reverse("agenda:speaker", kwargs={"code": speaker.code, "event": event.slug}) - with django_assert_num_queries(13): + with django_assert_num_queries(14): response = client.get(url, follow=True) assert response.status_code == 200 assert len(response.context["talks"]) == 2, response.context["talks"] @@ -165,7 +161,7 @@ def test_speaker_page_other_submissions_only_if_visible( ) url = reverse("agenda:speaker", kwargs={"code": speaker.code, "event": event.slug}) - with django_assert_num_queries(12): + with django_assert_num_queries(13): response = client.get(url, follow=True) assert response.status_code == 200 @@ -187,7 +183,7 @@ def test_speaker_redirect( @pytest.mark.django_db -def test_speaker_redirect_unknown(client, django_assert_num_queries, event, submission): +def test_speaker_redirect_unknown(client, event, submission): with scope(event=event): url = reverse( "agenda:speaker.redirect", @@ -202,7 +198,7 @@ def test_schedule_page_text_table( client, django_assert_num_queries, event, speaker, slot, schedule, other_slot ): url = event.urls.schedule - with django_assert_num_queries(8): + with django_assert_num_queries(9): response = client.get(url, follow=True) assert response.status_code == 200 title_lines = textwrap.wrap(slot.submission.title, width=16) @@ -222,7 +218,7 @@ def test_schedule_page_text_table_explicit_header( other_slot, ): url = event.urls.schedule - with django_assert_num_queries(8): + with django_assert_num_queries(9): response = client.get(url, follow=True, HTTP_ACCEPT="text/plain") assert response.status_code == 200 title_lines = textwrap.wrap(slot.submission.title, width=16) @@ -251,7 +247,7 @@ def test_schedule_page_redirects( target, ): url = event.urls.schedule - with django_assert_num_queries(5): + with django_assert_num_queries(6): response = client.get(url, HTTP_ACCEPT=header) assert response.status_code == 303 assert response.headers["location"] == getattr(event.urls, target).full() @@ -263,7 +259,7 @@ def test_schedule_page_text_list( client, django_assert_num_queries, event, speaker, slot, schedule, other_slot ): url = event.urls.schedule - with django_assert_num_queries(8): + with django_assert_num_queries(9): response = client.get(url, {"format": "list"}, follow=True) assert response.status_code == 200 assert slot.submission.title in response.content.decode() @@ -274,7 +270,7 @@ def test_schedule_page_text_wrong_format( client, django_assert_num_queries, event, speaker, slot, schedule, other_slot ): url = event.urls.schedule - with django_assert_num_queries(8): + with django_assert_num_queries(9): response = client.get(url, {"format": "wrong"}, follow=True) assert response.status_code == 200 assert slot.submission.title[:10] in response.content.decode() @@ -283,7 +279,7 @@ def test_schedule_page_text_wrong_format( @pytest.mark.django_db @pytest.mark.parametrize( "version,queries_main,queries_versioned,queries_redirect", - (("js", 5, 6, 11), ("nojs", 6, 12, 14)), + (("js", 6, 7, 13), ("nojs", 7, 13, 16)), ) def test_versioned_schedule_page( client, diff --git a/src/tests/agenda/views/test_agenda_talks.py b/src/tests/agenda/views/test_agenda_talks.py index d5207dabd..68fff155b 100644 --- a/src/tests/agenda/views/test_agenda_talks.py +++ b/src/tests/agenda/views/test_agenda_talks.py @@ -8,7 +8,7 @@ @pytest.mark.django_db def test_can_see_talk_list(client, django_assert_num_queries, event, slot, other_slot): - with django_assert_num_queries(5): + with django_assert_num_queries(6): response = client.get(event.urls.talks, follow=True, HTTP_ACCEPT="text/html") assert response.status_code == 200 assert " Date: Thu, 19 Dec 2024 16:56:36 +0100 Subject: [PATCH 11/14] Fix typo --- doc/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/changelog.rst b/doc/changelog.rst index 8dd1581a1..372fcb16b 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -3,7 +3,7 @@ Release Notes ============= -- :feature:`schedule` Organisers can now configure additional links to show in the top menu next to "Schedule", "Sessions", "Speakers", handy for links back to the conference website, livestreams, etc. +- :feature:`schedule` Organisers can now configure additional links to show in the top menu next to "Schedule", "Sessions", "Speakers", handy for links back to the conference website, streams, etc. - :feature:`orga` Organisers can now configure footer links that will be shown on all schedule pages. - :feature:`cfp` pretalx will now send an email after a user changes their password, notifying them of the change. - :feature:`orga,1302` Organisers can now customise the template used to inform speakers when they are added to a proposal by an organiser. There are two new templates – one for speakers with an existing account, and one for speakers without account who need to set their password. From b91a59e0b90247d05f9fb8008fc73c0f0468c8eb Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Thu, 19 Dec 2024 16:56:47 +0100 Subject: [PATCH 12/14] update frab export; stop validating while schema is broken ref voc/schedule#145 --- src/pretalx/schedule/exporters.py | 49 ++++-- src/pretalx/schedule/models/room.py | 10 ++ .../agenda/test_agenda_schedule_export.py | 8 +- src/tests/fixtures/schedule.json | 157 +++++++++++++++--- 4 files changed, 187 insertions(+), 37 deletions(-) diff --git a/src/pretalx/schedule/exporters.py b/src/pretalx/schedule/exporters.py index eff5fd4f6..c7a451070 100644 --- a/src/pretalx/schedule/exporters.py +++ b/src/pretalx/schedule/exporters.py @@ -211,6 +211,8 @@ def get_data(self, **kwargs): "rooms": [ { "name": str(room.name), + "slug": room.slug, + # TODO room url "guid": room.uuid, "description": str(room.description) or None, "capacity": room.capacity, @@ -220,6 +222,7 @@ def get_data(self, **kwargs): "tracks": [ { "name": str(track.name), + "slug": track.slug, "color": track.color, } for track in self.event.tracks.all() @@ -233,19 +236,20 @@ def get_data(self, **kwargs): "rooms": { str(room["name"]): [ { - "url": talk.submission.urls.public.full(), - "id": talk.submission.id, "guid": talk.uuid, - "date": talk.local_start.isoformat(), - "start": talk.local_start.strftime("%H:%M"), + "code": talk.submission.code, + "id": talk.submission.id, "logo": ( talk.submission.urls.image.full() if talk.submission.image else None ), + "date": talk.local_start.isoformat(), + "start": talk.local_start.strftime("%H:%M"), "duration": talk.export_duration, "room": str(room["name"]), "slug": talk.frab_slug, + "url": talk.submission.urls.public.full(), "title": talk.submission.title, "subtitle": "", "track": ( @@ -261,19 +265,19 @@ def get_data(self, **kwargs): "do_not_record": talk.submission.do_not_record, "persons": [ { + "name": person.get_display_name(), + "public_name": person.get_display_name(), # deprecated "guid": person.guid, "id": person.id, + "url": person.event_profile( + self.event + ).urls.public.full(), "code": person.code, - "public_name": person.get_display_name(), "avatar": person.get_avatar_url(self.event) or None, - "biography": getattr( - person.profiles.filter( - event=self.event - ).first(), - "biography", - "", - ), + "biography": person.event_profile( + self.event + ).biography, "answers": ( [ { @@ -292,8 +296,25 @@ def get_data(self, **kwargs): } for person in talk.submission.speakers.all() ], - "links": [], - "attachments": [], + "links": [ + { + "title": resource.description, + "url": resource.link, + "type": "related", + } + for resource in talk.submission.resources.all() + if resource.link + ], + "feedback_url": talk.submission.urls.feedback.full(), + "attachments": [ + { + "title": resource.description, + "url": resource.resource.url, + "type": "related", + } + for resource in talk.submission.resources.all() + if not resource.link + ], "answers": ( [ { diff --git a/src/pretalx/schedule/models/room.py b/src/pretalx/schedule/models/room.py index c65154e4c..e122b7364 100644 --- a/src/pretalx/schedule/models/room.py +++ b/src/pretalx/schedule/models/room.py @@ -2,6 +2,7 @@ from functools import cached_property from django.db import models +from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ from i18nfield.fields import I18nCharField @@ -79,3 +80,12 @@ def uuid(self): return "" return uuid.uuid5(GlobalSettings().get_instance_identifier(), f"room:{self.pk}") + + @property + def slug(self) -> str: + """The slug makes tracks more readable in URLs. + + It consists of the ID, followed by a slugified (and, in lookups, + optional) form of the track name. + """ + return f"{self.id}-{slugify(self.name)}" diff --git a/src/tests/agenda/test_agenda_schedule_export.py b/src/tests/agenda/test_agenda_schedule_export.py index 1d27ada38..94dcc3a09 100644 --- a/src/tests/agenda/test_agenda_schedule_export.py +++ b/src/tests/agenda/test_agenda_schedule_export.py @@ -10,7 +10,7 @@ from django.test import override_settings from django.urls import reverse from django_scopes import scope -from jsonschema import validate +# from jsonschema import validate from lxml import etree from pretalx.agenda.tasks import export_schedule_html @@ -109,7 +109,7 @@ def test_schedule_frab_json_export( orga_user, schedule_schema_json, ): - with django_assert_max_num_queries(14): + with django_assert_max_num_queries(17): regular_response = client.get( reverse( "agenda:export.schedule.json", @@ -144,8 +144,8 @@ def test_schedule_frab_json_export( assert regular_content != orga_content - validate(instance=regular_content, schema=schedule_schema_json) - validate(instance=orga_content, schema=schedule_schema_json) + # validate(instance=regular_content, schema=schedule_schema_json) + # validate(instance=orga_content, schema=schedule_schema_json) @pytest.mark.django_db diff --git a/src/tests/fixtures/schedule.json b/src/tests/fixtures/schedule.json index 655776823..fe2cf4aaa 100644 --- a/src/tests/fixtures/schedule.json +++ b/src/tests/fixtures/schedule.json @@ -81,7 +81,10 @@ }, "end": { "type": "string", - "format": "date" + "$oneOf": [ + { "format": "date" }, + { "format": "date-time" } + ] }, "daysCount": { "type": "integer" @@ -113,8 +116,8 @@ } } }, - "keywords" :{ - "type":"array", + "keywords": { + "type": "array", "items": { "type": "string" } @@ -124,14 +127,18 @@ "type": "string", "format": "uri" }, - "tracks" :{ - "type":"array", + "tracks": { + "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, + "slug": { + "type": "string", + "pattern": "^[a-z0-9_-]+[a-z0-9]$" + }, "color": { "type": "string", "format": "color" @@ -194,14 +201,20 @@ "type": "object", "additionalProperties": false, "properties": { - "id": { - "type": "integer", - "minimum": 1 - }, "guid": { "type": "string", "format": "uuid" }, + "code": { + "type": "string", + "pattern": "^[A-Z0-9]+$" + }, + "id": { + "type": "integer", + "minimum": 1, + "deprecated": true, + "$comment": "use guid instead" + }, "logo": { "type": ["string", "null"], "format": "uri", @@ -269,7 +282,7 @@ "type": ["boolean", "null"] }, "do_not_stream": { - "type": ["string", "null"] + "type": ["boolean", "string", "null"] }, "persons": { "type": "array", @@ -279,8 +292,9 @@ }, "links": { "type": "array", - "items": {}, - "$comment": "// TODO: string vs object" + "items": { + "$ref": "#/definitions/Reference" + } }, "feedback_url": { "type": "string", @@ -288,12 +302,14 @@ }, "attachments": { "type": "array", - "items": {}, - "$comment": "// TODO: string vs object" + "items": { + "$ref": "#/definitions/Reference" + } }, "answers": { "type": "array", - "items": {} + "items": {}, + "$ref": "https://c3voc.de/schedule/submission#/definitions/Answers" } }, "required": [ @@ -329,6 +345,21 @@ "id": { "type": "integer", "description": "deprecated integer person id, use guid with uuid5(NS_URL, 'acct:user@domain.tld') instead" + }, + "url": { + "type": "string", + "format": "uri" + }, + "links": { + "type": "array", + "items": { + "$ref": "#/definitions/Reference" + } + }, + "public_name": { + "type": "string", + "deprecated": true, + "$comment": "use name instead" } }, "oneOf": [ @@ -350,6 +381,27 @@ }, "required": ["public_name", "id"] }, + "HubAssembly": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "slug": { + "type": "string", + "pattern": "^[a-z0-9_-]+[a-z0-9]$" + }, + "guid": { + "type": "string", + "format": "uuid" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": ["name", "guid", "slug"] + }, "PretalxPerson": { "type": "object", "properties": { @@ -366,7 +418,7 @@ "description": "absolute URL, or relative to base_url" }, "biography": { - "type": "string" + "type": ["string", "null"] }, "answers": { "type": "array", @@ -382,27 +434,94 @@ "name": { "type": "string" }, + "slug": { + "type": "string", + "pattern": "^[a-z0-9_-]+[a-z0-9]$" + }, + "type": { + "type": "string", + "enum": ["lecturehall", "stage", "workshop", "outside", "online", "project", "bbb", "hangar", "other"] + }, "guid": { "type": "string", "format": "uuid" }, - "description": { + "stream_id": { "type": ["string", "null"] }, + "description": { + "type": ["string", "null"], + "description": "might also be set as description_de, description_en etc." + }, "capacity": { "type": ["number", "null"] + }, + "url": { + "type": "string", + "format": "uri" + }, + "features" :{ + "$ref": "#/definitions/RoomFeatures" + }, + "assembly": { + "$ref": "#/definitions/HubAssembly" } }, - "required": ["name"] + "patternProperties": { + "description_.+": { + "type": ["string", "null"] + } + }, + "required": ["name", "guid"] }, "RoomName": { "type": "string" }, + "RoomFeatures": { + "type": "object", + "additionalProperties": true, + "properties": { + "recording": { + "type": "string", + "enum": ["record_by_default", "not_recorded_by_default", "recording_forbidden", "recording_not_possible", "unknown"] + } + } + }, "Duration": { "title": "Duration (hh:mm)", "type": "string", "examples": ["00:30", "01:30"], "pattern": "^[0-9]+:[0-9]{2}$" + }, + "Reference": { + "title": "Link or Attachment", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "enum": [ + "slides", + "paper", + "web", + "blog", + "article", + "media", + "related", + "activitypub" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "title": { + "type": "string" + } + }, + "required": [ + "url" + ] } } -} +} \ No newline at end of file From 032a20df4eefaa7859376657b5c952c93b012e1b Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Thu, 19 Dec 2024 16:58:28 +0100 Subject: [PATCH 13/14] Make all style checkers happy --- src/tests/agenda/test_agenda_schedule_export.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/agenda/test_agenda_schedule_export.py b/src/tests/agenda/test_agenda_schedule_export.py index 94dcc3a09..efcee57a3 100644 --- a/src/tests/agenda/test_agenda_schedule_export.py +++ b/src/tests/agenda/test_agenda_schedule_export.py @@ -10,7 +10,6 @@ from django.test import override_settings from django.urls import reverse from django_scopes import scope -# from jsonschema import validate from lxml import etree from pretalx.agenda.tasks import export_schedule_html @@ -144,6 +143,7 @@ def test_schedule_frab_json_export( assert regular_content != orga_content + # from jsonschema import validate # validate(instance=regular_content, schema=schedule_schema_json) # validate(instance=orga_content, schema=schedule_schema_json) From 445f34af0c27ca3c703bcf2c42227c0590176ee1 Mon Sep 17 00:00:00 2001 From: Hung Nguyen Date: Tue, 24 Dec 2024 10:37:38 +0700 Subject: [PATCH 14/14] Fix tests --- .../agenda/test_agenda_schedule_export.py | 18 +++++++++--------- src/tests/agenda/views/test_agenda_feedback.py | 4 ++-- src/tests/agenda/views/test_agenda_talks.py | 16 ++++++++-------- src/tests/agenda/views/test_agenda_widget.py | 2 +- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/tests/agenda/test_agenda_schedule_export.py b/src/tests/agenda/test_agenda_schedule_export.py index efcee57a3..cc6544b73 100644 --- a/src/tests/agenda/test_agenda_schedule_export.py +++ b/src/tests/agenda/test_agenda_schedule_export.py @@ -46,7 +46,7 @@ def test_schedule_frab_xml_export( schedule_schema_xml, break_slot, ): - with django_assert_max_num_queries(15): + with django_assert_max_num_queries(16): response = client.get( reverse( "agenda:export.schedule.xml", @@ -65,7 +65,7 @@ def test_schedule_frab_xml_export( etree.fromstring( response.content, parser ) # Will raise if the schedule does not match the schema - with django_assert_max_num_queries(10): + with django_assert_max_num_queries(11): response = client.get( reverse( "agenda:export.schedule.xml", @@ -84,7 +84,7 @@ def test_schedule_frab_xml_export_control_char( slot.submission.description = "control char: \a" slot.submission.save() - with django_assert_max_num_queries(11): + with django_assert_max_num_queries(12): response = client.get( reverse( "agenda:export.schedule.xml", @@ -117,7 +117,7 @@ def test_schedule_frab_json_export( follow=True, ) client.force_login(orga_user) - with django_assert_max_num_queries(24): + with django_assert_max_num_queries(25): orga_response = client.get( reverse( "agenda:export.schedule.json", @@ -152,7 +152,7 @@ def test_schedule_frab_json_export( def test_schedule_frab_xcal_export( slot, client, django_assert_max_num_queries, break_slot ): - with django_assert_max_num_queries(11): + with django_assert_max_num_queries(12): response = client.get( reverse( "agenda:export.schedule.xcal", @@ -168,7 +168,7 @@ def test_schedule_frab_xcal_export( @pytest.mark.django_db def test_schedule_ical_export(slot, orga_client, django_assert_max_num_queries): - with django_assert_max_num_queries(16): + with django_assert_max_num_queries(17): response = orga_client.get( reverse( "agenda:export.schedule.ics", @@ -243,7 +243,7 @@ def test_schedule_speaker_ical_export( @pytest.mark.django_db def test_feed_view(slot, client, django_assert_max_num_queries, schedule): - with django_assert_max_num_queries(10): + with django_assert_max_num_queries(11): response = client.get(slot.submission.event.urls.feed) assert response.status_code == 200 assert schedule.version in response.content.decode() @@ -562,7 +562,7 @@ def test_html_export_full( @pytest.mark.django_db def test_speaker_csv_export(slot, orga_client, django_assert_max_num_queries): - with django_assert_max_num_queries(18): + with django_assert_max_num_queries(19): response = orga_client.get( reverse( "agenda:export", @@ -576,7 +576,7 @@ def test_speaker_csv_export(slot, orga_client, django_assert_max_num_queries): @pytest.mark.django_db def test_empty_speaker_csv_export(orga_client, django_assert_max_num_queries, event): - with django_assert_max_num_queries(13): + with django_assert_max_num_queries(14): response = orga_client.get( reverse( "agenda:export", diff --git a/src/tests/agenda/views/test_agenda_feedback.py b/src/tests/agenda/views/test_agenda_feedback.py index bcee519e5..9b7a79ae2 100644 --- a/src/tests/agenda/views/test_agenda_feedback.py +++ b/src/tests/agenda/views/test_agenda_feedback.py @@ -11,7 +11,7 @@ def test_can_create_feedback(django_assert_num_queries, past_slot, client, event): with scope(event=event): assert past_slot.submission.speakers.count() == 1 - with django_assert_num_queries(42): + with django_assert_num_queries(43): response = client.post( past_slot.submission.urls.feedback, {"review": "cool!"}, follow=True ) @@ -33,7 +33,7 @@ def test_can_create_feedback_for_multiple_speakers( past_slot.submission.speakers.add(other_speaker) past_slot.submission.speakers.add(speaker) assert past_slot.submission.speakers.count() == 2 - with django_assert_num_queries(43): + with django_assert_num_queries(44): response = client.post( past_slot.submission.urls.feedback, {"review": "cool!"}, follow=True ) diff --git a/src/tests/agenda/views/test_agenda_talks.py b/src/tests/agenda/views/test_agenda_talks.py index 68fff155b..b7d0241e1 100644 --- a/src/tests/agenda/views/test_agenda_talks.py +++ b/src/tests/agenda/views/test_agenda_talks.py @@ -16,7 +16,7 @@ def test_can_see_talk_list(client, django_assert_num_queries, event, slot, other @pytest.mark.django_db def test_can_see_talk(client, django_assert_num_queries, event, slot, other_slot): - with django_assert_num_queries(21): + with django_assert_num_queries(22): response = client.get(slot.submission.urls.public, follow=True) with scope(event=event): assert event.schedules.count() == 2 @@ -73,7 +73,7 @@ def test_can_see_talk_edit_btn( orga_client, django_assert_num_queries, orga_user, event, slot ): slot.submission.speakers.add(orga_user) - with django_assert_num_queries(27): + with django_assert_num_queries(30): response = orga_client.get(slot.submission.urls.public, follow=True) assert response.status_code == 200 content = response.content.decode() @@ -84,7 +84,7 @@ def test_can_see_talk_edit_btn( def test_can_see_talk_do_not_record(client, django_assert_num_queries, slot): slot.submission.do_not_record = True slot.submission.save() - with django_assert_num_queries(20): + with django_assert_num_queries(21): response = client.get(slot.submission.urls.public, follow=True) assert response.status_code == 200 content = response.content.decode() @@ -99,7 +99,7 @@ def test_can_see_talk_does_accept_feedback( slot.start = now() - dt.timedelta(days=1) slot.end = slot.start + dt.timedelta(hours=1) slot.save() - with django_assert_num_queries(21): + with django_assert_num_queries(22): response = client.get(slot.submission.urls.public, follow=True) assert response.status_code == 200 content = response.content.decode() @@ -150,7 +150,7 @@ def test_event_talk_visiblity_accepted( def test_event_talk_visiblity_confirmed( client, django_assert_num_queries, event, slot, confirmed_submission ): - with django_assert_num_queries(19): + with django_assert_num_queries(20): response = client.get(confirmed_submission.urls.public, follow=True) assert response.status_code == 200 @@ -185,7 +185,7 @@ def test_talk_speaker_other_submissions( ): with scope(event=event): other_submission.speakers.add(speaker) - with django_assert_num_queries(21): + with django_assert_num_queries(22): response = client.get(other_submission.urls.public, follow=True) assert response.status_code == 200 @@ -226,7 +226,7 @@ def test_talk_speaker_other_submissions_only_if_visible( is_visible=False ) - with django_assert_num_queries(21): + with django_assert_num_queries(22): response = client.get(other_submission.urls.public, follow=True) assert response.status_code == 200 @@ -246,7 +246,7 @@ def test_talk_speaker_other_submissions_only_if_visible( def test_talk_review_page( client, django_assert_num_queries, event, submission, other_submission ): - with django_assert_num_queries(14): + with django_assert_num_queries(15): response = client.get(submission.urls.review, follow=True) assert response.status_code == 200 assert submission.title in response.content.decode() diff --git a/src/tests/agenda/views/test_agenda_widget.py b/src/tests/agenda/views/test_agenda_widget.py index e2357c85c..c1ab7bb57 100644 --- a/src/tests/agenda/views/test_agenda_widget.py +++ b/src/tests/agenda/views/test_agenda_widget.py @@ -44,7 +44,7 @@ def test_widget_data( ): event.feature_flags["show_schedule"] = True event.save() - with django_assert_num_queries(10): + with django_assert_num_queries(14): response = client.get( event.urls.schedule + "widgets/schedule.json", follow=True )