From 831b64b6122d3ef6dec16288ee1934fbfce33574 Mon Sep 17 00:00:00 2001 From: Manuel Raynaud Date: Fri, 3 May 2024 09:32:42 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=90(i18n)=20update=20french=20translat?= =?UTF-8?q?ions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In order to prepare relase 2.1.0 we have to update all french translations. --- .../locale/es_ES/LC_MESSAGES/django.mo | Bin 613 -> 613 bytes .../locale/es_ES/LC_MESSAGES/django.po | 263 ++++++++++-------- .../locale/fr_CA/LC_MESSAGES/django.mo | Bin 631 -> 631 bytes .../locale/fr_CA/LC_MESSAGES/django.po | 263 ++++++++++-------- .../locale/fr_FR/LC_MESSAGES/django.mo | Bin 33548 -> 34161 bytes .../locale/fr_FR/LC_MESSAGES/django.po | 263 ++++++++++-------- src/frontend/admin/i18n/locales/es-ES.json | 200 +++++++++++-- src/frontend/admin/i18n/locales/fr-CA.json | 200 +++++++++++-- src/frontend/admin/i18n/locales/fr-FR.json | 200 +++++++++++-- .../admin/src/translations/es-ES.json | 50 +++- .../admin/src/translations/fr-CA.json | 50 +++- .../admin/src/translations/fr-FR.json | 50 +++- 12 files changed, 1134 insertions(+), 405 deletions(-) diff --git a/src/backend/locale/es_ES/LC_MESSAGES/django.mo b/src/backend/locale/es_ES/LC_MESSAGES/django.mo index 6facb8b3fdebd0352d6163e4bb3c26152a4c4b58..c1e058fb508a2d98faa5e82f663af0cd49f7a99b 100755 GIT binary patch delta 21 ccmaFL@|0!511?it17igPb1Nf@jjyU10aZ2!Q~&?~ delta 21 ccmaFL@|0!511=L?Ljwgv6Dt$LjjyU10aWb=N&o-= diff --git a/src/backend/locale/es_ES/LC_MESSAGES/django.po b/src/backend/locale/es_ES/LC_MESSAGES/django.po index a728d7ad8..06e811081 100644 --- a/src/backend/locale/es_ES/LC_MESSAGES/django.po +++ b/src/backend/locale/es_ES/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: joanie\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-10 13:37+0000\n" -"PO-Revision-Date: 2024-04-10 14:41\n" +"POT-Creation-Date: 2024-05-02 15:32+0000\n" +"PO-Revision-Date: 2024-05-03 07:28\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -78,7 +78,7 @@ msgstr "" msgid "Link to the resource the badge has been issued for (e.g. a course session)" msgstr "" -#: joanie/badges/models.py:109 joanie/core/admin.py:92 +#: joanie/badges/models.py:109 joanie/core/admin.py:99 #: joanie/core/models/accounts.py:58 msgid "User" msgstr "" @@ -114,70 +114,75 @@ msgstr[1] "" msgid "Course" msgstr "" -#: joanie/core/admin.py:71 joanie/core/models/products.py:110 +#: joanie/core/admin.py:71 joanie/core/models/products.py:106 #: joanie/core/templates/issuers/invoice.html:78 msgid "Product" msgstr "" -#: joanie/core/admin.py:78 joanie/core/models/courses.py:238 +#: joanie/core/admin.py:78 joanie/core/admin.py:85 +#: joanie/core/models/courses.py:238 msgid "Organization" msgstr "" -#: joanie/core/admin.py:85 joanie/core/models/course_wishes.py:18 +#: joanie/core/admin.py:92 joanie/core/models/course_wishes.py:18 #: joanie/payment/admin.py:26 msgid "Owner" msgstr "" -#: joanie/core/admin.py:99 joanie/core/models/courses.py:812 +#: joanie/core/admin.py:106 joanie/core/models/courses.py:812 msgid "Course run" msgstr "" -#: joanie/core/admin.py:253 joanie/core/admin.py:294 joanie/core/admin.py:413 +#: joanie/core/admin.py:192 +msgid "To get results, choose an organization on the right first, then type the username of the student in the search bar." +msgstr "" + +#: joanie/core/admin.py:281 joanie/core/admin.py:322 joanie/core/admin.py:441 msgid "Main information" msgstr "" -#: joanie/core/admin.py:264 joanie/core/models/courses.py:239 +#: joanie/core/admin.py:292 joanie/core/models/courses.py:239 #: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:50 msgid "Organizations" msgstr "" -#: joanie/core/admin.py:266 +#: joanie/core/admin.py:294 msgid "Select organizations that author this course." msgstr "" -#: joanie/core/admin.py:330 +#: joanie/core/admin.py:358 msgid "Mark course run as gradable" msgstr "" -#: joanie/core/admin.py:356 +#: joanie/core/admin.py:384 msgid "Personal info" msgstr "" -#: joanie/core/admin.py:366 +#: joanie/core/admin.py:394 msgid "Permissions" msgstr "" -#: joanie/core/admin.py:377 +#: joanie/core/admin.py:405 msgid "Important dates" msgstr "" -#: joanie/core/admin.py:564 +#: joanie/core/admin.py:592 msgid "Cancel selected orders" msgstr "" -#: joanie/core/admin.py:616 +#: joanie/core/admin.py:644 msgid "To get results, choose a user on the right" msgstr "" -#: joanie/core/admin.py:660 +#: joanie/core/admin.py:688 msgid "To get results, choose an owner or an organization on the right" msgstr "" -#: joanie/core/admin.py:689 +#: joanie/core/admin.py:717 msgid "Config field" msgstr "" -#: joanie/core/admin.py:690 +#: joanie/core/admin.py:718 msgid "Config fields" msgstr "" @@ -199,7 +204,7 @@ msgid "Enrollment" msgstr "" #: joanie/core/enums.py:37 joanie/core/enums.py:122 -#: joanie/core/models/certifications.py:110 +#: joanie/core/models/certifications.py:116 #: joanie/core/templates/issuers/degree.html:27 msgid "Certificate" msgstr "" @@ -256,7 +261,7 @@ msgstr "" msgid "Degree" msgstr "" -#: joanie/core/enums.py:130 joanie/core/models/products.py:504 +#: joanie/core/enums.py:130 joanie/core/models/products.py:500 msgid "Order" msgstr "" @@ -384,73 +389,73 @@ msgstr "" msgid "Users" msgstr "" -#: joanie/core/models/accounts.py:148 joanie/core/models/certifications.py:33 +#: joanie/core/models/accounts.py:154 joanie/core/models/certifications.py:33 #: joanie/core/models/contracts.py:29 joanie/core/models/courses.py:170 #: joanie/core/models/courses.py:470 joanie/core/models/courses.py:783 -#: joanie/core/models/products.py:71 joanie/payment/models.py:360 +#: joanie/core/models/products.py:67 joanie/payment/models.py:360 msgid "title" msgstr "" -#: joanie/core/models/accounts.py:149 +#: joanie/core/models/accounts.py:155 msgid "address" msgstr "" -#: joanie/core/models/accounts.py:150 +#: joanie/core/models/accounts.py:156 msgid "postcode" msgstr "" -#: joanie/core/models/accounts.py:151 +#: joanie/core/models/accounts.py:157 msgid "city" msgstr "" -#: joanie/core/models/accounts.py:152 joanie/core/models/courses.py:181 +#: joanie/core/models/accounts.py:158 joanie/core/models/courses.py:181 msgid "country" msgstr "" -#: joanie/core/models/accounts.py:153 +#: joanie/core/models/accounts.py:159 msgid "first name" msgstr "" -#: joanie/core/models/accounts.py:154 +#: joanie/core/models/accounts.py:160 msgid "last name" msgstr "" -#: joanie/core/models/accounts.py:157 joanie/core/models/courses.py:357 -#: joanie/core/models/courses.py:587 joanie/core/models/products.py:449 +#: joanie/core/models/accounts.py:163 joanie/core/models/courses.py:357 +#: joanie/core/models/courses.py:587 joanie/core/models/products.py:445 #: joanie/payment/models.py:369 msgid "owner" msgstr "" -#: joanie/core/models/accounts.py:165 joanie/core/models/certifications.py:97 -#: joanie/core/models/products.py:392 +#: joanie/core/models/accounts.py:171 joanie/core/models/certifications.py:97 +#: joanie/core/models/products.py:388 msgid "organization" msgstr "" -#: joanie/core/models/accounts.py:171 joanie/payment/models.py:373 +#: joanie/core/models/accounts.py:177 joanie/payment/models.py:373 msgid "main" msgstr "" -#: joanie/core/models/accounts.py:172 +#: joanie/core/models/accounts.py:178 msgid "reusable" msgstr "" -#: joanie/core/models/accounts.py:176 +#: joanie/core/models/accounts.py:182 msgid "Address" msgstr "" -#: joanie/core/models/accounts.py:177 +#: joanie/core/models/accounts.py:183 msgid "Addresses" msgstr "" -#: joanie/core/models/accounts.py:196 +#: joanie/core/models/accounts.py:202 msgid "Either owner or organization must be set." msgstr "" -#: joanie/core/models/accounts.py:201 +#: joanie/core/models/accounts.py:207 msgid "Main address must be reusable." msgstr "" -#: joanie/core/models/accounts.py:225 +#: joanie/core/models/accounts.py:231 msgid "Demote a main address is forbidden" msgstr "" @@ -463,12 +468,12 @@ msgid "level" msgstr "" #: joanie/core/models/activity_logs.py:74 -#: joanie/core/models/certifications.py:102 joanie/core/models/contracts.py:90 +#: joanie/core/models/certifications.py:108 joanie/core/models/contracts.py:90 #: joanie/payment/models.py:74 msgid "context" msgstr "" -#: joanie/core/models/activity_logs.py:78 joanie/core/models/products.py:68 +#: joanie/core/models/activity_logs.py:78 joanie/core/models/products.py:64 msgid "type" msgstr "" @@ -480,36 +485,52 @@ msgstr "" msgid "activity_logs" msgstr "" -#: joanie/core/models/base.py:20 +#: joanie/core/models/base.py:22 msgid "id" msgstr "" -#: joanie/core/models/base.py:21 +#: joanie/core/models/base.py:23 msgid "primary key for the record as UUID" msgstr "" -#: joanie/core/models/base.py:27 +#: joanie/core/models/base.py:29 msgid "created on" msgstr "" -#: joanie/core/models/base.py:28 +#: joanie/core/models/base.py:30 msgid "date and time at which a record was created" msgstr "" -#: joanie/core/models/base.py:33 +#: joanie/core/models/base.py:35 msgid "updated on" msgstr "" -#: joanie/core/models/base.py:34 +#: joanie/core/models/base.py:36 msgid "date and time at which a record was last updated" msgstr "" +#: joanie/core/models/base.py:80 +msgid "checksum" +msgstr "" + +#: joanie/core/models/base.py:82 +msgid "SHA-256 Checksum of the file" +msgstr "" + +#: joanie/core/models/base.py:87 +msgid "file" +msgstr "" + +#: joanie/core/models/base.py:89 +msgid "File used in the certificate" +msgstr "" + #: joanie/core/models/certifications.py:31 msgid "name" msgstr "" #: joanie/core/models/certifications.py:34 joanie/core/models/contracts.py:30 -#: joanie/core/models/products.py:72 +#: joanie/core/models/products.py:68 msgid "description" msgstr "" @@ -531,19 +552,23 @@ msgid "Date of issuance" msgstr "" #: joanie/core/models/certifications.py:82 joanie/core/models/contracts.py:80 -#: joanie/core/models/products.py:1225 joanie/payment/models.py:54 +#: joanie/core/models/products.py:1093 joanie/payment/models.py:54 msgid "order" msgstr "" -#: joanie/core/models/certifications.py:91 joanie/core/models/products.py:414 +#: joanie/core/models/certifications.py:91 joanie/core/models/products.py:410 msgid "enrollment" msgstr "" -#: joanie/core/models/certifications.py:103 +#: joanie/core/models/certifications.py:102 +msgid "images" +msgstr "" + +#: joanie/core/models/certifications.py:109 msgid "Localized data that needs to be frozen on certificate creation" msgstr "" -#: joanie/core/models/certifications.py:111 +#: joanie/core/models/certifications.py:117 msgid "Certificates" msgstr "" @@ -560,7 +585,7 @@ msgid "template name" msgstr "" #: joanie/core/models/contracts.py:48 joanie/core/models/contracts.py:73 -#: joanie/core/models/products.py:102 +#: joanie/core/models/products.py:98 msgid "Contract definition" msgstr "" @@ -765,13 +790,13 @@ msgid "Course accesses" msgstr "" #: joanie/core/models/courses.py:705 joanie/core/models/courses.py:777 -#: joanie/core/models/products.py:278 joanie/core/models/products.py:407 -#: joanie/core/models/products.py:1213 +#: joanie/core/models/products.py:274 joanie/core/models/products.py:403 +#: joanie/core/models/products.py:1081 msgid "course" msgstr "" -#: joanie/core/models/courses.py:711 joanie/core/models/products.py:284 -#: joanie/core/models/products.py:399 +#: joanie/core/models/courses.py:711 joanie/core/models/products.py:280 +#: joanie/core/models/products.py:395 msgid "product" msgstr "" @@ -855,192 +880,192 @@ msgstr "" msgid "Enrollments" msgstr "" -#: joanie/core/models/courses.py:1019 +#: joanie/core/models/courses.py:1023 msgid "active" msgstr "" -#: joanie/core/models/courses.py:1019 +#: joanie/core/models/courses.py:1023 msgid "inactive" msgstr "" -#: joanie/core/models/courses.py:1089 +#: joanie/core/models/courses.py:1093 msgid "You are not allowed to enroll to a course run not opened for enrollment." msgstr "" -#: joanie/core/models/courses.py:1105 +#: joanie/core/models/courses.py:1109 msgid "You are already enrolled to an opened course run " msgstr "" -#: joanie/core/models/courses.py:1116 +#: joanie/core/models/courses.py:1120 msgid "You cannot enroll to a non-listed course run out of the scope of an order." msgstr "" -#: joanie/core/models/courses.py:1141 +#: joanie/core/models/courses.py:1145 msgid "Course run \"{self.course_run.id!s}\" requires a valid order to enroll." msgstr "" -#: joanie/core/models/courses.py:1146 +#: joanie/core/models/courses.py:1150 msgid "You are not allowed to enroll to a course run not listed." msgstr "" -#: joanie/core/models/products.py:73 +#: joanie/core/models/products.py:69 msgid "instructions" msgstr "" -#: joanie/core/models/products.py:74 +#: joanie/core/models/products.py:70 msgid "call to action" msgstr "" -#: joanie/core/models/products.py:81 +#: joanie/core/models/products.py:77 msgid "target courses" msgstr "" -#: joanie/core/models/products.py:85 joanie/core/models/products.py:438 +#: joanie/core/models/products.py:81 joanie/core/models/products.py:434 msgid "price" msgstr "" -#: joanie/core/models/products.py:86 joanie/core/models/products.py:440 +#: joanie/core/models/products.py:82 joanie/core/models/products.py:436 msgid "tax included" msgstr "" -#: joanie/core/models/products.py:95 +#: joanie/core/models/products.py:91 msgid "certificate definition" msgstr "" -#: joanie/core/models/products.py:111 +#: joanie/core/models/products.py:107 msgid "Products" msgstr "" -#: joanie/core/models/products.py:258 +#: joanie/core/models/products.py:254 msgid "Certificate definition is only allowed for product kinds: " msgstr "" -#: joanie/core/models/products.py:293 joanie/core/models/products.py:1219 +#: joanie/core/models/products.py:289 joanie/core/models/products.py:1087 msgid "course runs" msgstr "" -#: joanie/core/models/products.py:296 +#: joanie/core/models/products.py:292 msgid "position in product" msgstr "" -#: joanie/core/models/products.py:298 joanie/core/models/products.py:1231 +#: joanie/core/models/products.py:294 joanie/core/models/products.py:1099 msgid "take into account for certification" msgstr "" -#: joanie/core/models/products.py:299 joanie/core/models/products.py:1232 +#: joanie/core/models/products.py:295 joanie/core/models/products.py:1100 msgid "Take into account the course grade for certification." msgstr "" -#: joanie/core/models/products.py:307 +#: joanie/core/models/products.py:303 msgid "Target course relation to a product with a position" msgstr "" -#: joanie/core/models/products.py:308 +#: joanie/core/models/products.py:304 msgid "Target courses relations to products with a position" msgstr "" -#: joanie/core/models/products.py:339 +#: joanie/core/models/products.py:335 msgid "Number of seats" msgstr "" -#: joanie/core/models/products.py:341 +#: joanie/core/models/products.py:337 msgid "The maximum number of orders that can be validated for a given order group" msgstr "" -#: joanie/core/models/products.py:346 +#: joanie/core/models/products.py:342 msgid "course product relation" msgstr "" -#: joanie/core/models/products.py:350 +#: joanie/core/models/products.py:346 msgid "is active" msgstr "" -#: joanie/core/models/products.py:423 +#: joanie/core/models/products.py:419 msgid "order group" msgstr "" -#: joanie/core/models/products.py:434 +#: joanie/core/models/products.py:430 msgid "courses" msgstr "" -#: joanie/core/models/products.py:455 +#: joanie/core/models/products.py:451 msgid "has consent to terms" msgstr "" -#: joanie/core/models/products.py:458 +#: joanie/core/models/products.py:454 msgid "User has consented to the platform terms and conditions." msgstr "" -#: joanie/core/models/products.py:466 +#: joanie/core/models/products.py:462 msgid "payment schedule" msgstr "" -#: joanie/core/models/products.py:467 +#: joanie/core/models/products.py:463 msgid "Payment schedule for the order." msgstr "" -#: joanie/core/models/products.py:505 +#: joanie/core/models/products.py:501 msgid "Orders" msgstr "" -#: joanie/core/models/products.py:673 +#: joanie/core/models/products.py:586 #, python-brace-format msgid "{required_field} field should be set for {self.product.type} products." msgstr "" -#: joanie/core/models/products.py:679 +#: joanie/core/models/products.py:592 #, python-brace-format msgid "{empty_field} field should be left empty for {self.product.type} products." msgstr "" -#: joanie/core/models/products.py:686 +#: joanie/core/models/products.py:599 msgid "The enrollment should belong to the owner of this order." msgstr "" -#: joanie/core/models/products.py:691 +#: joanie/core/models/products.py:604 msgid "Orders can't be placed on enrollments originating from an order." msgstr "" -#: joanie/core/models/products.py:700 +#: joanie/core/models/products.py:613 msgid "The order cannot be generated on course run that is in archived state." msgstr "" -#: joanie/core/models/products.py:719 +#: joanie/core/models/products.py:632 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\", " msgstr "" -#: joanie/core/models/products.py:725 +#: joanie/core/models/products.py:638 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\" and " msgstr "" -#: joanie/core/models/products.py:919 +#: joanie/core/models/products.py:832 #, python-brace-format msgid "Product {self.product.title} does not allow to generate a certificate." msgstr "" -#: joanie/core/models/products.py:934 +#: joanie/core/models/products.py:847 msgid "No graded courses found." msgstr "" -#: joanie/core/models/products.py:950 +#: joanie/core/models/products.py:863 msgid "This order is not ready for gradation." msgstr "" -#: joanie/core/models/products.py:960 +#: joanie/core/models/products.py:873 msgid "Course run " msgstr "" -#: joanie/core/models/products.py:1229 +#: joanie/core/models/products.py:1097 msgid "position in order" msgstr "" -#: joanie/core/models/products.py:1240 +#: joanie/core/models/products.py:1108 msgid "Course relation to an order with a position" msgstr "" -#: joanie/core/models/products.py:1241 +#: joanie/core/models/products.py:1109 msgid "Courses relations to orders with a position" msgstr "" @@ -1064,34 +1089,38 @@ msgstr "" msgid "Site configs" msgstr "" -#: joanie/core/serializers/client.py:153 joanie/core/serializers/client.py:268 +#: joanie/core/serializers/client.py:155 joanie/core/serializers/client.py:270 msgid "You are only allowed to set role to {', '.join(can_set_role_to)}" msgstr "" -#: joanie/core/serializers/client.py:156 joanie/core/serializers/client.py:271 +#: joanie/core/serializers/client.py:158 joanie/core/serializers/client.py:273 msgid "You are not allowed to set this role for this course." msgstr "" -#: joanie/core/serializers/client.py:167 +#: joanie/core/serializers/client.py:169 msgid "You must set a course ID in context to create a new course access." msgstr "" -#: joanie/core/serializers/client.py:177 +#: joanie/core/serializers/client.py:179 msgid "You are not allowed to manage accesses for this course." msgstr "" -#: joanie/core/serializers/client.py:282 +#: joanie/core/serializers/client.py:284 msgid "You must set a organization ID in context to create a new organization access." msgstr "" -#: joanie/core/serializers/client.py:293 +#: joanie/core/serializers/client.py:295 msgid "You are not allowed to manage accesses for this organization." msgstr "" -#: joanie/core/serializers/client.py:754 +#: joanie/core/serializers/client.py:756 msgid "You must accept the terms and conditions to proceed." msgstr "" +#: joanie/core/templates/admin/base.html:5 +msgid "Sentry tools" +msgstr "" + #: joanie/core/templates/certificate/verify.html:9 #: joanie/core/templates/mail/html/order_validated.html:159 #: joanie/core/templates/mail/text/order_validated.txt:3 @@ -1149,10 +1178,14 @@ msgid "Course team" msgstr "" #: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:83 +msgid "Accessibility" +msgstr "" + +#: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:87 msgid "Course plan" msgstr "" -#: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:102 +#: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:106 msgid "Licenses" msgstr "" @@ -1554,7 +1587,7 @@ msgstr "" msgid "Joanie payment application" msgstr "Solicitud de pago Joanie" -#: joanie/payment/backends/base.py:76 joanie/payment/backends/base.py:92 +#: joanie/payment/backends/base.py:77 joanie/payment/backends/base.py:93 msgid "Purchase order confirmed!" msgstr "" @@ -1646,11 +1679,11 @@ msgstr "" msgid "Demote a main credit card is forbidden" msgstr "" -#: joanie/settings.py:145 +#: joanie/settings.py:147 msgid "English" msgstr "" -#: joanie/settings.py:146 +#: joanie/settings.py:148 msgid "French" msgstr "" diff --git a/src/backend/locale/fr_CA/LC_MESSAGES/django.mo b/src/backend/locale/fr_CA/LC_MESSAGES/django.mo index 2f082be5c5df2d0bd5e624b6087cc3f26418c8cd..51986d330e4a8ff290e609cf7409da4b37f21e24 100755 GIT binary patch delta 21 ccmey)@||VE11?it17igPb1Nf@jjwtc0az*riU0rr delta 21 ccmey)@||VE11=L?Ljwgv6Dt$Ljjwtc0axJ%fB*mh diff --git a/src/backend/locale/fr_CA/LC_MESSAGES/django.po b/src/backend/locale/fr_CA/LC_MESSAGES/django.po index 172924304..39fa7e3a8 100644 --- a/src/backend/locale/fr_CA/LC_MESSAGES/django.po +++ b/src/backend/locale/fr_CA/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: joanie\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-10 13:37+0000\n" -"PO-Revision-Date: 2024-04-10 14:41\n" +"POT-Creation-Date: 2024-05-02 15:32+0000\n" +"PO-Revision-Date: 2024-05-03 07:28\n" "Last-Translator: \n" "Language-Team: French, Canada\n" "Language: fr_CA\n" @@ -78,7 +78,7 @@ msgstr "" msgid "Link to the resource the badge has been issued for (e.g. a course session)" msgstr "" -#: joanie/badges/models.py:109 joanie/core/admin.py:92 +#: joanie/badges/models.py:109 joanie/core/admin.py:99 #: joanie/core/models/accounts.py:58 msgid "User" msgstr "" @@ -114,70 +114,75 @@ msgstr[1] "" msgid "Course" msgstr "" -#: joanie/core/admin.py:71 joanie/core/models/products.py:110 +#: joanie/core/admin.py:71 joanie/core/models/products.py:106 #: joanie/core/templates/issuers/invoice.html:78 msgid "Product" msgstr "" -#: joanie/core/admin.py:78 joanie/core/models/courses.py:238 +#: joanie/core/admin.py:78 joanie/core/admin.py:85 +#: joanie/core/models/courses.py:238 msgid "Organization" msgstr "" -#: joanie/core/admin.py:85 joanie/core/models/course_wishes.py:18 +#: joanie/core/admin.py:92 joanie/core/models/course_wishes.py:18 #: joanie/payment/admin.py:26 msgid "Owner" msgstr "" -#: joanie/core/admin.py:99 joanie/core/models/courses.py:812 +#: joanie/core/admin.py:106 joanie/core/models/courses.py:812 msgid "Course run" msgstr "" -#: joanie/core/admin.py:253 joanie/core/admin.py:294 joanie/core/admin.py:413 +#: joanie/core/admin.py:192 +msgid "To get results, choose an organization on the right first, then type the username of the student in the search bar." +msgstr "" + +#: joanie/core/admin.py:281 joanie/core/admin.py:322 joanie/core/admin.py:441 msgid "Main information" msgstr "" -#: joanie/core/admin.py:264 joanie/core/models/courses.py:239 +#: joanie/core/admin.py:292 joanie/core/models/courses.py:239 #: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:50 msgid "Organizations" msgstr "" -#: joanie/core/admin.py:266 +#: joanie/core/admin.py:294 msgid "Select organizations that author this course." msgstr "" -#: joanie/core/admin.py:330 +#: joanie/core/admin.py:358 msgid "Mark course run as gradable" msgstr "" -#: joanie/core/admin.py:356 +#: joanie/core/admin.py:384 msgid "Personal info" msgstr "" -#: joanie/core/admin.py:366 +#: joanie/core/admin.py:394 msgid "Permissions" msgstr "" -#: joanie/core/admin.py:377 +#: joanie/core/admin.py:405 msgid "Important dates" msgstr "" -#: joanie/core/admin.py:564 +#: joanie/core/admin.py:592 msgid "Cancel selected orders" msgstr "" -#: joanie/core/admin.py:616 +#: joanie/core/admin.py:644 msgid "To get results, choose a user on the right" msgstr "" -#: joanie/core/admin.py:660 +#: joanie/core/admin.py:688 msgid "To get results, choose an owner or an organization on the right" msgstr "" -#: joanie/core/admin.py:689 +#: joanie/core/admin.py:717 msgid "Config field" msgstr "" -#: joanie/core/admin.py:690 +#: joanie/core/admin.py:718 msgid "Config fields" msgstr "" @@ -199,7 +204,7 @@ msgid "Enrollment" msgstr "" #: joanie/core/enums.py:37 joanie/core/enums.py:122 -#: joanie/core/models/certifications.py:110 +#: joanie/core/models/certifications.py:116 #: joanie/core/templates/issuers/degree.html:27 msgid "Certificate" msgstr "" @@ -256,7 +261,7 @@ msgstr "" msgid "Degree" msgstr "" -#: joanie/core/enums.py:130 joanie/core/models/products.py:504 +#: joanie/core/enums.py:130 joanie/core/models/products.py:500 msgid "Order" msgstr "" @@ -384,73 +389,73 @@ msgstr "" msgid "Users" msgstr "" -#: joanie/core/models/accounts.py:148 joanie/core/models/certifications.py:33 +#: joanie/core/models/accounts.py:154 joanie/core/models/certifications.py:33 #: joanie/core/models/contracts.py:29 joanie/core/models/courses.py:170 #: joanie/core/models/courses.py:470 joanie/core/models/courses.py:783 -#: joanie/core/models/products.py:71 joanie/payment/models.py:360 +#: joanie/core/models/products.py:67 joanie/payment/models.py:360 msgid "title" msgstr "" -#: joanie/core/models/accounts.py:149 +#: joanie/core/models/accounts.py:155 msgid "address" msgstr "" -#: joanie/core/models/accounts.py:150 +#: joanie/core/models/accounts.py:156 msgid "postcode" msgstr "" -#: joanie/core/models/accounts.py:151 +#: joanie/core/models/accounts.py:157 msgid "city" msgstr "" -#: joanie/core/models/accounts.py:152 joanie/core/models/courses.py:181 +#: joanie/core/models/accounts.py:158 joanie/core/models/courses.py:181 msgid "country" msgstr "" -#: joanie/core/models/accounts.py:153 +#: joanie/core/models/accounts.py:159 msgid "first name" msgstr "" -#: joanie/core/models/accounts.py:154 +#: joanie/core/models/accounts.py:160 msgid "last name" msgstr "" -#: joanie/core/models/accounts.py:157 joanie/core/models/courses.py:357 -#: joanie/core/models/courses.py:587 joanie/core/models/products.py:449 +#: joanie/core/models/accounts.py:163 joanie/core/models/courses.py:357 +#: joanie/core/models/courses.py:587 joanie/core/models/products.py:445 #: joanie/payment/models.py:369 msgid "owner" msgstr "" -#: joanie/core/models/accounts.py:165 joanie/core/models/certifications.py:97 -#: joanie/core/models/products.py:392 +#: joanie/core/models/accounts.py:171 joanie/core/models/certifications.py:97 +#: joanie/core/models/products.py:388 msgid "organization" msgstr "" -#: joanie/core/models/accounts.py:171 joanie/payment/models.py:373 +#: joanie/core/models/accounts.py:177 joanie/payment/models.py:373 msgid "main" msgstr "" -#: joanie/core/models/accounts.py:172 +#: joanie/core/models/accounts.py:178 msgid "reusable" msgstr "" -#: joanie/core/models/accounts.py:176 +#: joanie/core/models/accounts.py:182 msgid "Address" msgstr "" -#: joanie/core/models/accounts.py:177 +#: joanie/core/models/accounts.py:183 msgid "Addresses" msgstr "" -#: joanie/core/models/accounts.py:196 +#: joanie/core/models/accounts.py:202 msgid "Either owner or organization must be set." msgstr "" -#: joanie/core/models/accounts.py:201 +#: joanie/core/models/accounts.py:207 msgid "Main address must be reusable." msgstr "" -#: joanie/core/models/accounts.py:225 +#: joanie/core/models/accounts.py:231 msgid "Demote a main address is forbidden" msgstr "" @@ -463,12 +468,12 @@ msgid "level" msgstr "" #: joanie/core/models/activity_logs.py:74 -#: joanie/core/models/certifications.py:102 joanie/core/models/contracts.py:90 +#: joanie/core/models/certifications.py:108 joanie/core/models/contracts.py:90 #: joanie/payment/models.py:74 msgid "context" msgstr "" -#: joanie/core/models/activity_logs.py:78 joanie/core/models/products.py:68 +#: joanie/core/models/activity_logs.py:78 joanie/core/models/products.py:64 msgid "type" msgstr "" @@ -480,36 +485,52 @@ msgstr "" msgid "activity_logs" msgstr "" -#: joanie/core/models/base.py:20 +#: joanie/core/models/base.py:22 msgid "id" msgstr "" -#: joanie/core/models/base.py:21 +#: joanie/core/models/base.py:23 msgid "primary key for the record as UUID" msgstr "" -#: joanie/core/models/base.py:27 +#: joanie/core/models/base.py:29 msgid "created on" msgstr "" -#: joanie/core/models/base.py:28 +#: joanie/core/models/base.py:30 msgid "date and time at which a record was created" msgstr "" -#: joanie/core/models/base.py:33 +#: joanie/core/models/base.py:35 msgid "updated on" msgstr "" -#: joanie/core/models/base.py:34 +#: joanie/core/models/base.py:36 msgid "date and time at which a record was last updated" msgstr "" +#: joanie/core/models/base.py:80 +msgid "checksum" +msgstr "" + +#: joanie/core/models/base.py:82 +msgid "SHA-256 Checksum of the file" +msgstr "" + +#: joanie/core/models/base.py:87 +msgid "file" +msgstr "" + +#: joanie/core/models/base.py:89 +msgid "File used in the certificate" +msgstr "" + #: joanie/core/models/certifications.py:31 msgid "name" msgstr "" #: joanie/core/models/certifications.py:34 joanie/core/models/contracts.py:30 -#: joanie/core/models/products.py:72 +#: joanie/core/models/products.py:68 msgid "description" msgstr "" @@ -531,19 +552,23 @@ msgid "Date of issuance" msgstr "" #: joanie/core/models/certifications.py:82 joanie/core/models/contracts.py:80 -#: joanie/core/models/products.py:1225 joanie/payment/models.py:54 +#: joanie/core/models/products.py:1093 joanie/payment/models.py:54 msgid "order" msgstr "" -#: joanie/core/models/certifications.py:91 joanie/core/models/products.py:414 +#: joanie/core/models/certifications.py:91 joanie/core/models/products.py:410 msgid "enrollment" msgstr "" -#: joanie/core/models/certifications.py:103 +#: joanie/core/models/certifications.py:102 +msgid "images" +msgstr "" + +#: joanie/core/models/certifications.py:109 msgid "Localized data that needs to be frozen on certificate creation" msgstr "" -#: joanie/core/models/certifications.py:111 +#: joanie/core/models/certifications.py:117 msgid "Certificates" msgstr "" @@ -560,7 +585,7 @@ msgid "template name" msgstr "" #: joanie/core/models/contracts.py:48 joanie/core/models/contracts.py:73 -#: joanie/core/models/products.py:102 +#: joanie/core/models/products.py:98 msgid "Contract definition" msgstr "" @@ -765,13 +790,13 @@ msgid "Course accesses" msgstr "" #: joanie/core/models/courses.py:705 joanie/core/models/courses.py:777 -#: joanie/core/models/products.py:278 joanie/core/models/products.py:407 -#: joanie/core/models/products.py:1213 +#: joanie/core/models/products.py:274 joanie/core/models/products.py:403 +#: joanie/core/models/products.py:1081 msgid "course" msgstr "" -#: joanie/core/models/courses.py:711 joanie/core/models/products.py:284 -#: joanie/core/models/products.py:399 +#: joanie/core/models/courses.py:711 joanie/core/models/products.py:280 +#: joanie/core/models/products.py:395 msgid "product" msgstr "" @@ -855,192 +880,192 @@ msgstr "" msgid "Enrollments" msgstr "" -#: joanie/core/models/courses.py:1019 +#: joanie/core/models/courses.py:1023 msgid "active" msgstr "" -#: joanie/core/models/courses.py:1019 +#: joanie/core/models/courses.py:1023 msgid "inactive" msgstr "" -#: joanie/core/models/courses.py:1089 +#: joanie/core/models/courses.py:1093 msgid "You are not allowed to enroll to a course run not opened for enrollment." msgstr "" -#: joanie/core/models/courses.py:1105 +#: joanie/core/models/courses.py:1109 msgid "You are already enrolled to an opened course run " msgstr "" -#: joanie/core/models/courses.py:1116 +#: joanie/core/models/courses.py:1120 msgid "You cannot enroll to a non-listed course run out of the scope of an order." msgstr "" -#: joanie/core/models/courses.py:1141 +#: joanie/core/models/courses.py:1145 msgid "Course run \"{self.course_run.id!s}\" requires a valid order to enroll." msgstr "" -#: joanie/core/models/courses.py:1146 +#: joanie/core/models/courses.py:1150 msgid "You are not allowed to enroll to a course run not listed." msgstr "" -#: joanie/core/models/products.py:73 +#: joanie/core/models/products.py:69 msgid "instructions" msgstr "" -#: joanie/core/models/products.py:74 +#: joanie/core/models/products.py:70 msgid "call to action" msgstr "" -#: joanie/core/models/products.py:81 +#: joanie/core/models/products.py:77 msgid "target courses" msgstr "" -#: joanie/core/models/products.py:85 joanie/core/models/products.py:438 +#: joanie/core/models/products.py:81 joanie/core/models/products.py:434 msgid "price" msgstr "" -#: joanie/core/models/products.py:86 joanie/core/models/products.py:440 +#: joanie/core/models/products.py:82 joanie/core/models/products.py:436 msgid "tax included" msgstr "" -#: joanie/core/models/products.py:95 +#: joanie/core/models/products.py:91 msgid "certificate definition" msgstr "" -#: joanie/core/models/products.py:111 +#: joanie/core/models/products.py:107 msgid "Products" msgstr "" -#: joanie/core/models/products.py:258 +#: joanie/core/models/products.py:254 msgid "Certificate definition is only allowed for product kinds: " msgstr "" -#: joanie/core/models/products.py:293 joanie/core/models/products.py:1219 +#: joanie/core/models/products.py:289 joanie/core/models/products.py:1087 msgid "course runs" msgstr "" -#: joanie/core/models/products.py:296 +#: joanie/core/models/products.py:292 msgid "position in product" msgstr "" -#: joanie/core/models/products.py:298 joanie/core/models/products.py:1231 +#: joanie/core/models/products.py:294 joanie/core/models/products.py:1099 msgid "take into account for certification" msgstr "" -#: joanie/core/models/products.py:299 joanie/core/models/products.py:1232 +#: joanie/core/models/products.py:295 joanie/core/models/products.py:1100 msgid "Take into account the course grade for certification." msgstr "" -#: joanie/core/models/products.py:307 +#: joanie/core/models/products.py:303 msgid "Target course relation to a product with a position" msgstr "" -#: joanie/core/models/products.py:308 +#: joanie/core/models/products.py:304 msgid "Target courses relations to products with a position" msgstr "" -#: joanie/core/models/products.py:339 +#: joanie/core/models/products.py:335 msgid "Number of seats" msgstr "" -#: joanie/core/models/products.py:341 +#: joanie/core/models/products.py:337 msgid "The maximum number of orders that can be validated for a given order group" msgstr "" -#: joanie/core/models/products.py:346 +#: joanie/core/models/products.py:342 msgid "course product relation" msgstr "" -#: joanie/core/models/products.py:350 +#: joanie/core/models/products.py:346 msgid "is active" msgstr "" -#: joanie/core/models/products.py:423 +#: joanie/core/models/products.py:419 msgid "order group" msgstr "" -#: joanie/core/models/products.py:434 +#: joanie/core/models/products.py:430 msgid "courses" msgstr "" -#: joanie/core/models/products.py:455 +#: joanie/core/models/products.py:451 msgid "has consent to terms" msgstr "" -#: joanie/core/models/products.py:458 +#: joanie/core/models/products.py:454 msgid "User has consented to the platform terms and conditions." msgstr "" -#: joanie/core/models/products.py:466 +#: joanie/core/models/products.py:462 msgid "payment schedule" msgstr "" -#: joanie/core/models/products.py:467 +#: joanie/core/models/products.py:463 msgid "Payment schedule for the order." msgstr "" -#: joanie/core/models/products.py:505 +#: joanie/core/models/products.py:501 msgid "Orders" msgstr "" -#: joanie/core/models/products.py:673 +#: joanie/core/models/products.py:586 #, python-brace-format msgid "{required_field} field should be set for {self.product.type} products." msgstr "" -#: joanie/core/models/products.py:679 +#: joanie/core/models/products.py:592 #, python-brace-format msgid "{empty_field} field should be left empty for {self.product.type} products." msgstr "" -#: joanie/core/models/products.py:686 +#: joanie/core/models/products.py:599 msgid "The enrollment should belong to the owner of this order." msgstr "" -#: joanie/core/models/products.py:691 +#: joanie/core/models/products.py:604 msgid "Orders can't be placed on enrollments originating from an order." msgstr "" -#: joanie/core/models/products.py:700 +#: joanie/core/models/products.py:613 msgid "The order cannot be generated on course run that is in archived state." msgstr "" -#: joanie/core/models/products.py:719 +#: joanie/core/models/products.py:632 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\", " msgstr "" -#: joanie/core/models/products.py:725 +#: joanie/core/models/products.py:638 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\" and " msgstr "" -#: joanie/core/models/products.py:919 +#: joanie/core/models/products.py:832 #, python-brace-format msgid "Product {self.product.title} does not allow to generate a certificate." msgstr "" -#: joanie/core/models/products.py:934 +#: joanie/core/models/products.py:847 msgid "No graded courses found." msgstr "" -#: joanie/core/models/products.py:950 +#: joanie/core/models/products.py:863 msgid "This order is not ready for gradation." msgstr "" -#: joanie/core/models/products.py:960 +#: joanie/core/models/products.py:873 msgid "Course run " msgstr "" -#: joanie/core/models/products.py:1229 +#: joanie/core/models/products.py:1097 msgid "position in order" msgstr "" -#: joanie/core/models/products.py:1240 +#: joanie/core/models/products.py:1108 msgid "Course relation to an order with a position" msgstr "" -#: joanie/core/models/products.py:1241 +#: joanie/core/models/products.py:1109 msgid "Courses relations to orders with a position" msgstr "" @@ -1064,34 +1089,38 @@ msgstr "" msgid "Site configs" msgstr "" -#: joanie/core/serializers/client.py:153 joanie/core/serializers/client.py:268 +#: joanie/core/serializers/client.py:155 joanie/core/serializers/client.py:270 msgid "You are only allowed to set role to {', '.join(can_set_role_to)}" msgstr "" -#: joanie/core/serializers/client.py:156 joanie/core/serializers/client.py:271 +#: joanie/core/serializers/client.py:158 joanie/core/serializers/client.py:273 msgid "You are not allowed to set this role for this course." msgstr "" -#: joanie/core/serializers/client.py:167 +#: joanie/core/serializers/client.py:169 msgid "You must set a course ID in context to create a new course access." msgstr "" -#: joanie/core/serializers/client.py:177 +#: joanie/core/serializers/client.py:179 msgid "You are not allowed to manage accesses for this course." msgstr "" -#: joanie/core/serializers/client.py:282 +#: joanie/core/serializers/client.py:284 msgid "You must set a organization ID in context to create a new organization access." msgstr "" -#: joanie/core/serializers/client.py:293 +#: joanie/core/serializers/client.py:295 msgid "You are not allowed to manage accesses for this organization." msgstr "" -#: joanie/core/serializers/client.py:754 +#: joanie/core/serializers/client.py:756 msgid "You must accept the terms and conditions to proceed." msgstr "" +#: joanie/core/templates/admin/base.html:5 +msgid "Sentry tools" +msgstr "" + #: joanie/core/templates/certificate/verify.html:9 #: joanie/core/templates/mail/html/order_validated.html:159 #: joanie/core/templates/mail/text/order_validated.txt:3 @@ -1149,10 +1178,14 @@ msgid "Course team" msgstr "" #: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:83 +msgid "Accessibility" +msgstr "" + +#: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:87 msgid "Course plan" msgstr "" -#: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:102 +#: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:106 msgid "Licenses" msgstr "" @@ -1554,7 +1587,7 @@ msgstr "" msgid "Joanie payment application" msgstr "Application de paiement de Joanie" -#: joanie/payment/backends/base.py:76 joanie/payment/backends/base.py:92 +#: joanie/payment/backends/base.py:77 joanie/payment/backends/base.py:93 msgid "Purchase order confirmed!" msgstr "" @@ -1646,11 +1679,11 @@ msgstr "" msgid "Demote a main credit card is forbidden" msgstr "" -#: joanie/settings.py:145 +#: joanie/settings.py:147 msgid "English" msgstr "" -#: joanie/settings.py:146 +#: joanie/settings.py:148 msgid "French" msgstr "" diff --git a/src/backend/locale/fr_FR/LC_MESSAGES/django.mo b/src/backend/locale/fr_FR/LC_MESSAGES/django.mo index 2b2eb715145bdf11d15bf65dc11d26a019801af1..0f1df1b7bd92b5ad86127ddd9b6cb2405b00b4cf 100755 GIT binary patch delta 9230 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 delta 8700 zcmZA530zlI-pBC+D!U?!vMO%if*>Fuk_s-!;tDP(n&fVxX=&nqwbW)xEQc%^b19n{ zEw$xeF4L3FWcrlzm}NHQGO5*!&Z8yPq?u{+`TpyP`c zUE}L~9^QC^;aKZqOgt_PF{YKTG3TPyYRvGq#%#e-Y=ZUJ0dHU-#e;#c29B&rr~VUqMD>4x=7)3S+Sz6ET<{8hJYE0Y#|uldu&o z!zkQ@nz;uf@i6N7pP?pl74@9kSV8|LJc*I|7&9BwsMmCKAAAsX;c4{8dJM!LP$~B9 zWK0moVK+>|TpW#DV%8)7nFIXL%)dYl_-E9>Vmp)nCKS3+@WU)r2fZ*I2cibB5Ow2| zsE%Jkl41@cV>Xwu2t&KL*Ns7Ca2_f%PhvmZjYF{>mFc`>@*hlLcrxk5@u&`Gpl0Hr zQu;?^Uz(HF^VX}Vy>rXz-_@O23k;yW3o7;9t%dgdI1HqHZddYOMqx1x%D{2dW;uny zcoWq@qZHRL)Y>LkyP>YjL#22SG8QufgYap4ek&GGf7#ZrTkkj&w6=k%?u}unl=VhE zU>vH0X*diYLS^I~!^;R z*@4;<9gt-;T`&|!q6RtzHLzKz>#ObgM^X3HqB^Rx=eJ=g^%+`yWf8 z5e=PjF{Yq8+<}d8KdR%mQEPbwHGtC?f?r{CypGy4zD!?xs5dsnk*Li$3AKrrqn4`9 z+s^v$rJ&TEM7|m3D(dxU-re2hiKvm6pdNf5YI9X%39dj^(fkGb;4RcZax(eK;XKp_ z>1otJJ*WY_iy3%i%MU$gCu)GNTMwc-Jcb(ZNz?={Oy(zK-7nSuJw_i|{*STbW+0 zXK(s9^C>8`uVX%5Mm_lY7B!Vmbk;7KZHTl-?jA<=uiEW^&G0>uTa-r z!6>|8>&-}mmLLWljVzIZKW3mh&PCmrk6M~Rn1Y6(yE~JHj#!Mo_#g)0e0$+C)Qyj$2D$;&(Pq?U+l{*ZYYfC2 zsDWzTR1ZO&Z;2XMf^APNA^)0j4h>3uA8UV9M@6Vq4!7;)s0WQl-8U80Q59-N)u^Rf zg<9)PsOxs3?t2B5k^QKQz3)(npm5e+a1C|C57-Xxq6X4-ko$nns2OCSc6DEj!6m2; zH=sJ&j_q+5Dgz&)CU^#e@jR*@=L!W~a2<8SZSOEwAhfNIoI zEVK0*R7bTKgd1&rJL)qzqrAo;%Ea;CW1<{uLHr z@NoCOQq*_hIaG(ApuU_Junm5P>Nv90oj_;Q`Fbl@E_wR#P>_9yqlW{7h;Cg%h5b8DjJI3N2)%E^Ik8mH9hWa+=q1JRf z>aAFS`n9h1xswY<(GO^R2e7Lrv&eY=v*225=I!cP@`6|9ZW? zp&=N*M?TNSr`%0x0cvJd)*4Kw{t9--i#Q2ejB)qILQJH-)p`V(o4JCMF`sGc)BGYf z#lvICzc$TBG{oRJWPh0(s5Kf`;SOvfMpK`SEpZJ-;bv6I-$V`cC@N!@QPszBTl#T3fljl%SDr!(8t3{3Mb=2ni6Y9njr~zKGb)WI>bup-pJ7N|VqXy)lHtAD1 z9bd5ZpnKgt6p!lHNvEJ2d!Rlzvr!{_%3e^1B*Sb)4dfPPW7q`uZ79NA>PxJ9F^~Fn z)aFaCbe~s%%HU8;!|B*V@Bc;$TKf-Co9P_p;6H48!hLQ^lTp`o#}LdzWoj^L4^^P< zpNPs_6*3017~}9XYH7YlW#|qz()-_RBJU^-;i#0oi28!8Ao70>NBx7?nb8(g)0>Ffw+bmz|WY7QPbQR z^hV8S3@SrYQSWgzYCtup)IWoa$!tR{L1T7aJB+~gn2qYE0=0BAr`z{`Aq|l%ujGA z+(Tg!#^V-Dz_+jj&!Rd=s$yT@9Mqn875(si)Qmqwy>4G(Al}3}^qJ)jU=s#W-)`%B zuqSnAuPxMLE)88~yC0gVsDU`B0d7U@;JEO1;~#MUGRmLh4sOrIMrFolsry=mpzaT|^;pz(38+jZVoS`x=2(pSepH~IKWi!Z*9}W)(1RaA z?cN&9!e_0=QA^Qinfp41qUwpLnWdvU-5L3zW)O-RP(11ZNvIj6qSmkgm4OYY>$ad$y8|`jeW;AShZ^V!d;Uw?{;fkn zU#MHC2i!$<9KgVIV++(~i$`_T#@ZS6K>Y)fIvj|taTF@G^HG~}73z7vv2I1pd>86F z;vA)*RGvo-2}ol{g{MDQ4{(a_1v4NCH@Ju z+hmEI)<9i3F}#GL;VsK zW56TsePuXC?|&tQ5uDhMKDdK;pU^RphR<*{{-3wS{ZT;O(Zw8@#Ql`ZZ2bWBcw!2% zk#~K&!&rSRsMf)jK+GkMKhWv@(W$~`<34EHE zPBa|7xo$L-Kx{#DvL}2fHyq6=>-FT|`_Ipxi6@BP5js|J!6huhhlocB9h0q3QBI=# zHvUT|?9rCC;kLZq+TGrxs@|B_iLX`RC{_ObxL_ZZ9@v3Mv^P9S+c&z(9xHGT=LRY$ z$J^`vpK^a<1;4Qho(?e}p zuU{R}lzTqJUBoNIb3{wpGVHV7qdt+yqF!O!p1}X1O~*nX`kznXHE;EoAGs7;5I+#V zvN!5%4CP7q5s^Sy?|T}tlF*^o_)~Am{Sg2K#Kr$;J41P!t&jI%{^eB0^043IEaIp= z*$WG4*Dn?w(UkAUPB_Zj^2?7qw%Cz#!&JsMU=aQq^;pUVm=^~4wUq*!Xpr}1T5ehJHYSd6W=x1A}ALkNFj32hhfCh@;SPvS>H$9;tU z!K2|g=I(#@9|_cWl?WzU*^5?D{)$*k{nxfFmih~Xjw!UY$CE?{ViD1kwioda#6qGA z_0`x2i*Oh=96L4gZZ!Df12~O1PWf`f6&OL=ZH&Z6ZTn(eLVQQGCOUJj5Ow%cP9t>8 zBQl6bi0QO>aIighg|c`5wWDFKZ9Gh)j(*g0Y+Et)D#~HRBqGFnh5HA}Uu?M-?dvEX zBp$SF4RmWL;6H464A*lwW+jEcQVMn(%&V095h;X@KNGq3+yWd#y^l`VV>WGPDK{d% zB%+99dwmpsOnm^cobo-yZzyjkbTn&N{{>WnI2ngsiH8UszjZOqIH%)X7xO%(&{jf> zCjM^Q2je*EAK3akIFGuH#+XX1C4#88RbzAFdtwodYlvFU@wW5)JVQI33Gfu87Y5Ys z>^a!un>!)EbE;pKpC`O{f=}(kCFP!vOO`hd%1lX5Ym=Uto0;tyH>_KLr>;CZ$n)LA pD}l8?R+W0nW~~bJ%vo^S-&4B$_dc~hJJV`EE@|OexuU-DzX8j&-Ut8y diff --git a/src/backend/locale/fr_FR/LC_MESSAGES/django.po b/src/backend/locale/fr_FR/LC_MESSAGES/django.po index 3557700d4..bb6ce2dd6 100644 --- a/src/backend/locale/fr_FR/LC_MESSAGES/django.po +++ b/src/backend/locale/fr_FR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: joanie\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-10 13:37+0000\n" -"PO-Revision-Date: 2024-04-10 14:46\n" +"POT-Creation-Date: 2024-05-02 15:32+0000\n" +"PO-Revision-Date: 2024-05-03 07:28\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -78,7 +78,7 @@ msgstr "Lien de la ressource" msgid "Link to the resource the badge has been issued for (e.g. a course session)" msgstr "Lien vers la ressource pour laquelle le badge a été émis (par ex. une session de cours)" -#: joanie/badges/models.py:109 joanie/core/admin.py:92 +#: joanie/badges/models.py:109 joanie/core/admin.py:99 #: joanie/core/models/accounts.py:58 msgid "User" msgstr "Utilisateur" @@ -114,70 +114,75 @@ msgstr[1] "{:d} certificats ont été générés." msgid "Course" msgstr "Cours" -#: joanie/core/admin.py:71 joanie/core/models/products.py:110 +#: joanie/core/admin.py:71 joanie/core/models/products.py:106 #: joanie/core/templates/issuers/invoice.html:78 msgid "Product" msgstr "Produit" -#: joanie/core/admin.py:78 joanie/core/models/courses.py:238 +#: joanie/core/admin.py:78 joanie/core/admin.py:85 +#: joanie/core/models/courses.py:238 msgid "Organization" msgstr "Établissement" -#: joanie/core/admin.py:85 joanie/core/models/course_wishes.py:18 +#: joanie/core/admin.py:92 joanie/core/models/course_wishes.py:18 #: joanie/payment/admin.py:26 msgid "Owner" msgstr "Propriétaire" -#: joanie/core/admin.py:99 joanie/core/models/courses.py:812 +#: joanie/core/admin.py:106 joanie/core/models/courses.py:812 msgid "Course run" msgstr "Session de cours" -#: joanie/core/admin.py:253 joanie/core/admin.py:294 joanie/core/admin.py:413 +#: joanie/core/admin.py:192 +msgid "To get results, choose an organization on the right first, then type the username of the student in the search bar." +msgstr "Pour obtenir des résultats, choisissez d'abord une organisation sur la droite, puis tapez le nom d'utilisateur de l'élève dans la barre de recherche." + +#: joanie/core/admin.py:281 joanie/core/admin.py:322 joanie/core/admin.py:441 msgid "Main information" msgstr "Information principale" -#: joanie/core/admin.py:264 joanie/core/models/courses.py:239 +#: joanie/core/admin.py:292 joanie/core/models/courses.py:239 #: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:50 msgid "Organizations" msgstr "Établissements" -#: joanie/core/admin.py:266 +#: joanie/core/admin.py:294 msgid "Select organizations that author this course." msgstr "Sélectionnez les établissements qui ont créés ce cours." -#: joanie/core/admin.py:330 +#: joanie/core/admin.py:358 msgid "Mark course run as gradable" msgstr "Marquez la session de cours comme étant disponible à la notation" -#: joanie/core/admin.py:356 +#: joanie/core/admin.py:384 msgid "Personal info" msgstr "Information personnelle" -#: joanie/core/admin.py:366 +#: joanie/core/admin.py:394 msgid "Permissions" msgstr "Permissions" -#: joanie/core/admin.py:377 +#: joanie/core/admin.py:405 msgid "Important dates" msgstr "Dates importantes" -#: joanie/core/admin.py:564 +#: joanie/core/admin.py:592 msgid "Cancel selected orders" msgstr "Annuler les commandes sélectionnées" -#: joanie/core/admin.py:616 +#: joanie/core/admin.py:644 msgid "To get results, choose a user on the right" msgstr "Pour obtenir des résultats, choisissez un utilisateur sur la droite" -#: joanie/core/admin.py:660 +#: joanie/core/admin.py:688 msgid "To get results, choose an owner or an organization on the right" msgstr "Pour obtenir des résultats, choisissez un propriétaire ou un établissement à droite" -#: joanie/core/admin.py:689 +#: joanie/core/admin.py:717 msgid "Config field" msgstr "Champ de configuration" -#: joanie/core/admin.py:690 +#: joanie/core/admin.py:718 msgid "Config fields" msgstr "Champs de configuration" @@ -199,7 +204,7 @@ msgid "Enrollment" msgstr "Inscription" #: joanie/core/enums.py:37 joanie/core/enums.py:122 -#: joanie/core/models/certifications.py:110 +#: joanie/core/models/certifications.py:116 #: joanie/core/templates/issuers/degree.html:27 msgid "Certificate" msgstr "Certificat" @@ -256,7 +261,7 @@ msgstr "Signé" msgid "Degree" msgstr "Diplôme" -#: joanie/core/enums.py:130 joanie/core/models/products.py:504 +#: joanie/core/enums.py:130 joanie/core/models/products.py:500 msgid "Order" msgstr "Commande" @@ -384,73 +389,73 @@ msgstr "s'est abonné à la newsletter commerciale" msgid "Users" msgstr "Utilisateurs" -#: joanie/core/models/accounts.py:148 joanie/core/models/certifications.py:33 +#: joanie/core/models/accounts.py:154 joanie/core/models/certifications.py:33 #: joanie/core/models/contracts.py:29 joanie/core/models/courses.py:170 #: joanie/core/models/courses.py:470 joanie/core/models/courses.py:783 -#: joanie/core/models/products.py:71 joanie/payment/models.py:360 +#: joanie/core/models/products.py:67 joanie/payment/models.py:360 msgid "title" msgstr "titre" -#: joanie/core/models/accounts.py:149 +#: joanie/core/models/accounts.py:155 msgid "address" msgstr "adresse" -#: joanie/core/models/accounts.py:150 +#: joanie/core/models/accounts.py:156 msgid "postcode" msgstr "code postal" -#: joanie/core/models/accounts.py:151 +#: joanie/core/models/accounts.py:157 msgid "city" msgstr "ville" -#: joanie/core/models/accounts.py:152 joanie/core/models/courses.py:181 +#: joanie/core/models/accounts.py:158 joanie/core/models/courses.py:181 msgid "country" msgstr "pays" -#: joanie/core/models/accounts.py:153 +#: joanie/core/models/accounts.py:159 msgid "first name" msgstr "prénom" -#: joanie/core/models/accounts.py:154 +#: joanie/core/models/accounts.py:160 msgid "last name" msgstr "nom de famille" -#: joanie/core/models/accounts.py:157 joanie/core/models/courses.py:357 -#: joanie/core/models/courses.py:587 joanie/core/models/products.py:449 +#: joanie/core/models/accounts.py:163 joanie/core/models/courses.py:357 +#: joanie/core/models/courses.py:587 joanie/core/models/products.py:445 #: joanie/payment/models.py:369 msgid "owner" msgstr "propriétaire" -#: joanie/core/models/accounts.py:165 joanie/core/models/certifications.py:97 -#: joanie/core/models/products.py:392 +#: joanie/core/models/accounts.py:171 joanie/core/models/certifications.py:97 +#: joanie/core/models/products.py:388 msgid "organization" msgstr "établissement" -#: joanie/core/models/accounts.py:171 joanie/payment/models.py:373 +#: joanie/core/models/accounts.py:177 joanie/payment/models.py:373 msgid "main" msgstr "principal" -#: joanie/core/models/accounts.py:172 +#: joanie/core/models/accounts.py:178 msgid "reusable" msgstr "réutilisable" -#: joanie/core/models/accounts.py:176 +#: joanie/core/models/accounts.py:182 msgid "Address" msgstr "Adresse" -#: joanie/core/models/accounts.py:177 +#: joanie/core/models/accounts.py:183 msgid "Addresses" msgstr "Adresses" -#: joanie/core/models/accounts.py:196 +#: joanie/core/models/accounts.py:202 msgid "Either owner or organization must be set." msgstr "Le propriétaire ou l'établissement doit être défini." -#: joanie/core/models/accounts.py:201 +#: joanie/core/models/accounts.py:207 msgid "Main address must be reusable." msgstr "L'adresse principale doit être réutilisable." -#: joanie/core/models/accounts.py:225 +#: joanie/core/models/accounts.py:231 msgid "Demote a main address is forbidden" msgstr "Rétrograder une adresse principale est interdit" @@ -463,12 +468,12 @@ msgid "level" msgstr "niveau" #: joanie/core/models/activity_logs.py:74 -#: joanie/core/models/certifications.py:102 joanie/core/models/contracts.py:90 +#: joanie/core/models/certifications.py:108 joanie/core/models/contracts.py:90 #: joanie/payment/models.py:74 msgid "context" msgstr "contexte" -#: joanie/core/models/activity_logs.py:78 joanie/core/models/products.py:68 +#: joanie/core/models/activity_logs.py:78 joanie/core/models/products.py:64 msgid "type" msgstr "type" @@ -480,36 +485,52 @@ msgstr "journal_activités" msgid "activity_logs" msgstr "journaux_activités" -#: joanie/core/models/base.py:20 +#: joanie/core/models/base.py:22 msgid "id" msgstr "id" -#: joanie/core/models/base.py:21 +#: joanie/core/models/base.py:23 msgid "primary key for the record as UUID" msgstr "clé primaire de l'entrée sous la forme d'un UUID" -#: joanie/core/models/base.py:27 +#: joanie/core/models/base.py:29 msgid "created on" msgstr "créé le" -#: joanie/core/models/base.py:28 +#: joanie/core/models/base.py:30 msgid "date and time at which a record was created" msgstr "date et heure à laquelle une entrée a été créée" -#: joanie/core/models/base.py:33 +#: joanie/core/models/base.py:35 msgid "updated on" msgstr "modifié le" -#: joanie/core/models/base.py:34 +#: joanie/core/models/base.py:36 msgid "date and time at which a record was last updated" msgstr "date et heure à laquelle l'entrée a été modifiée" +#: joanie/core/models/base.py:80 +msgid "checksum" +msgstr "checksum" + +#: joanie/core/models/base.py:82 +msgid "SHA-256 Checksum of the file" +msgstr "Checksum SHA-256 du fichier" + +#: joanie/core/models/base.py:87 +msgid "file" +msgstr "fichier" + +#: joanie/core/models/base.py:89 +msgid "File used in the certificate" +msgstr "Fichier utilisé dans le certificat" + #: joanie/core/models/certifications.py:31 msgid "name" msgstr "nom" #: joanie/core/models/certifications.py:34 joanie/core/models/contracts.py:30 -#: joanie/core/models/products.py:72 +#: joanie/core/models/products.py:68 msgid "description" msgstr "description" @@ -531,19 +552,23 @@ msgid "Date of issuance" msgstr "Date de délivrance" #: joanie/core/models/certifications.py:82 joanie/core/models/contracts.py:80 -#: joanie/core/models/products.py:1225 joanie/payment/models.py:54 +#: joanie/core/models/products.py:1093 joanie/payment/models.py:54 msgid "order" msgstr "commande" -#: joanie/core/models/certifications.py:91 joanie/core/models/products.py:414 +#: joanie/core/models/certifications.py:91 joanie/core/models/products.py:410 msgid "enrollment" msgstr "inscription" -#: joanie/core/models/certifications.py:103 +#: joanie/core/models/certifications.py:102 +msgid "images" +msgstr "images" + +#: joanie/core/models/certifications.py:109 msgid "Localized data that needs to be frozen on certificate creation" msgstr "Données traduites qui doivent être gelées lors de la création d'un certificat" -#: joanie/core/models/certifications.py:111 +#: joanie/core/models/certifications.py:117 msgid "Certificates" msgstr "Certificats" @@ -560,7 +585,7 @@ msgid "template name" msgstr "nom du modèle" #: joanie/core/models/contracts.py:48 joanie/core/models/contracts.py:73 -#: joanie/core/models/products.py:102 +#: joanie/core/models/products.py:98 msgid "Contract definition" msgstr "Définition de contrat" @@ -765,13 +790,13 @@ msgid "Course accesses" msgstr "Droits d'accès aux cours" #: joanie/core/models/courses.py:705 joanie/core/models/courses.py:777 -#: joanie/core/models/products.py:278 joanie/core/models/products.py:407 -#: joanie/core/models/products.py:1213 +#: joanie/core/models/products.py:274 joanie/core/models/products.py:403 +#: joanie/core/models/products.py:1081 msgid "course" msgstr "cours" -#: joanie/core/models/courses.py:711 joanie/core/models/products.py:284 -#: joanie/core/models/products.py:399 +#: joanie/core/models/courses.py:711 joanie/core/models/products.py:280 +#: joanie/core/models/products.py:395 msgid "product" msgstr "produit" @@ -855,192 +880,192 @@ msgstr "a été créé pour une commande" msgid "Enrollments" msgstr "Inscriptions" -#: joanie/core/models/courses.py:1019 +#: joanie/core/models/courses.py:1023 msgid "active" msgstr "active" -#: joanie/core/models/courses.py:1019 +#: joanie/core/models/courses.py:1023 msgid "inactive" msgstr "inactive" -#: joanie/core/models/courses.py:1089 +#: joanie/core/models/courses.py:1093 msgid "You are not allowed to enroll to a course run not opened for enrollment." msgstr "Vous n'êtes pas autorisé à vous inscrire à une session de cours qui n'est pas ouverte à l'inscription." -#: joanie/core/models/courses.py:1105 +#: joanie/core/models/courses.py:1109 msgid "You are already enrolled to an opened course run " msgstr "Vous êtes déjà inscrit à une session de cours ouverte " -#: joanie/core/models/courses.py:1116 +#: joanie/core/models/courses.py:1120 msgid "You cannot enroll to a non-listed course run out of the scope of an order." msgstr "Vous ne pouvez pas vous inscrire à un cours non listé en dehors d'une commande." -#: joanie/core/models/courses.py:1141 +#: joanie/core/models/courses.py:1145 msgid "Course run \"{self.course_run.id!s}\" requires a valid order to enroll." msgstr "La session de cours \"{self.course_run.resource_link:s}\" nécessite une commande valide pour s'inscrire." -#: joanie/core/models/courses.py:1146 +#: joanie/core/models/courses.py:1150 msgid "You are not allowed to enroll to a course run not listed." msgstr "Vous n'êtes pas autorisé à vous inscrire à une session de cours non répertoriée." -#: joanie/core/models/products.py:73 +#: joanie/core/models/products.py:69 msgid "instructions" msgstr "instructions" -#: joanie/core/models/products.py:74 +#: joanie/core/models/products.py:70 msgid "call to action" msgstr "appel à action" -#: joanie/core/models/products.py:81 +#: joanie/core/models/products.py:77 msgid "target courses" msgstr "cours ciblés" -#: joanie/core/models/products.py:85 joanie/core/models/products.py:438 +#: joanie/core/models/products.py:81 joanie/core/models/products.py:434 msgid "price" msgstr "prix" -#: joanie/core/models/products.py:86 joanie/core/models/products.py:440 +#: joanie/core/models/products.py:82 joanie/core/models/products.py:436 msgid "tax included" msgstr "taxe incluse" -#: joanie/core/models/products.py:95 +#: joanie/core/models/products.py:91 msgid "certificate definition" msgstr "définition de certificat" -#: joanie/core/models/products.py:111 +#: joanie/core/models/products.py:107 msgid "Products" msgstr "Produits" -#: joanie/core/models/products.py:258 +#: joanie/core/models/products.py:254 msgid "Certificate definition is only allowed for product kinds: " msgstr "La définition de certificat n'est autorisée que pour les produits de types : " -#: joanie/core/models/products.py:293 joanie/core/models/products.py:1219 +#: joanie/core/models/products.py:289 joanie/core/models/products.py:1087 msgid "course runs" msgstr "sessions de cours" -#: joanie/core/models/products.py:296 +#: joanie/core/models/products.py:292 msgid "position in product" msgstr "position dans le produit" -#: joanie/core/models/products.py:298 joanie/core/models/products.py:1231 +#: joanie/core/models/products.py:294 joanie/core/models/products.py:1099 msgid "take into account for certification" msgstr "prendre en compte pour la certification" -#: joanie/core/models/products.py:299 joanie/core/models/products.py:1232 +#: joanie/core/models/products.py:295 joanie/core/models/products.py:1100 msgid "Take into account the course grade for certification." msgstr "Prendre en compte la note du cours pour la certification." -#: joanie/core/models/products.py:307 +#: joanie/core/models/products.py:303 msgid "Target course relation to a product with a position" msgstr "Relation d'un cours cible à un produit avec une position" -#: joanie/core/models/products.py:308 +#: joanie/core/models/products.py:304 msgid "Target courses relations to products with a position" msgstr "Relation de cours cibles à des produits avec une position" -#: joanie/core/models/products.py:339 +#: joanie/core/models/products.py:335 msgid "Number of seats" msgstr "Nombre de sièges" -#: joanie/core/models/products.py:341 +#: joanie/core/models/products.py:337 msgid "The maximum number of orders that can be validated for a given order group" msgstr "Le nombre maximum de commandes pouvant être validées pour un groupe de commandes donné" -#: joanie/core/models/products.py:346 +#: joanie/core/models/products.py:342 msgid "course product relation" msgstr "relation cours produit" -#: joanie/core/models/products.py:350 +#: joanie/core/models/products.py:346 msgid "is active" msgstr "est actif" -#: joanie/core/models/products.py:423 +#: joanie/core/models/products.py:419 msgid "order group" msgstr "groupe de commandes" -#: joanie/core/models/products.py:434 +#: joanie/core/models/products.py:430 msgid "courses" msgstr "cours" -#: joanie/core/models/products.py:455 +#: joanie/core/models/products.py:451 msgid "has consent to terms" msgstr "a consenti aux conditions" -#: joanie/core/models/products.py:458 +#: joanie/core/models/products.py:454 msgid "User has consented to the platform terms and conditions." msgstr "L'utilisateur a consenti aux conditions générales de vente de la plateforme." -#: joanie/core/models/products.py:466 +#: joanie/core/models/products.py:462 msgid "payment schedule" msgstr "échéancier" -#: joanie/core/models/products.py:467 +#: joanie/core/models/products.py:463 msgid "Payment schedule for the order." msgstr "Échéancier pour la commande." -#: joanie/core/models/products.py:505 +#: joanie/core/models/products.py:501 msgid "Orders" msgstr "Commandes" -#: joanie/core/models/products.py:673 +#: joanie/core/models/products.py:586 #, python-brace-format msgid "{required_field} field should be set for {self.product.type} products." msgstr "Le champ {required_field} doit être défini pour les produits {self.product.type}." -#: joanie/core/models/products.py:679 +#: joanie/core/models/products.py:592 #, python-brace-format msgid "{empty_field} field should be left empty for {self.product.type} products." msgstr "Le champ {empty_field} devrait être laissé vide pour les produits {self.product.type}." -#: joanie/core/models/products.py:686 +#: joanie/core/models/products.py:599 msgid "The enrollment should belong to the owner of this order." msgstr "L'inscription devrait appartenir au propriétaire de cette commande." -#: joanie/core/models/products.py:691 +#: joanie/core/models/products.py:604 msgid "Orders can't be placed on enrollments originating from an order." msgstr "Des commandes ne peuvent pas être passées sur des inscriptions créées à partir d'une commande." -#: joanie/core/models/products.py:700 +#: joanie/core/models/products.py:613 msgid "The order cannot be generated on course run that is in archived state." msgstr "La commande ne peut pas être générée via une session de cours archivée." -#: joanie/core/models/products.py:719 +#: joanie/core/models/products.py:632 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\", " msgstr "Cette commande ne peut pas être liée au produit \"{product_title}\", " -#: joanie/core/models/products.py:725 +#: joanie/core/models/products.py:638 #, python-brace-format msgid "This order cannot be linked to the product \"{product_title}\" and " msgstr "Cette commande ne peut pas être liée au produit \"{product_title}\" et " -#: joanie/core/models/products.py:919 +#: joanie/core/models/products.py:832 #, python-brace-format msgid "Product {self.product.title} does not allow to generate a certificate." msgstr "Le produit {self.product.title} ne permet pas de générer un certificat." -#: joanie/core/models/products.py:934 +#: joanie/core/models/products.py:847 msgid "No graded courses found." msgstr "Aucun cours noté trouvé." -#: joanie/core/models/products.py:950 +#: joanie/core/models/products.py:863 msgid "This order is not ready for gradation." msgstr "Cette commande n'est pas prête à être évaluée." -#: joanie/core/models/products.py:960 +#: joanie/core/models/products.py:873 msgid "Course run " msgstr "Session de cours " -#: joanie/core/models/products.py:1229 +#: joanie/core/models/products.py:1097 msgid "position in order" msgstr "position dans la commande" -#: joanie/core/models/products.py:1240 +#: joanie/core/models/products.py:1108 msgid "Course relation to an order with a position" msgstr "Relation d'un cours à une commande avec une position" -#: joanie/core/models/products.py:1241 +#: joanie/core/models/products.py:1109 msgid "Courses relations to orders with a position" msgstr "Relations de cours à des commandes avec une position" @@ -1064,34 +1089,38 @@ msgstr "Paramètre du site" msgid "Site configs" msgstr "Paramètres du site" -#: joanie/core/serializers/client.py:153 joanie/core/serializers/client.py:268 +#: joanie/core/serializers/client.py:155 joanie/core/serializers/client.py:270 msgid "You are only allowed to set role to {', '.join(can_set_role_to)}" msgstr "Vous n'êtes autorisé qu'à définir le rôle à {', '.join(can_set_role_to)}" -#: joanie/core/serializers/client.py:156 joanie/core/serializers/client.py:271 +#: joanie/core/serializers/client.py:158 joanie/core/serializers/client.py:273 msgid "You are not allowed to set this role for this course." msgstr "Vous n'êtes pas autorisé à définir ce rôle pour ce cours." -#: joanie/core/serializers/client.py:167 +#: joanie/core/serializers/client.py:169 msgid "You must set a course ID in context to create a new course access." msgstr "Vous devez définir un ID de cours dans le contexte pour créer un nouveau droit d'accès au cours." -#: joanie/core/serializers/client.py:177 +#: joanie/core/serializers/client.py:179 msgid "You are not allowed to manage accesses for this course." msgstr "Vous n'êtes pas autorisé à gérer les droits d'accès à ce cours." -#: joanie/core/serializers/client.py:282 +#: joanie/core/serializers/client.py:284 msgid "You must set a organization ID in context to create a new organization access." msgstr "Vous devez définir un ID d'établissement dans le contexte pour créer un nouveau droit d'accès à l'établissement." -#: joanie/core/serializers/client.py:293 +#: joanie/core/serializers/client.py:295 msgid "You are not allowed to manage accesses for this organization." msgstr "Vous n'êtes pas autorisé à gérer les droits d'accès à cet établissement." -#: joanie/core/serializers/client.py:754 +#: joanie/core/serializers/client.py:756 msgid "You must accept the terms and conditions to proceed." msgstr "Vous devez accepter les conditions générales de vente pour continuer." +#: joanie/core/templates/admin/base.html:5 +msgid "Sentry tools" +msgstr "Sentry" + #: joanie/core/templates/certificate/verify.html:9 #: joanie/core/templates/mail/html/order_validated.html:159 #: joanie/core/templates/mail/text/order_validated.txt:3 @@ -1149,10 +1178,14 @@ msgid "Course team" msgstr "Équipe pédagogique" #: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:83 +msgid "Accessibility" +msgstr "Accessibilité" + +#: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:87 msgid "Course plan" msgstr "Plan de cours" -#: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:102 +#: joanie/core/templates/contract_definition/fragment_appendice_syllabus.html:106 msgid "Licenses" msgstr "Licences" @@ -1558,7 +1591,7 @@ msgstr "Pour obtenir des résultats, choisissez un propriétaire sur la droite" msgid "Joanie payment application" msgstr "Application de paiement de Joanie" -#: joanie/payment/backends/base.py:76 joanie/payment/backends/base.py:92 +#: joanie/payment/backends/base.py:77 joanie/payment/backends/base.py:93 msgid "Purchase order confirmed!" msgstr "Commande confirmée !" @@ -1650,11 +1683,11 @@ msgstr "4 derniers chiffres" msgid "Demote a main credit card is forbidden" msgstr "Rétrograder une carte bancaire principale est interdit" -#: joanie/settings.py:145 +#: joanie/settings.py:147 msgid "English" msgstr "Anglais" -#: joanie/settings.py:146 +#: joanie/settings.py:148 msgid "French" msgstr "Français" diff --git a/src/frontend/admin/i18n/locales/es-ES.json b/src/frontend/admin/i18n/locales/es-ES.json index a989740e7..8c4936126 100644 --- a/src/frontend/admin/i18n/locales/es-ES.json +++ b/src/frontend/admin/i18n/locales/es-ES.json @@ -247,10 +247,18 @@ "description": "Label for the organizations input form", "message": "Organizations" }, + "components.templates.course.form.translations.productRelation.chooseCourse": { + "description": "Label form the course search input", + "message": "Choose your course" + }, "components.templates.course.form.translations.productRelation.chooseProduct": { "description": "Label form the product search input", "message": "Choose your product" }, + "components.templates.course.form.translations.productRelation.courseLabel": { + "description": "Course label for the CourseProductRelation form", + "message": "Course" + }, "components.templates.course.form.translations.productRelation.organizationsTitle": { "description": "Title for the organizations section", "message": "Managed by this organizations" @@ -383,18 +391,6 @@ "description": "Text for the search input placeholder", "message": "Search by title or code" }, - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalContent": { - "description": "Content for the delete relation modal", - "message": "Are you sure you want to delete this relation?" - }, - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalTitle": { - "description": "Title for the delete relation modal", - "message": "Delete product relationship" - }, - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.emptyList": { - "description": "Message for empty list", - "message": "No product relationships have been created for this course" - }, "components.templates.courses.form.productRelation.row.addOrderGroupButton": { "description": "Add order group button label", "message": "Add order group" @@ -491,6 +487,98 @@ "description": "Label text for the select state input", "message": "State" }, + "components.templates.enrollments.buttons.enrollmentActionsButton.enrollmentActionsLabel": { + "description": "Label for the actions button", + "message": "Actions" + }, + "components.templates.enrollments.courseRun.id": { + "description": "Label for the course run header inside the table", + "message": "Course run" + }, + "components.templates.enrollments.filters.EnrollmentFilters.isActiveLabel": { + "description": "Label for the is listed checkbox inside the Enrollment filters component", + "message": "Is active" + }, + "components.templates.enrollments.filters.EnrollmentFilters.searchPlaceholder": { + "description": "Text for the search input placeholder", + "message": "Search by course run title, resource link, course code" + }, + "components.templates.enrollments.input.RHFSelectEnrollmentState.state": { + "description": "Label text for the select state input", + "message": "State" + }, + "components.templates.enrollments.list.isActive": { + "description": "Label for the is active header inside the table", + "message": "Is active" + }, + "components.templates.enrollments.list.owner": { + "description": "Label for the owner header inside the table", + "message": "Owner" + }, + "components.templates.enrollments.list.state": { + "description": "Label for the state header inside the table", + "message": "State" + }, + "components.templates.enrollments.view.courseRun": { + "description": "Course run field", + "message": "Course run" + }, + "components.templates.enrollments.view.isActive": { + "description": "Is active checkbox field", + "message": "Is active" + }, + "components.templates.enrollments.view.isActiveHelperText": { + "description": "Is active helper text", + "message": "Checked if the user is registered for the course run." + }, + "components.templates.enrollments.view.mainSectionTitle": { + "description": "Title for the main section", + "message": "Details of an enrollment" + }, + "components.templates.enrollments.view.state": { + "description": "State field", + "message": "State" + }, + "components.templates.enrollments.view.stateFailedMessage": { + "description": "Message displayed when the status is failed", + "message": "A problem occurred during enrollment on the LMS." + }, + "components.templates.enrollments.view.user": { + "description": "User field", + "message": "User" + }, + "components.templates.enrollments.view.wasCreatedForOrder": { + "description": "wasCreatedForOrder field", + "message": "Was created for an order" + }, + "components.templates.enrollments.view.wasCreatedForOrderHelperText": { + "description": "wasCreatedForOrder helper text", + "message": "Checked if the enrollment was originally created as part of an order." + }, + "components.templates.orders.buttons.enrollmentActionsButton.cantEnrollMessage": { + "description": "Label for the can't enroll tooltip message", + "message": "It's impossible to enroll because the course run is not opened for enrollment." + }, + "components.templates.orders.buttons.enrollmentActionsButton.enroll": { + "description": "Label for the enroll enrollment action", + "message": "Enroll" + }, + "components.templates.orders.buttons.enrollmentActionsButton.unroll": { + "description": "Label for the unenroll enrollment action", + "message": "unenroll" + }, + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollButImpossibleToEnrollAfterModalMessage": { + "description": "Text for the validate enroll modal message when the enrollment session is close", + "message": "Are you sure you want to unenroll {username} to {courseRunTitle}? {br}The registration end was: ({enrollmentEndDate}). This date having passed, it will no longer be possible to revert this action." + }, + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalMessage": { + "description": "Text for the validate enroll modal message when the enrollment session is open", + "message": "Are you sure you want to unenroll {username} to {courseRunTitle}? {br}You can register until registration closes ({enrollmentEndDate}). After this date, it will no longer be possible to revert this action." + }, + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalTitle": { + "description": "Text shown when clicking on the 'unenroll' button to warn that it will not be possible to go back", + "message": "Unenroll this user" + }, "components.templates.orders.buttons.orderActionsButton.alreadyCancelTooltip": { "description": "Text when the order has already been canceled", "message": "The order has already been canceled" @@ -935,10 +1023,6 @@ "description": "placeholder text for the contract definition input", "message": "Search a contract definition" }, - "components.templates.products.form.translations.courseProductRelations.sectionTitle": { - "description": "Product course relation section title", - "message": "List of courses to which this product is linked" - }, "components.templates.products.form.translations.definition": { "description": "Label for the definition input", "message": "Certificate definition" @@ -1023,6 +1107,10 @@ "description": "Title for the syllabus tab", "message": "Syllabus" }, + "components.templates.products.form.translations.targetCourseIsGradedLabel": { + "description": "Label for the is graded switch", + "message": "Taken into account for certification" + }, "components.templates.products.form.translations.targetCourseRowSubTitle": { "description": "Label for the use all course run checkbox", "message": "{numPhotos, plural, =0 {All selected course_runs.} other {# course runs selected.} }" @@ -1079,6 +1167,34 @@ "description": "Title for the credential product type", "message": "Microcredential" }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.addRelationButtonLabel": { + "description": "Label for the product relation subheader form", + "message": "Add relation" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalContent": { + "description": "Content for the delete relation modal", + "message": "Are you sure you want to delete this relation?" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalTitle": { + "description": "Title for the delete relation modal", + "message": "Delete product relationship" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyCourseList": { + "description": "Message when the course relation product list is empty inside the course form", + "message": "No product relationships have been created for this course" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyProductList": { + "description": "Message when the course relation product list is empty inside the product form", + "message": "No course relationships have been created for this product" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleCourseHeader": { + "description": "Title for the course relation product list inside the course form", + "message": "Relation to products" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleProductHeader": { + "description": "Title for the course relation product list inside the product form", + "message": "Relation to courses" + }, "hooks.useCertificateDefinitions.errorCreate": { "description": "Error message shown to the user when certificate definition creation request fails.", "message": "An error occurred while creating the certificate definition. Please retry later." @@ -1191,6 +1307,26 @@ "description": "Error message shown to the user when course run update request fails.", "message": "An error occurred while updating the course run. Please retry later." }, + "hooks.useEnrollments.errorCreate": { + "description": "Error message shown to the user when order creation request fails.", + "message": "An error occurred while creating the order. Please retry later." + }, + "hooks.useEnrollments.errorDelete": { + "description": "Error message shown to the user when order deletion request fails.", + "message": "An error occurred while deleting the order. Please retry later." + }, + "hooks.useEnrollments.errorGet": { + "description": "Error message shown to the user when orders fetch request fails.", + "message": "An error occurred while fetching orders. Please retry later." + }, + "hooks.useEnrollments.errorNotFound": { + "description": "Error message shown to the user when no order matches.", + "message": "Cannot find the order" + }, + "hooks.useEnrollments.errorUpdate": { + "description": "Error message shown to the user when order update request fails.", + "message": "An error occurred while updating the order. Please retry later." + }, "hooks.useOrders.errorCreate": { "description": "Error message shown to the user when order creation request fails.", "message": "An error occurred while creating the order. Please retry later." @@ -1347,6 +1483,10 @@ "description": "Title for the Courses runs nav item", "message": "Courses runs" }, + "layouts.dashboard.nav.config.enrollmentsNavTitle": { + "description": "Title for the Enrollment nav item", + "message": "Enrollments" + }, "layouts.dashboard.nav.config.managementSubHeader": { "description": "Subheader for the nav management section", "message": "Management" @@ -1471,6 +1611,26 @@ "description": "Label for the courses runs list page title", "message": "Course runs" }, + "pages.admin.enrollments.breadcrumbsTranslations.listBreadcrumb": { + "description": "Breadcrumb label for the enrollment list page", + "message": "List" + }, + "pages.admin.enrollments.breadcrumbsTranslations.rootBreadcrumb": { + "description": "Breadcrumb label for the enrollment root page", + "message": "Enrollments" + }, + "pages.admin.enrollments.breadcrumbsTranslations.viewBreadcrumb": { + "description": "Breadcrumb label for the enrollment view page", + "message": "View" + }, + "pages.admin.enrollments.list.pageTitle": { + "description": "Label for the enrollment list page title", + "message": "Enrollments" + }, + "pages.admin.enrollments.view.pageTitle": { + "description": "Label for the enrollment page title", + "message": "Enrollment view" + }, "pages.admin.home.cardHomePagesTranslation.certificateDefinitionBadge": { "description": "Label for the badge inside certificate definition card", "message": "Certificate definition" @@ -1751,6 +1911,14 @@ "description": "Label for the TO_BE_SCHEDULED priority", "message": "To be scheduled" }, + "translations.enrollment.state.failed": { + "description": "Label for the FAILED enrollment state", + "message": "Failed" + }, + "translations.enrollment.state.set": { + "description": "Label for the SET enrollment state", + "message": "Set" + }, "translations.products.productTypesMessages.certificate": { "description": "Label for the CERTIFICATE product type", "message": "Certificate" diff --git a/src/frontend/admin/i18n/locales/fr-CA.json b/src/frontend/admin/i18n/locales/fr-CA.json index 29cc8af31..003d422e2 100644 --- a/src/frontend/admin/i18n/locales/fr-CA.json +++ b/src/frontend/admin/i18n/locales/fr-CA.json @@ -247,10 +247,18 @@ "description": "Label for the organizations input form", "message": "Organizations" }, + "components.templates.course.form.translations.productRelation.chooseCourse": { + "description": "Label form the course search input", + "message": "Choose your course" + }, "components.templates.course.form.translations.productRelation.chooseProduct": { "description": "Label form the product search input", "message": "Choose your product" }, + "components.templates.course.form.translations.productRelation.courseLabel": { + "description": "Course label for the CourseProductRelation form", + "message": "Course" + }, "components.templates.course.form.translations.productRelation.organizationsTitle": { "description": "Title for the organizations section", "message": "Managed by this organizations" @@ -383,18 +391,6 @@ "description": "Text for the search input placeholder", "message": "Search by title or code" }, - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalContent": { - "description": "Content for the delete relation modal", - "message": "Are you sure you want to delete this relation?" - }, - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalTitle": { - "description": "Title for the delete relation modal", - "message": "Delete product relationship" - }, - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.emptyList": { - "description": "Message for empty list", - "message": "No product relationships have been created for this course" - }, "components.templates.courses.form.productRelation.row.addOrderGroupButton": { "description": "Add order group button label", "message": "Add order group" @@ -491,6 +487,98 @@ "description": "Label text for the select state input", "message": "State" }, + "components.templates.enrollments.buttons.enrollmentActionsButton.enrollmentActionsLabel": { + "description": "Label for the actions button", + "message": "Actions" + }, + "components.templates.enrollments.courseRun.id": { + "description": "Label for the course run header inside the table", + "message": "Course run" + }, + "components.templates.enrollments.filters.EnrollmentFilters.isActiveLabel": { + "description": "Label for the is listed checkbox inside the Enrollment filters component", + "message": "Is active" + }, + "components.templates.enrollments.filters.EnrollmentFilters.searchPlaceholder": { + "description": "Text for the search input placeholder", + "message": "Search by course run title, resource link, course code" + }, + "components.templates.enrollments.input.RHFSelectEnrollmentState.state": { + "description": "Label text for the select state input", + "message": "State" + }, + "components.templates.enrollments.list.isActive": { + "description": "Label for the is active header inside the table", + "message": "Is active" + }, + "components.templates.enrollments.list.owner": { + "description": "Label for the owner header inside the table", + "message": "Owner" + }, + "components.templates.enrollments.list.state": { + "description": "Label for the state header inside the table", + "message": "State" + }, + "components.templates.enrollments.view.courseRun": { + "description": "Course run field", + "message": "Course run" + }, + "components.templates.enrollments.view.isActive": { + "description": "Is active checkbox field", + "message": "Is active" + }, + "components.templates.enrollments.view.isActiveHelperText": { + "description": "Is active helper text", + "message": "Checked if the user is registered for the course run." + }, + "components.templates.enrollments.view.mainSectionTitle": { + "description": "Title for the main section", + "message": "Details of an enrollment" + }, + "components.templates.enrollments.view.state": { + "description": "State field", + "message": "State" + }, + "components.templates.enrollments.view.stateFailedMessage": { + "description": "Message displayed when the status is failed", + "message": "A problem occurred during enrollment on the LMS." + }, + "components.templates.enrollments.view.user": { + "description": "User field", + "message": "User" + }, + "components.templates.enrollments.view.wasCreatedForOrder": { + "description": "wasCreatedForOrder field", + "message": "Was created for an order" + }, + "components.templates.enrollments.view.wasCreatedForOrderHelperText": { + "description": "wasCreatedForOrder helper text", + "message": "Checked if the enrollment was originally created as part of an order." + }, + "components.templates.orders.buttons.enrollmentActionsButton.cantEnrollMessage": { + "description": "Label for the can't enroll tooltip message", + "message": "It's impossible to enroll because the course run is not opened for enrollment." + }, + "components.templates.orders.buttons.enrollmentActionsButton.enroll": { + "description": "Label for the enroll enrollment action", + "message": "Enroll" + }, + "components.templates.orders.buttons.enrollmentActionsButton.unroll": { + "description": "Label for the unenroll enrollment action", + "message": "unenroll" + }, + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollButImpossibleToEnrollAfterModalMessage": { + "description": "Text for the validate enroll modal message when the enrollment session is close", + "message": "Are you sure you want to unenroll {username} to {courseRunTitle}? {br}The registration end was: ({enrollmentEndDate}). This date having passed, it will no longer be possible to revert this action." + }, + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalMessage": { + "description": "Text for the validate enroll modal message when the enrollment session is open", + "message": "Are you sure you want to unenroll {username} to {courseRunTitle}? {br}You can register until registration closes ({enrollmentEndDate}). After this date, it will no longer be possible to revert this action." + }, + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalTitle": { + "description": "Text shown when clicking on the 'unenroll' button to warn that it will not be possible to go back", + "message": "Unenroll this user" + }, "components.templates.orders.buttons.orderActionsButton.alreadyCancelTooltip": { "description": "Text when the order has already been canceled", "message": "The order has already been canceled" @@ -935,10 +1023,6 @@ "description": "placeholder text for the contract definition input", "message": "Search a contract definition" }, - "components.templates.products.form.translations.courseProductRelations.sectionTitle": { - "description": "Product course relation section title", - "message": "List of courses to which this product is linked" - }, "components.templates.products.form.translations.definition": { "description": "Label for the definition input", "message": "Certificate definition" @@ -1023,6 +1107,10 @@ "description": "Title for the syllabus tab", "message": "Syllabus" }, + "components.templates.products.form.translations.targetCourseIsGradedLabel": { + "description": "Label for the is graded switch", + "message": "Taken into account for certification" + }, "components.templates.products.form.translations.targetCourseRowSubTitle": { "description": "Label for the use all course run checkbox", "message": "{numPhotos, plural, =0 {All selected course_runs.} other {# course runs selected.} }" @@ -1079,6 +1167,34 @@ "description": "Title for the credential product type", "message": "Microcredential" }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.addRelationButtonLabel": { + "description": "Label for the product relation subheader form", + "message": "Add relation" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalContent": { + "description": "Content for the delete relation modal", + "message": "Are you sure you want to delete this relation?" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalTitle": { + "description": "Title for the delete relation modal", + "message": "Delete product relationship" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyCourseList": { + "description": "Message when the course relation product list is empty inside the course form", + "message": "No product relationships have been created for this course" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyProductList": { + "description": "Message when the course relation product list is empty inside the product form", + "message": "No course relationships have been created for this product" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleCourseHeader": { + "description": "Title for the course relation product list inside the course form", + "message": "Relation to products" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleProductHeader": { + "description": "Title for the course relation product list inside the product form", + "message": "Relation to courses" + }, "hooks.useCertificateDefinitions.errorCreate": { "description": "Error message shown to the user when certificate definition creation request fails.", "message": "An error occurred while creating the certificate definition. Please retry later." @@ -1191,6 +1307,26 @@ "description": "Error message shown to the user when course run update request fails.", "message": "An error occurred while updating the course run. Please retry later." }, + "hooks.useEnrollments.errorCreate": { + "description": "Error message shown to the user when order creation request fails.", + "message": "An error occurred while creating the order. Please retry later." + }, + "hooks.useEnrollments.errorDelete": { + "description": "Error message shown to the user when order deletion request fails.", + "message": "An error occurred while deleting the order. Please retry later." + }, + "hooks.useEnrollments.errorGet": { + "description": "Error message shown to the user when orders fetch request fails.", + "message": "An error occurred while fetching orders. Please retry later." + }, + "hooks.useEnrollments.errorNotFound": { + "description": "Error message shown to the user when no order matches.", + "message": "Cannot find the order" + }, + "hooks.useEnrollments.errorUpdate": { + "description": "Error message shown to the user when order update request fails.", + "message": "An error occurred while updating the order. Please retry later." + }, "hooks.useOrders.errorCreate": { "description": "Error message shown to the user when order creation request fails.", "message": "An error occurred while creating the order. Please retry later." @@ -1347,6 +1483,10 @@ "description": "Title for the Courses runs nav item", "message": "Courses runs" }, + "layouts.dashboard.nav.config.enrollmentsNavTitle": { + "description": "Title for the Enrollment nav item", + "message": "Enrollments" + }, "layouts.dashboard.nav.config.managementSubHeader": { "description": "Subheader for the nav management section", "message": "Management" @@ -1471,6 +1611,26 @@ "description": "Label for the courses runs list page title", "message": "Course runs" }, + "pages.admin.enrollments.breadcrumbsTranslations.listBreadcrumb": { + "description": "Breadcrumb label for the enrollment list page", + "message": "List" + }, + "pages.admin.enrollments.breadcrumbsTranslations.rootBreadcrumb": { + "description": "Breadcrumb label for the enrollment root page", + "message": "Enrollments" + }, + "pages.admin.enrollments.breadcrumbsTranslations.viewBreadcrumb": { + "description": "Breadcrumb label for the enrollment view page", + "message": "View" + }, + "pages.admin.enrollments.list.pageTitle": { + "description": "Label for the enrollment list page title", + "message": "Enrollments" + }, + "pages.admin.enrollments.view.pageTitle": { + "description": "Label for the enrollment page title", + "message": "Enrollment view" + }, "pages.admin.home.cardHomePagesTranslation.certificateDefinitionBadge": { "description": "Label for the badge inside certificate definition card", "message": "Certificate definition" @@ -1751,6 +1911,14 @@ "description": "Label for the TO_BE_SCHEDULED priority", "message": "To be scheduled" }, + "translations.enrollment.state.failed": { + "description": "Label for the FAILED enrollment state", + "message": "Failed" + }, + "translations.enrollment.state.set": { + "description": "Label for the SET enrollment state", + "message": "Set" + }, "translations.products.productTypesMessages.certificate": { "description": "Label for the CERTIFICATE product type", "message": "Certificate" diff --git a/src/frontend/admin/i18n/locales/fr-FR.json b/src/frontend/admin/i18n/locales/fr-FR.json index eb46cbb62..4d5dcfce6 100644 --- a/src/frontend/admin/i18n/locales/fr-FR.json +++ b/src/frontend/admin/i18n/locales/fr-FR.json @@ -247,10 +247,18 @@ "description": "Label for the organizations input form", "message": "Établissements" }, + "components.templates.course.form.translations.productRelation.chooseCourse": { + "description": "Label form the course search input", + "message": "Choisissez votre cours " + }, "components.templates.course.form.translations.productRelation.chooseProduct": { "description": "Label form the product search input", "message": "Choisissez votre produit" }, + "components.templates.course.form.translations.productRelation.courseLabel": { + "description": "Course label for the CourseProductRelation form", + "message": "Cours" + }, "components.templates.course.form.translations.productRelation.organizationsTitle": { "description": "Title for the organizations section", "message": "Géré par ces établissements" @@ -383,18 +391,6 @@ "description": "Text for the search input placeholder", "message": "Rechercher par titre, code" }, - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalContent": { - "description": "Content for the delete relation modal", - "message": "Êtes-vous sûr de vouloir supprimer cette relation ?" - }, - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalTitle": { - "description": "Title for the delete relation modal", - "message": "Supprimer la relation avec le produit" - }, - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.emptyList": { - "description": "Message for empty list", - "message": "Aucune relation avec un produit n'a été créée pour ce cours" - }, "components.templates.courses.form.productRelation.row.addOrderGroupButton": { "description": "Add order group button label", "message": "Ajouter un groupe de commandes" @@ -491,6 +487,98 @@ "description": "Label text for the select state input", "message": "État" }, + "components.templates.enrollments.buttons.enrollmentActionsButton.enrollmentActionsLabel": { + "description": "Label for the actions button", + "message": "Actions" + }, + "components.templates.enrollments.courseRun.id": { + "description": "Label for the course run header inside the table", + "message": "Session de cours" + }, + "components.templates.enrollments.filters.EnrollmentFilters.isActiveLabel": { + "description": "Label for the is listed checkbox inside the Enrollment filters component", + "message": "Est actif" + }, + "components.templates.enrollments.filters.EnrollmentFilters.searchPlaceholder": { + "description": "Text for the search input placeholder", + "message": "Recherche par titre de session de cours, lien de ressource, code de cours" + }, + "components.templates.enrollments.input.RHFSelectEnrollmentState.state": { + "description": "Label text for the select state input", + "message": "État" + }, + "components.templates.enrollments.list.isActive": { + "description": "Label for the is active header inside the table", + "message": "Est actif" + }, + "components.templates.enrollments.list.owner": { + "description": "Label for the owner header inside the table", + "message": "Propriétaire" + }, + "components.templates.enrollments.list.state": { + "description": "Label for the state header inside the table", + "message": "État" + }, + "components.templates.enrollments.view.courseRun": { + "description": "Course run field", + "message": "Session de cours" + }, + "components.templates.enrollments.view.isActive": { + "description": "Is active checkbox field", + "message": "Est actif" + }, + "components.templates.enrollments.view.isActiveHelperText": { + "description": "Is active helper text", + "message": "Coché si l'utilisateur est inscrit à la session de cours." + }, + "components.templates.enrollments.view.mainSectionTitle": { + "description": "Title for the main section", + "message": "Détails d'une inscription" + }, + "components.templates.enrollments.view.state": { + "description": "State field", + "message": "État" + }, + "components.templates.enrollments.view.stateFailedMessage": { + "description": "Message displayed when the status is failed", + "message": "Un problème est survenu lors de l'inscription sur le LMS." + }, + "components.templates.enrollments.view.user": { + "description": "User field", + "message": "Utilisateur" + }, + "components.templates.enrollments.view.wasCreatedForOrder": { + "description": "wasCreatedForOrder field", + "message": "A été créé dans le cadre d'une commande" + }, + "components.templates.enrollments.view.wasCreatedForOrderHelperText": { + "description": "wasCreatedForOrder helper text", + "message": "Coché si l'inscription a été initialement créée dans le cadre d'une commande." + }, + "components.templates.orders.buttons.enrollmentActionsButton.cantEnrollMessage": { + "description": "Label for the can't enroll tooltip message", + "message": "Il est impossible d'inscrire car la session n'est pas ouverte aux inscriptions." + }, + "components.templates.orders.buttons.enrollmentActionsButton.enroll": { + "description": "Label for the enroll enrollment action", + "message": "Inscrire" + }, + "components.templates.orders.buttons.enrollmentActionsButton.unroll": { + "description": "Label for the unenroll enrollment action", + "message": "Se désinscrire" + }, + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollButImpossibleToEnrollAfterModalMessage": { + "description": "Text for the validate enroll modal message when the enrollment session is close", + "message": "Êtes-vous sûr de vouloir désinscrire {username} à {courseRunTitle}? {br}La fin des inscriptions était le ({enrollmentEndDate}). Cette date est passée, il ne sera pas possible d'annuler cette action." + }, + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalMessage": { + "description": "Text for the validate enroll modal message when the enrollment session is open", + "message": "Êtes-vous sûr de vouloir désinscrire {username} à {courseRunTitle}? {br}Vous pouvez vous inscrire jusqu'à la fermeture des inscriptions ({enrollmentEndDate}). Après cette date, il ne sera plus possible d'annuler cette action." + }, + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalTitle": { + "description": "Text shown when clicking on the 'unenroll' button to warn that it will not be possible to go back", + "message": "Désinscrire cet utilisateur" + }, "components.templates.orders.buttons.orderActionsButton.alreadyCancelTooltip": { "description": "Text when the order has already been canceled", "message": "La commande a déjà été annulée" @@ -935,10 +1023,6 @@ "description": "placeholder text for the contract definition input", "message": "Rechercher un modèle de contrat" }, - "components.templates.products.form.translations.courseProductRelations.sectionTitle": { - "description": "Product course relation section title", - "message": "Liste des courses auxquels le produit est lié" - }, "components.templates.products.form.translations.definition": { "description": "Label for the definition input", "message": "Modèle de certificat" @@ -1023,6 +1107,10 @@ "description": "Title for the syllabus tab", "message": "Syllabus" }, + "components.templates.products.form.translations.targetCourseIsGradedLabel": { + "description": "Label for the is graded switch", + "message": "Prendre en compte pour la certification" + }, "components.templates.products.form.translations.targetCourseRowSubTitle": { "description": "Label for the use all course run checkbox", "message": "{numPhotos, plural, =0 {Toutes les sessions sont sélectionnées.} other {# sessions sont sélectionnées.} }" @@ -1079,6 +1167,34 @@ "description": "Title for the credential product type", "message": "Micro-certification" }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.addRelationButtonLabel": { + "description": "Label for the product relation subheader form", + "message": "Ajouter une relation" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalContent": { + "description": "Content for the delete relation modal", + "message": "Êtes-vous sûr de vouloir supprimer cette relation ?" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalTitle": { + "description": "Title for the delete relation modal", + "message": "Supprimer la relation avec le produit" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyCourseList": { + "description": "Message when the course relation product list is empty inside the course form", + "message": "Aucune relation avec un produit n'a été créée pour ce cours" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyProductList": { + "description": "Message when the course relation product list is empty inside the product form", + "message": "Aucune relation avec un cours n'a été créée pour ce produit" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleCourseHeader": { + "description": "Title for the course relation product list inside the course form", + "message": "Produits associés" + }, + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleProductHeader": { + "description": "Title for the course relation product list inside the product form", + "message": "Cours associés" + }, "hooks.useCertificateDefinitions.errorCreate": { "description": "Error message shown to the user when certificate definition creation request fails.", "message": "Une erreur s'est produite lors de la création du modèle de certificat. Veuillez réessayer plus tard." @@ -1191,6 +1307,26 @@ "description": "Error message shown to the user when course run update request fails.", "message": "Une erreur s'est produite lors de la mise à jour de la session de cours. Veuillez réessayer plus tard." }, + "hooks.useEnrollments.errorCreate": { + "description": "Error message shown to the user when order creation request fails.", + "message": "An error occurred while creating the order. Please retry later." + }, + "hooks.useEnrollments.errorDelete": { + "description": "Error message shown to the user when order deletion request fails.", + "message": "An error occurred while deleting the order. Please retry later." + }, + "hooks.useEnrollments.errorGet": { + "description": "Error message shown to the user when orders fetch request fails.", + "message": "An error occurred while fetching orders. Please retry later." + }, + "hooks.useEnrollments.errorNotFound": { + "description": "Error message shown to the user when no order matches.", + "message": "Cannot find the order" + }, + "hooks.useEnrollments.errorUpdate": { + "description": "Error message shown to the user when order update request fails.", + "message": "An error occurred while updating the order. Please retry later." + }, "hooks.useOrders.errorCreate": { "description": "Error message shown to the user when order creation request fails.", "message": "Une erreur s'est produite lors de la création de la commande. Veuillez réessayer plus tard." @@ -1347,6 +1483,10 @@ "description": "Title for the Courses runs nav item", "message": "Sessions de cours" }, + "layouts.dashboard.nav.config.enrollmentsNavTitle": { + "description": "Title for the Enrollment nav item", + "message": "Inscriptions" + }, "layouts.dashboard.nav.config.managementSubHeader": { "description": "Subheader for the nav management section", "message": "Gestion" @@ -1471,6 +1611,26 @@ "description": "Label for the courses runs list page title", "message": "Sessions de cours" }, + "pages.admin.enrollments.breadcrumbsTranslations.listBreadcrumb": { + "description": "Breadcrumb label for the enrollment list page", + "message": "Liste" + }, + "pages.admin.enrollments.breadcrumbsTranslations.rootBreadcrumb": { + "description": "Breadcrumb label for the enrollment root page", + "message": "Inscriptions" + }, + "pages.admin.enrollments.breadcrumbsTranslations.viewBreadcrumb": { + "description": "Breadcrumb label for the enrollment view page", + "message": "Afficher" + }, + "pages.admin.enrollments.list.pageTitle": { + "description": "Label for the enrollment list page title", + "message": "Inscriptions" + }, + "pages.admin.enrollments.view.pageTitle": { + "description": "Label for the enrollment page title", + "message": "Inscription" + }, "pages.admin.home.cardHomePagesTranslation.certificateDefinitionBadge": { "description": "Label for the badge inside certificate definition card", "message": "Modèle de certificat" @@ -1751,6 +1911,14 @@ "description": "Label for the TO_BE_SCHEDULED priority", "message": "À planifier" }, + "translations.enrollment.state.failed": { + "description": "Label for the FAILED enrollment state", + "message": "Échouée" + }, + "translations.enrollment.state.set": { + "description": "Label for the SET enrollment state", + "message": "Définie" + }, "translations.products.productTypesMessages.certificate": { "description": "Label for the CERTIFICATE product type", "message": "Certificat" diff --git a/src/frontend/admin/src/translations/es-ES.json b/src/frontend/admin/src/translations/es-ES.json index 311c3cc9f..d19d5da51 100644 --- a/src/frontend/admin/src/translations/es-ES.json +++ b/src/frontend/admin/src/translations/es-ES.json @@ -61,7 +61,9 @@ "components.templates.course.form.translations.membersSectionTitle": "Course members", "components.templates.course.form.translations.membersTabTitle": "Members", "components.templates.course.form.translations.organizationsLabel": "Organizations", + "components.templates.course.form.translations.productRelation.chooseCourse": "Choose your course", "components.templates.course.form.translations.productRelation.chooseProduct": "Choose your product", + "components.templates.course.form.translations.productRelation.courseLabel": "Course", "components.templates.course.form.translations.productRelation.organizationsTitle": "Managed by this organizations", "components.templates.course.form.translations.productRelation.productLabel": "Product", "components.templates.course.form.translations.productRelationSubtitle": "Relation to products", @@ -95,9 +97,6 @@ "components.templates.courseRuns.list.successCopy": "Link added to your clipboard", "components.templates.courseRuns.list.title": "Title", "components.templates.courses.filters.CourseFilters.searchPlaceholder": "Search by title or code", - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalContent": "Are you sure you want to delete this relation?", - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalTitle": "Delete product relationship", - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.emptyList": "No product relationships have been created for this course", "components.templates.courses.form.productRelation.row.addOrderGroupButton": "Add order group", "components.templates.courses.form.productRelation.row.addOrderGroupModalFormTitle": "Edit an order group", "components.templates.courses.form.productRelation.row.deleteOrderGroupModal": "Delete an order group", @@ -122,6 +121,29 @@ "components.templates.coursesRuns.filters.CourseRunFilters.searchPlaceholder": "Search by title or resource link", "components.templates.coursesRuns.input.RHFOrderState.state": "State", "components.templates.coursesRuns.input.RHFSelectCourseRunState.state": "State", + "components.templates.enrollments.buttons.enrollmentActionsButton.enrollmentActionsLabel": "Actions", + "components.templates.enrollments.courseRun.id": "Course run", + "components.templates.enrollments.filters.EnrollmentFilters.isActiveLabel": "Is active", + "components.templates.enrollments.filters.EnrollmentFilters.searchPlaceholder": "Search by course run title, resource link, course code", + "components.templates.enrollments.input.RHFSelectEnrollmentState.state": "State", + "components.templates.enrollments.list.isActive": "Is active", + "components.templates.enrollments.list.owner": "Owner", + "components.templates.enrollments.list.state": "State", + "components.templates.enrollments.view.courseRun": "Course run", + "components.templates.enrollments.view.isActive": "Is active", + "components.templates.enrollments.view.isActiveHelperText": "Checked if the user is registered for the course run.", + "components.templates.enrollments.view.mainSectionTitle": "Details of an enrollment", + "components.templates.enrollments.view.state": "State", + "components.templates.enrollments.view.stateFailedMessage": "A problem occurred during enrollment on the LMS.", + "components.templates.enrollments.view.user": "User", + "components.templates.enrollments.view.wasCreatedForOrder": "Was created for an order", + "components.templates.enrollments.view.wasCreatedForOrderHelperText": "Checked if the enrollment was originally created as part of an order.", + "components.templates.orders.buttons.enrollmentActionsButton.cantEnrollMessage": "It's impossible to enroll because the course run is not opened for enrollment.", + "components.templates.orders.buttons.enrollmentActionsButton.enroll": "Enroll", + "components.templates.orders.buttons.enrollmentActionsButton.unroll": "unenroll", + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollButImpossibleToEnrollAfterModalMessage": "Are you sure you want to unenroll {username} to {courseRunTitle}? {br}The registration end was: ({enrollmentEndDate}). This date having passed, it will no longer be possible to revert this action.", + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalMessage": "Are you sure you want to unenroll {username} to {courseRunTitle}? {br}You can register until registration closes ({enrollmentEndDate}). After this date, it will no longer be possible to revert this action.", + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalTitle": "Unenroll this user", "components.templates.orders.buttons.orderActionsButton.alreadyCancelTooltip": "The order has already been canceled", "components.templates.orders.buttons.orderActionsButton.alreadyGenerateCertificateTooltip": "The certificate has already been generated", "components.templates.orders.buttons.orderActionsButton.cancelOrder": "Cancel this order", @@ -233,7 +255,6 @@ "components.templates.products.form.translations.contractDefinition": "Contract definition", "components.templates.products.form.translations.contractDefinitionHelper": "This is a contract template that will be used when purchasing the product", "components.templates.products.form.translations.contractDefinitionPlaceholder": "Search a contract definition", - "components.templates.products.form.translations.courseProductRelations.sectionTitle": "List of courses to which this product is linked", "components.templates.products.form.translations.definition": "Certificate definition", "components.templates.products.form.translations.definitionHelper": "Used for the generation of the certificate of completion of the course", "components.templates.products.form.translations.financialInformationTitle": "Financial information's", @@ -255,6 +276,7 @@ "components.templates.products.form.translations.relatedCoursesHelper": "This section allows you to choose the courses to which this product will be attached. Users will therefore be able to access this product through these courses.", "components.templates.products.form.translations.related_courses": "Related courses", "components.templates.products.form.translations.syllabusTabTitle": "Syllabus", + "components.templates.products.form.translations.targetCourseIsGradedLabel": "Taken into account for certification", "components.templates.products.form.translations.targetCourseRowSubTitle": "{numPhotos, plural, =0 {All selected course_runs.} other {# course runs selected.} }", "components.templates.products.form.translations.targetCourseSectionWizardTitle": "Target courses", "components.templates.products.form.translations.targetCoursesHelperSection": "In this part, you can choose the courses contained in the product, as well as all the associated course sessions", @@ -269,6 +291,13 @@ "components.templates.products;form.sections.ProductFormTypeSection.certifyingBadgeLabel": "Certifying", "components.templates.products;form.sections.ProductFormTypeSection.microCredentialDescription": "Our online microcredentials allow you to pursue further study in a specialised field. Created or accredited by world-leading universities, they are professional qualifications designed to help you master in-demand career skills and prepare for work in rapidly growing.", "components.templates.products;form.sections.ProductFormTypeSection.microCredentialTitle": "Microcredential", + "components.templates.relations.courseProductRelation.CourseProductRelationList.addRelationButtonLabel": "Add relation", + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalContent": "Are you sure you want to delete this relation?", + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalTitle": "Delete product relationship", + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyCourseList": "No product relationships have been created for this course", + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyProductList": "No course relationships have been created for this product", + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleCourseHeader": "Relation to products", + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleProductHeader": "Relation to courses", "hooks.useCertificateDefinitions.errorCreate": "An error occurred while creating the certificate definition. Please retry later.", "hooks.useCertificateDefinitions.errorDelete": "An error occurred while deleting the certificate definition. Please retry later.", "hooks.useCertificateDefinitions.errorNotFound": "Cannot find the certificate definition", @@ -297,6 +326,11 @@ "hooks.useCourseRun.errorNotFound": "Cannot find the course-run", "hooks.useCourseRun.errorSelect": "An error occurred while fetching course-runs. Please retry later.", "hooks.useCourseRun.errorUpdate": "An error occurred while updating the course run. Please retry later.", + "hooks.useEnrollments.errorCreate": "An error occurred while creating the order. Please retry later.", + "hooks.useEnrollments.errorDelete": "An error occurred while deleting the order. Please retry later.", + "hooks.useEnrollments.errorGet": "An error occurred while fetching orders. Please retry later.", + "hooks.useEnrollments.errorNotFound": "Cannot find the order", + "hooks.useEnrollments.errorUpdate": "An error occurred while updating the order. Please retry later.", "hooks.useOrders.errorCreate": "An error occurred while creating the order. Please retry later.", "hooks.useOrders.errorDelete": "An error occurred while deleting the order. Please retry later.", "hooks.useOrders.errorGet": "An error occurred while fetching orders. Please retry later.", @@ -336,6 +370,7 @@ "layouts.dashboard.nav.config.contractDefinitionNavTitle": "Contracts definitions", "layouts.dashboard.nav.config.courseNavTitle": "Courses", "layouts.dashboard.nav.config.courseRunsNavTitle": "Courses runs", + "layouts.dashboard.nav.config.enrollmentsNavTitle": "Enrollments", "layouts.dashboard.nav.config.managementSubHeader": "Management", "layouts.dashboard.nav.config.ordersNavTitle": "Orders", "layouts.dashboard.nav.config.organizationNavTitle": "Organizations", @@ -367,6 +402,11 @@ "pages.admin.coursesRuns.create.pageTitle": "Add a course run", "pages.admin.coursesRuns.edit.pageTitle": "Edit course run: {courseRunName}", "pages.admin.coursesRuns.list.pageTitle": "Course runs", + "pages.admin.enrollments.breadcrumbsTranslations.listBreadcrumb": "List", + "pages.admin.enrollments.breadcrumbsTranslations.rootBreadcrumb": "Enrollments", + "pages.admin.enrollments.breadcrumbsTranslations.viewBreadcrumb": "View", + "pages.admin.enrollments.list.pageTitle": "Enrollments", + "pages.admin.enrollments.view.pageTitle": "Enrollment view", "pages.admin.home.cardHomePagesTranslation.certificateDefinitionBadge": "Certificate definition", "pages.admin.home.cardHomePagesTranslation.certificateDefinitionDescription": "A certificate definition is based on a template. There are currently two certificate templates available (certificate and degree).", "pages.admin.home.cardHomePagesTranslation.certificateDefinitionTitle": "Create a certificate definition", @@ -437,6 +477,8 @@ "translations.courseRuns.priorityState.onGoingOpen": "Currently open", "translations.courseRuns.priorityState.ongoigClosed": "Ongoing closed", "translations.courseRuns.priorityState.toBeScheduled": "To be scheduled", + "translations.enrollment.state.failed": "Failed", + "translations.enrollment.state.set": "Set", "translations.products.productTypesMessages.certificate": "Certificate", "translations.products.productTypesMessages.credential": "Credential", "translations.products.productTypesMessages.enrollment": "Enrollment" diff --git a/src/frontend/admin/src/translations/fr-CA.json b/src/frontend/admin/src/translations/fr-CA.json index 3b72759b2..ea0c2959d 100644 --- a/src/frontend/admin/src/translations/fr-CA.json +++ b/src/frontend/admin/src/translations/fr-CA.json @@ -61,7 +61,9 @@ "components.templates.course.form.translations.membersSectionTitle": "Course members", "components.templates.course.form.translations.membersTabTitle": "Members", "components.templates.course.form.translations.organizationsLabel": "Organizations", + "components.templates.course.form.translations.productRelation.chooseCourse": "Choose your course", "components.templates.course.form.translations.productRelation.chooseProduct": "Choose your product", + "components.templates.course.form.translations.productRelation.courseLabel": "Course", "components.templates.course.form.translations.productRelation.organizationsTitle": "Managed by this organizations", "components.templates.course.form.translations.productRelation.productLabel": "Product", "components.templates.course.form.translations.productRelationSubtitle": "Relation to products", @@ -95,9 +97,6 @@ "components.templates.courseRuns.list.successCopy": "Link added to your clipboard", "components.templates.courseRuns.list.title": "Title", "components.templates.courses.filters.CourseFilters.searchPlaceholder": "Search by title or code", - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalContent": "Are you sure you want to delete this relation?", - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalTitle": "Delete product relationship", - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.emptyList": "No product relationships have been created for this course", "components.templates.courses.form.productRelation.row.addOrderGroupButton": "Add order group", "components.templates.courses.form.productRelation.row.addOrderGroupModalFormTitle": "Edit an order group", "components.templates.courses.form.productRelation.row.deleteOrderGroupModal": "Delete an order group", @@ -122,6 +121,29 @@ "components.templates.coursesRuns.filters.CourseRunFilters.searchPlaceholder": "Search by title or resource link", "components.templates.coursesRuns.input.RHFOrderState.state": "State", "components.templates.coursesRuns.input.RHFSelectCourseRunState.state": "State", + "components.templates.enrollments.buttons.enrollmentActionsButton.enrollmentActionsLabel": "Actions", + "components.templates.enrollments.courseRun.id": "Course run", + "components.templates.enrollments.filters.EnrollmentFilters.isActiveLabel": "Is active", + "components.templates.enrollments.filters.EnrollmentFilters.searchPlaceholder": "Search by course run title, resource link, course code", + "components.templates.enrollments.input.RHFSelectEnrollmentState.state": "State", + "components.templates.enrollments.list.isActive": "Is active", + "components.templates.enrollments.list.owner": "Owner", + "components.templates.enrollments.list.state": "State", + "components.templates.enrollments.view.courseRun": "Course run", + "components.templates.enrollments.view.isActive": "Is active", + "components.templates.enrollments.view.isActiveHelperText": "Checked if the user is registered for the course run.", + "components.templates.enrollments.view.mainSectionTitle": "Details of an enrollment", + "components.templates.enrollments.view.state": "State", + "components.templates.enrollments.view.stateFailedMessage": "A problem occurred during enrollment on the LMS.", + "components.templates.enrollments.view.user": "User", + "components.templates.enrollments.view.wasCreatedForOrder": "Was created for an order", + "components.templates.enrollments.view.wasCreatedForOrderHelperText": "Checked if the enrollment was originally created as part of an order.", + "components.templates.orders.buttons.enrollmentActionsButton.cantEnrollMessage": "It's impossible to enroll because the course run is not opened for enrollment.", + "components.templates.orders.buttons.enrollmentActionsButton.enroll": "Enroll", + "components.templates.orders.buttons.enrollmentActionsButton.unroll": "unenroll", + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollButImpossibleToEnrollAfterModalMessage": "Are you sure you want to unenroll {username} to {courseRunTitle}? {br}The registration end was: ({enrollmentEndDate}). This date having passed, it will no longer be possible to revert this action.", + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalMessage": "Are you sure you want to unenroll {username} to {courseRunTitle}? {br}You can register until registration closes ({enrollmentEndDate}). After this date, it will no longer be possible to revert this action.", + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalTitle": "Unenroll this user", "components.templates.orders.buttons.orderActionsButton.alreadyCancelTooltip": "The order has already been canceled", "components.templates.orders.buttons.orderActionsButton.alreadyGenerateCertificateTooltip": "The certificate has already been generated", "components.templates.orders.buttons.orderActionsButton.cancelOrder": "Cancel this order", @@ -233,7 +255,6 @@ "components.templates.products.form.translations.contractDefinition": "Contract definition", "components.templates.products.form.translations.contractDefinitionHelper": "This is a contract template that will be used when purchasing the product", "components.templates.products.form.translations.contractDefinitionPlaceholder": "Search a contract definition", - "components.templates.products.form.translations.courseProductRelations.sectionTitle": "List of courses to which this product is linked", "components.templates.products.form.translations.definition": "Certificate definition", "components.templates.products.form.translations.definitionHelper": "Used for the generation of the certificate of completion of the course", "components.templates.products.form.translations.financialInformationTitle": "Financial information's", @@ -255,6 +276,7 @@ "components.templates.products.form.translations.relatedCoursesHelper": "This section allows you to choose the courses to which this product will be attached. Users will therefore be able to access this product through these courses.", "components.templates.products.form.translations.related_courses": "Related courses", "components.templates.products.form.translations.syllabusTabTitle": "Syllabus", + "components.templates.products.form.translations.targetCourseIsGradedLabel": "Taken into account for certification", "components.templates.products.form.translations.targetCourseRowSubTitle": "{numPhotos, plural, =0 {All selected course_runs.} other {# course runs selected.} }", "components.templates.products.form.translations.targetCourseSectionWizardTitle": "Target courses", "components.templates.products.form.translations.targetCoursesHelperSection": "In this part, you can choose the courses contained in the product, as well as all the associated course sessions", @@ -269,6 +291,13 @@ "components.templates.products;form.sections.ProductFormTypeSection.certifyingBadgeLabel": "Certifying", "components.templates.products;form.sections.ProductFormTypeSection.microCredentialDescription": "Our online microcredentials allow you to pursue further study in a specialised field. Created or accredited by world-leading universities, they are professional qualifications designed to help you master in-demand career skills and prepare for work in rapidly growing.", "components.templates.products;form.sections.ProductFormTypeSection.microCredentialTitle": "Microcredential", + "components.templates.relations.courseProductRelation.CourseProductRelationList.addRelationButtonLabel": "Add relation", + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalContent": "Are you sure you want to delete this relation?", + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalTitle": "Delete product relationship", + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyCourseList": "No product relationships have been created for this course", + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyProductList": "No course relationships have been created for this product", + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleCourseHeader": "Relation to products", + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleProductHeader": "Relation to courses", "hooks.useCertificateDefinitions.errorCreate": "An error occurred while creating the certificate definition. Please retry later.", "hooks.useCertificateDefinitions.errorDelete": "An error occurred while deleting the certificate definition. Please retry later.", "hooks.useCertificateDefinitions.errorNotFound": "Cannot find the certificate definition", @@ -297,6 +326,11 @@ "hooks.useCourseRun.errorNotFound": "Cannot find the course-run", "hooks.useCourseRun.errorSelect": "An error occurred while fetching course-runs. Please retry later.", "hooks.useCourseRun.errorUpdate": "An error occurred while updating the course run. Please retry later.", + "hooks.useEnrollments.errorCreate": "An error occurred while creating the order. Please retry later.", + "hooks.useEnrollments.errorDelete": "An error occurred while deleting the order. Please retry later.", + "hooks.useEnrollments.errorGet": "An error occurred while fetching orders. Please retry later.", + "hooks.useEnrollments.errorNotFound": "Cannot find the order", + "hooks.useEnrollments.errorUpdate": "An error occurred while updating the order. Please retry later.", "hooks.useOrders.errorCreate": "An error occurred while creating the order. Please retry later.", "hooks.useOrders.errorDelete": "An error occurred while deleting the order. Please retry later.", "hooks.useOrders.errorGet": "An error occurred while fetching orders. Please retry later.", @@ -336,6 +370,7 @@ "layouts.dashboard.nav.config.contractDefinitionNavTitle": "Contracts definitions", "layouts.dashboard.nav.config.courseNavTitle": "Courses", "layouts.dashboard.nav.config.courseRunsNavTitle": "Courses runs", + "layouts.dashboard.nav.config.enrollmentsNavTitle": "Enrollments", "layouts.dashboard.nav.config.managementSubHeader": "Management", "layouts.dashboard.nav.config.ordersNavTitle": "Orders", "layouts.dashboard.nav.config.organizationNavTitle": "Organizations", @@ -367,6 +402,11 @@ "pages.admin.coursesRuns.create.pageTitle": "Add a course run", "pages.admin.coursesRuns.edit.pageTitle": "Edit course run: {courseRunName}", "pages.admin.coursesRuns.list.pageTitle": "Course runs", + "pages.admin.enrollments.breadcrumbsTranslations.listBreadcrumb": "List", + "pages.admin.enrollments.breadcrumbsTranslations.rootBreadcrumb": "Enrollments", + "pages.admin.enrollments.breadcrumbsTranslations.viewBreadcrumb": "View", + "pages.admin.enrollments.list.pageTitle": "Enrollments", + "pages.admin.enrollments.view.pageTitle": "Enrollment view", "pages.admin.home.cardHomePagesTranslation.certificateDefinitionBadge": "Certificate definition", "pages.admin.home.cardHomePagesTranslation.certificateDefinitionDescription": "A certificate definition is based on a template. There are currently two certificate templates available (certificate and degree).", "pages.admin.home.cardHomePagesTranslation.certificateDefinitionTitle": "Create a certificate definition", @@ -437,6 +477,8 @@ "translations.courseRuns.priorityState.onGoingOpen": "Currently open", "translations.courseRuns.priorityState.ongoigClosed": "Ongoing closed", "translations.courseRuns.priorityState.toBeScheduled": "To be scheduled", + "translations.enrollment.state.failed": "Failed", + "translations.enrollment.state.set": "Set", "translations.products.productTypesMessages.certificate": "Certificate", "translations.products.productTypesMessages.credential": "Credential", "translations.products.productTypesMessages.enrollment": "Enrollment" diff --git a/src/frontend/admin/src/translations/fr-FR.json b/src/frontend/admin/src/translations/fr-FR.json index ce74825b5..b650749e4 100644 --- a/src/frontend/admin/src/translations/fr-FR.json +++ b/src/frontend/admin/src/translations/fr-FR.json @@ -61,7 +61,9 @@ "components.templates.course.form.translations.membersSectionTitle": "Membres du cours", "components.templates.course.form.translations.membersTabTitle": "Membres", "components.templates.course.form.translations.organizationsLabel": "Établissements", + "components.templates.course.form.translations.productRelation.chooseCourse": "Choisissez votre cours ", "components.templates.course.form.translations.productRelation.chooseProduct": "Choisissez votre produit", + "components.templates.course.form.translations.productRelation.courseLabel": "Cours", "components.templates.course.form.translations.productRelation.organizationsTitle": "Géré par ces établissements", "components.templates.course.form.translations.productRelation.productLabel": "Produit", "components.templates.course.form.translations.productRelationSubtitle": "Produits associés", @@ -95,9 +97,6 @@ "components.templates.courseRuns.list.successCopy": "Le lien a été copié dans votre presse-papier", "components.templates.courseRuns.list.title": "Titre", "components.templates.courses.filters.CourseFilters.searchPlaceholder": "Rechercher par titre, code", - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalContent": "Êtes-vous sûr de vouloir supprimer cette relation ?", - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.deleteRelationModalTitle": "Supprimer la relation avec le produit", - "components.templates.courses.form.productRelation.CourseFormProductRelationsSection.emptyList": "Aucune relation avec un produit n'a été créée pour ce cours", "components.templates.courses.form.productRelation.row.addOrderGroupButton": "Ajouter un groupe de commandes", "components.templates.courses.form.productRelation.row.addOrderGroupModalFormTitle": "Modifier un groupe de commandes", "components.templates.courses.form.productRelation.row.deleteOrderGroupModal": "Supprimer un groupe de commandes", @@ -122,6 +121,29 @@ "components.templates.coursesRuns.filters.CourseRunFilters.searchPlaceholder": "Rechercher par titre, lien de ressource", "components.templates.coursesRuns.input.RHFOrderState.state": "État", "components.templates.coursesRuns.input.RHFSelectCourseRunState.state": "État", + "components.templates.enrollments.buttons.enrollmentActionsButton.enrollmentActionsLabel": "Actions", + "components.templates.enrollments.courseRun.id": "Session de cours", + "components.templates.enrollments.filters.EnrollmentFilters.isActiveLabel": "Est actif", + "components.templates.enrollments.filters.EnrollmentFilters.searchPlaceholder": "Recherche par titre de session de cours, lien de ressource, code de cours", + "components.templates.enrollments.input.RHFSelectEnrollmentState.state": "État", + "components.templates.enrollments.list.isActive": "Est actif", + "components.templates.enrollments.list.owner": "Propriétaire", + "components.templates.enrollments.list.state": "État", + "components.templates.enrollments.view.courseRun": "Session de cours", + "components.templates.enrollments.view.isActive": "Est actif", + "components.templates.enrollments.view.isActiveHelperText": "Coché si l'utilisateur est inscrit à la session de cours.", + "components.templates.enrollments.view.mainSectionTitle": "Détails d'une inscription", + "components.templates.enrollments.view.state": "État", + "components.templates.enrollments.view.stateFailedMessage": "Un problème est survenu lors de l'inscription sur le LMS.", + "components.templates.enrollments.view.user": "Utilisateur", + "components.templates.enrollments.view.wasCreatedForOrder": "A été créé dans le cadre d'une commande", + "components.templates.enrollments.view.wasCreatedForOrderHelperText": "Coché si l'inscription a été initialement créée dans le cadre d'une commande.", + "components.templates.orders.buttons.enrollmentActionsButton.cantEnrollMessage": "Il est impossible d'inscrire car la session n'est pas ouverte aux inscriptions.", + "components.templates.orders.buttons.enrollmentActionsButton.enroll": "Inscrire", + "components.templates.orders.buttons.enrollmentActionsButton.unroll": "Se désinscrire", + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollButImpossibleToEnrollAfterModalMessage": "Êtes-vous sûr de vouloir désinscrire {username} à {courseRunTitle}? {br}La fin des inscriptions était le ({enrollmentEndDate}). Cette date est passée, il ne sera pas possible d'annuler cette action.", + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalMessage": "Êtes-vous sûr de vouloir désinscrire {username} à {courseRunTitle}? {br}Vous pouvez vous inscrire jusqu'à la fermeture des inscriptions ({enrollmentEndDate}). Après cette date, il ne sera plus possible d'annuler cette action.", + "components.templates.orders.buttons.enrollmentActionsButton.validateUnrollModalTitle": "Désinscrire cet utilisateur", "components.templates.orders.buttons.orderActionsButton.alreadyCancelTooltip": "La commande a déjà été annulée", "components.templates.orders.buttons.orderActionsButton.alreadyGenerateCertificateTooltip": "Le certificat a déjà été généré", "components.templates.orders.buttons.orderActionsButton.cancelOrder": "Annuler cette commande", @@ -233,7 +255,6 @@ "components.templates.products.form.translations.contractDefinition": "Modèle de contrat", "components.templates.products.form.translations.contractDefinitionHelper": "Il s'agit d'un modèle de contrat qui sera utilisé lors de l'achat du produit", "components.templates.products.form.translations.contractDefinitionPlaceholder": "Rechercher un modèle de contrat", - "components.templates.products.form.translations.courseProductRelations.sectionTitle": "Liste des courses auxquels le produit est lié", "components.templates.products.form.translations.definition": "Modèle de certificat", "components.templates.products.form.translations.definitionHelper": "Utilisée pour la génération de certificat ou d'attestation d'achèvement", "components.templates.products.form.translations.financialInformationTitle": "Informations financières", @@ -255,6 +276,7 @@ "components.templates.products.form.translations.relatedCoursesHelper": "Cette section vous permet de choisir les cours auxquels ce produit sera associé. Les utilisateurs pourront ainsi accéder à ce produit par le biais de ces cours.", "components.templates.products.form.translations.related_courses": "Cours associés", "components.templates.products.form.translations.syllabusTabTitle": "Syllabus", + "components.templates.products.form.translations.targetCourseIsGradedLabel": "Prendre en compte pour la certification", "components.templates.products.form.translations.targetCourseRowSubTitle": "{numPhotos, plural, =0 {Toutes les sessions sont sélectionnées.} other {# sessions sont sélectionnées.} }", "components.templates.products.form.translations.targetCourseSectionWizardTitle": "Cours", "components.templates.products.form.translations.targetCoursesHelperSection": "Dans cette partie, vous pouvez choisir les cours intégrés dans le produit, ainsi que toutes les sessions de cours associées", @@ -269,6 +291,13 @@ "components.templates.products;form.sections.ProductFormTypeSection.certifyingBadgeLabel": "Certifiant", "components.templates.products;form.sections.ProductFormTypeSection.microCredentialDescription": "Our online microcredentials allow you to pursue further study in a specialised field. Created or accredited by world-leading universities, they are professional qualifications designed to help you master in-demand career skills and prepare for work in rapidly growing.", "components.templates.products;form.sections.ProductFormTypeSection.microCredentialTitle": "Micro-certification", + "components.templates.relations.courseProductRelation.CourseProductRelationList.addRelationButtonLabel": "Ajouter une relation", + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalContent": "Êtes-vous sûr de vouloir supprimer cette relation ?", + "components.templates.relations.courseProductRelation.CourseProductRelationList.deleteRelationModalTitle": "Supprimer la relation avec le produit", + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyCourseList": "Aucune relation avec un produit n'a été créée pour ce cours", + "components.templates.relations.courseProductRelation.CourseProductRelationList.emptyProductList": "Aucune relation avec un cours n'a été créée pour ce produit", + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleCourseHeader": "Produits associés", + "components.templates.relations.courseProductRelation.CourseProductRelationList.titleProductHeader": "Cours associés", "hooks.useCertificateDefinitions.errorCreate": "Une erreur s'est produite lors de la création du modèle de certificat. Veuillez réessayer plus tard.", "hooks.useCertificateDefinitions.errorDelete": "Une erreur s'est produite lors de la suppression du modèle de certificat. Veuillez réessayer plus tard.", "hooks.useCertificateDefinitions.errorNotFound": "Impossible de trouver le modèle de certificat", @@ -297,6 +326,11 @@ "hooks.useCourseRun.errorNotFound": "Session de cours introuvable", "hooks.useCourseRun.errorSelect": "Une erreur s'est produite lors de la récupération des sessions de cours. Veuillez réessayer plus tard.", "hooks.useCourseRun.errorUpdate": "Une erreur s'est produite lors de la mise à jour de la session de cours. Veuillez réessayer plus tard.", + "hooks.useEnrollments.errorCreate": "An error occurred while creating the order. Please retry later.", + "hooks.useEnrollments.errorDelete": "An error occurred while deleting the order. Please retry later.", + "hooks.useEnrollments.errorGet": "An error occurred while fetching orders. Please retry later.", + "hooks.useEnrollments.errorNotFound": "Cannot find the order", + "hooks.useEnrollments.errorUpdate": "An error occurred while updating the order. Please retry later.", "hooks.useOrders.errorCreate": "Une erreur s'est produite lors de la création de la commande. Veuillez réessayer plus tard.", "hooks.useOrders.errorDelete": "Une erreur s'est produite lors de la suppression de la commande. Veuillez réessayer plus tard.", "hooks.useOrders.errorGet": "Une erreur s'est produite lors de la récupération des commandes. Veuillez réessayer plus tard.", @@ -336,6 +370,7 @@ "layouts.dashboard.nav.config.contractDefinitionNavTitle": "Modèles de contrat", "layouts.dashboard.nav.config.courseNavTitle": "Cours", "layouts.dashboard.nav.config.courseRunsNavTitle": "Sessions de cours", + "layouts.dashboard.nav.config.enrollmentsNavTitle": "Inscriptions", "layouts.dashboard.nav.config.managementSubHeader": "Gestion", "layouts.dashboard.nav.config.ordersNavTitle": "Commandes", "layouts.dashboard.nav.config.organizationNavTitle": "Établissements", @@ -367,6 +402,11 @@ "pages.admin.coursesRuns.create.pageTitle": "Ajouter une session de cours", "pages.admin.coursesRuns.edit.pageTitle": "Modifier la session : {courseRunName}", "pages.admin.coursesRuns.list.pageTitle": "Sessions de cours", + "pages.admin.enrollments.breadcrumbsTranslations.listBreadcrumb": "Liste", + "pages.admin.enrollments.breadcrumbsTranslations.rootBreadcrumb": "Inscriptions", + "pages.admin.enrollments.breadcrumbsTranslations.viewBreadcrumb": "Afficher", + "pages.admin.enrollments.list.pageTitle": "Inscriptions", + "pages.admin.enrollments.view.pageTitle": "Inscription", "pages.admin.home.cardHomePagesTranslation.certificateDefinitionBadge": "Modèle de certificat", "pages.admin.home.cardHomePagesTranslation.certificateDefinitionDescription": "Une modèle de certificat est basée sur un gabarit. Il y a actuellement deux gabarits de certificats disponibles (certificat et diplôme).", "pages.admin.home.cardHomePagesTranslation.certificateDefinitionTitle": "Créez un modèle de certificat", @@ -437,6 +477,8 @@ "translations.courseRuns.priorityState.onGoingOpen": "Actuellement ouvert", "translations.courseRuns.priorityState.ongoigClosed": "En cours fermé", "translations.courseRuns.priorityState.toBeScheduled": "À planifier", + "translations.enrollment.state.failed": "Échouée", + "translations.enrollment.state.set": "Définie", "translations.products.productTypesMessages.certificate": "Certificat", "translations.products.productTypesMessages.credential": "Certification", "translations.products.productTypesMessages.enrollment": "Inscription"