diff --git a/changelog.txt b/changelog.txt index c1765f271d..e315745eae 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,24 @@ *** Changelog *** +## 4.25.2 - 2025-12-16 +### Security +- Fix XSS vulnerability in the Contact Teacher block + +### Removed +- Remove "new" badge from Appearance settings tab [#7874](https://github.com/Automattic/sensei/pull/7874) + +### Fixed +- Allow multiple choice quiz questions with no wrong answers [#7872](https://github.com/Automattic/sensei/pull/7872) +- Fix Course List pattern not working with newest Gutenberg [#7876](https://github.com/Automattic/sensei/pull/7876) +- Fix error when activating MailPoet [#7864](https://github.com/Automattic/sensei/pull/7864) +- Fix lesson comments being visible to unregistered users in some cases [#7848](https://github.com/Automattic/sensei/pull/7848) +- Fix reports screen times out on larger sites [#7859](https://github.com/Automattic/sensei/pull/7859) +- Fix the course structure API exposing the lesson AI generated bootstrap text [#7869](https://github.com/Automattic/sensei/pull/7869) +- Prevent duplicate queries from happening on every block render [#7860](https://github.com/Automattic/sensei/pull/7860) + +### Development +- Add CLI command for recalculating course enrolment [#7877](https://github.com/Automattic/sensei/pull/7877) + ## 4.25.1 - 2025-09-18 ### Security - Add authorization check when updating the lesson course relation diff --git a/changelog/fix-course-list-patterns b/changelog/fix-course-list-patterns deleted file mode 100644 index e8132e1fdb..0000000000 --- a/changelog/fix-course-list-patterns +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -Fix Course List pattern not working with newest Gutenberg diff --git a/changelog/fix-course-structure-exposing-lesson-initial-content b/changelog/fix-course-structure-exposing-lesson-initial-content deleted file mode 100644 index cee83fd94f..0000000000 --- a/changelog/fix-course-structure-exposing-lesson-initial-content +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -Fix the course structure API exposing the lesson AI generated bootstrap text diff --git a/changelog/fix-lesson-comments-visible-to-unregistered-users b/changelog/fix-lesson-comments-visible-to-unregistered-users deleted file mode 100644 index eae0fc51ea..0000000000 --- a/changelog/fix-lesson-comments-visible-to-unregistered-users +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -Fix lesson comments being visible to unregistered users in some cases diff --git a/changelog/fix-mailpoet-error-on-plugin-activation b/changelog/fix-mailpoet-error-on-plugin-activation deleted file mode 100644 index dba54b316a..0000000000 --- a/changelog/fix-mailpoet-error-on-plugin-activation +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -Fix error when activating MailPoet diff --git a/changelog/fix-slow-query-on-reports-screen b/changelog/fix-slow-query-on-reports-screen deleted file mode 100644 index 70c54d577f..0000000000 --- a/changelog/fix-slow-query-on-reports-screen +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -Fix reports screen times out on larger sites diff --git a/changelog/fix-some-questions-not-showing b/changelog/fix-some-questions-not-showing deleted file mode 100644 index b85f7a5cb3..0000000000 --- a/changelog/fix-some-questions-not-showing +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -Allow multiple choice quiz questions with no wrong answers diff --git a/changelog/reduce-scope-completed-actions-filter b/changelog/reduce-scope-completed-actions-filter deleted file mode 100644 index f2858a0b43..0000000000 --- a/changelog/reduce-scope-completed-actions-filter +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: fixed - -Prevent duplicate queries from happening on every block render diff --git a/changelog/remove-new-label-appearance-settings b/changelog/remove-new-label-appearance-settings deleted file mode 100644 index 7b0334b822..0000000000 --- a/changelog/remove-new-label-appearance-settings +++ /dev/null @@ -1,4 +0,0 @@ -Significance: minor -Type: removed - -Remove "new" badge from Appearance settings tab diff --git a/changelog/update-add-command-for-course-enrolment-recalculation b/changelog/update-add-command-for-course-enrolment-recalculation deleted file mode 100644 index fc34c53c0a..0000000000 --- a/changelog/update-add-command-for-course-enrolment-recalculation +++ /dev/null @@ -1,4 +0,0 @@ -Significance: patch -Type: development - -Add CLI command for recalculating course enrolment diff --git a/includes/blocks/class-sensei-block-contact-teacher.php b/includes/blocks/class-sensei-block-contact-teacher.php index 2321a09364..41e839b47a 100644 --- a/includes/blocks/class-sensei-block-contact-teacher.php +++ b/includes/blocks/class-sensei-block-contact-teacher.php @@ -131,11 +131,20 @@ private function teacher_contact_form( $post ) { * @return string Block HTML with additional href attribute. */ private function add_button_attributes( $content, $href ) { - return preg_replace( - '/(.+)<\/a>/', - '$4', - $content, - 1 + return wp_kses( + preg_replace( + '/(.+)<\/a>/', + '$4', + $content, + 1 + ), + [ + 'a' => [ + 'href' => [], + 'class' => [], + 'data-sensei-modal-open' => [], + ], + ] ); } } diff --git a/includes/class-sensei.php b/includes/class-sensei.php index abfff73155..d22355cc7a 100644 --- a/includes/class-sensei.php +++ b/includes/class-sensei.php @@ -852,7 +852,7 @@ public function initialize_global_objects() { /** * Initialize MailPoet integration. * - * @since $$next-version$$ + * @since 4.25.2 */ public function initialize_mailpoet() { if ( class_exists( \MailPoet\API\API::class ) ) { diff --git a/includes/cli/class-sensei-enrolment-course-calculation-command.php b/includes/cli/class-sensei-enrolment-course-calculation-command.php index aa3ce9285e..2286232460 100644 --- a/includes/cli/class-sensei-enrolment-course-calculation-command.php +++ b/includes/cli/class-sensei-enrolment-course-calculation-command.php @@ -12,7 +12,7 @@ /** * WP-CLI command that runs the course enrolment calculation job. * - * @since $$next-version$$ + * @since 4.25.2 */ class Sensei_Enrolment_Course_Calculation_Command { diff --git a/includes/unsupported-theme-handlers/class-sensei-unsupported-theme-handler-cpt.php b/includes/unsupported-theme-handlers/class-sensei-unsupported-theme-handler-cpt.php index e33e377fac..f4fe13ff43 100644 --- a/includes/unsupported-theme-handlers/class-sensei-unsupported-theme-handler-cpt.php +++ b/includes/unsupported-theme-handlers/class-sensei-unsupported-theme-handler-cpt.php @@ -254,7 +254,7 @@ private function is_lesson_cpt_in_block_fse_theme() { * Comments are only shown for lessons in block themes if the user can view * the lesson. * - * @since $$next-version$$ + * @since 4.25.2 * * @return bool */ diff --git a/lang/sensei-lms.pot b/lang/sensei-lms.pot index 34e956b749..486e11061a 100644 --- a/lang/sensei-lms.pot +++ b/lang/sensei-lms.pot @@ -2,16 +2,16 @@ # This file is distributed under the GPLv2 or later. msgid "" msgstr "" -"Project-Id-Version: Sensei LMS 4.25.1\n" +"Project-Id-Version: Sensei LMS 4.25.2\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/sensei-lms\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2025-09-17T15:41:14+00:00\n" +"POT-Creation-Date: 2025-12-15T18:05:28+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"X-Generator: WP-CLI 2.11.0\n" +"X-Generator: WP-CLI 2.12.0\n" "X-Domain: sensei-lms\n" #. Plugin Name of the plugin @@ -256,6 +256,7 @@ msgstr "" #. translators: placeholder is the total number of students. #: includes/admin/class-sensei-learners-admin-bulk-actions-view.php:143 +#, php-format msgid "Students (%d)" msgstr "" @@ -325,6 +326,7 @@ msgstr "" #: includes/admin/class-sensei-learners-main.php:433 #: includes/admin/class-sensei-learners-main.php:626 #: includes/internal/emails/class-email-list-table.php:207 +#, php-format msgid "Edit “%s”" msgstr "" @@ -379,6 +381,7 @@ msgstr "" #. translators: %d: the number of links to be displayed #: includes/admin/class-sensei-learners-admin-bulk-actions-view.php:503 #: includes/class-sensei-modules.php:1509 +#, php-format msgid "+%d more" msgstr "" @@ -624,7 +627,7 @@ msgstr "" #: includes/class-sensei-posttypes.php:953 #: includes/class-sensei-posttypes.php:1223 #: includes/class-sensei-posttypes.php:1224 -#: includes/class-sensei-settings.php:267 +#: includes/class-sensei-settings.php:266 #: templates/course-results/lessons.php:43 #: templates/single-course/modules.php:106 #: assets/blocks/course-outline/module-block/module-edit.js:241 @@ -653,11 +656,13 @@ msgstr "" #. translators: Placeholder is the post title. #: includes/admin/class-sensei-learners-main.php:1181 +#, php-format msgid "Add to '%1$s'" msgstr "" #. translators: Placeholder is the course title. #: includes/admin/class-sensei-learners-main.php:1188 +#, php-format msgid "Student will also be added to the course '%1$s' if they are not already taking it." msgstr "" @@ -670,11 +675,13 @@ msgstr "" #. translators: Placeholder %1$s is the plugin title, %2$s is the error message. #: includes/admin/class-sensei-plugins-installation.php:351 +#, php-format msgid "%1$s could not be installed (%2$s)." msgstr "" #. translators: Placeholder %1$s is the plugin title, %2$s is the error message. #: includes/admin/class-sensei-plugins-installation.php:370 +#, php-format msgid "%1$s is installed but could not be activated (%2$s)." msgstr "" @@ -695,7 +702,7 @@ msgstr "" #: includes/class-sensei-posttypes.php:948 #: includes/class-sensei-posttypes.php:1207 #: includes/class-sensei-posttypes.php:1208 -#: includes/class-sensei-settings.php:262 +#: includes/class-sensei-settings.php:261 #: includes/unsupported-theme-handlers/class-sensei-unsupported-theme-handler-course-archive.php:55 #: assets/blocks/course-completed-actions/index.js:49 #: assets/blocks/course-list-block/index.js:43 @@ -748,7 +755,7 @@ msgstr "" #: includes/admin/class-sensei-setup-wizard-pages.php:237 #: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:101 #: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:163 -#: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:219 +#: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:221 #: includes/block-patterns/page/templates/v1/landing-page-grid.php:72 #: includes/block-patterns/page/templates/v1/landing-page-list.php:82 #: includes/block-patterns/page/templates/v2/landing-page.php:61 @@ -843,6 +850,7 @@ msgstr "" #. translators: Placeholder is datetime for when the instance was upgraded. #: includes/admin/class-sensei-status.php:115 +#, php-format msgid "Yes, updated Sensei LMS from a pre-3.0 version at %s" msgstr "" @@ -856,11 +864,13 @@ msgstr "" #. translators: First placeholder is Sensei LMS' template version and the second placeholder is the theme's version. #: includes/admin/class-sensei-status.php:140 +#, php-format msgid "Mismatch (plugin v%1$s; theme v%2$s)" msgstr "" #. translators: Placeholder is the version of the template. #: includes/admin/class-sensei-status.php:143 +#, php-format msgid "Match (v%s)" msgstr "" @@ -983,11 +993,13 @@ msgstr "" #. translators: First placeholder is the plugin name; second placeholder is the latest version. #: includes/admin/home/notices/class-sensei-home-notices.php:343 +#, php-format msgid "There is a new version of %1$s available (%2$s). Please activate the plugin license in order to proceed with the update process." msgstr "" #. translators: First placeholder is the plugin name and second placeholder is the latest version available. #: includes/admin/home/notices/class-sensei-home-notices.php:369 +#, php-format msgid "There is a new version of %1$s available (%2$s). Please activate the plugin in order to proceed with the update process." msgstr "" @@ -999,6 +1011,7 @@ msgstr "" #. translators: First placeholder is the plugin name and second placeholder is the latest version available. #: includes/admin/home/notices/class-sensei-home-notices.php:400 +#, php-format msgid "There is a new version of %1$s available (%2$s). Please update to ensure you have the latest features and fixes." msgstr "" @@ -1037,7 +1050,7 @@ msgid "Learning mode" msgstr "" #: includes/admin/home/quick-links/class-sensei-home-quick-links-provider.php:37 -#: includes/class-sensei-settings.php:296 +#: includes/class-sensei-settings.php:295 msgid "WooCommerce" msgstr "" @@ -1170,11 +1183,13 @@ msgstr "" #. translators: %1$s is the IDs of the updated terms. #: includes/admin/tools/class-sensei-tool-module-slugs-mismatch.php:124 +#, php-format msgid "Module slugs were updated in the terms with IDs: %1$s." msgstr "" #. translators: %1$s is terms with error on update. #: includes/admin/tools/class-sensei-tool-module-slugs-mismatch.php:132 +#, php-format msgid "Errors happened while updating slugs for the terms with IDs: %1$s." msgstr "" @@ -1316,11 +1331,13 @@ msgstr "" #. translators: %s placeholder is datetime progress was started. #: includes/admin/tools/views/html-enrolment-debug.php:106 +#, php-format msgid "Started on %s" msgstr "" #. translators: %s placeholder is datetime progress was started. #: includes/admin/tools/views/html-enrolment-debug.php:112 +#, php-format msgid "Last activity on %s" msgstr "" @@ -1342,6 +1359,7 @@ msgstr "" #. translators: %s placeholder is datetime results were last calculated. #: includes/admin/tools/views/html-enrolment-debug.php:140 +#, php-format msgid "Last calculated on %s" msgstr "" @@ -1430,7 +1448,7 @@ msgid "Courses displayed in a grid" msgstr "" #: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:184 -#: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:190 +#: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:193 #: includes/block-patterns/page/templates/v2/landing-page.php:32 #: assets/blocks/course-list-block/index.js:36 #: assets/dist/blocks/global-blocks.js:842 @@ -1438,14 +1456,14 @@ msgstr "" msgid "Course List" msgstr "" -#: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:194 +#: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:197 #: includes/block-patterns/page/templates/v1/landing-page-grid.php:44 #: includes/block-patterns/page/templates/v1/landing-page-list.php:44 #: includes/block-patterns/page/templates/v2/landing-page.php:36 msgid "Explore all courses" msgstr "" -#: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:215 +#: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:217 #: includes/block-patterns/page/templates/v1/landing-page-grid.php:68 #: includes/block-patterns/page/templates/v1/landing-page-list.php:78 #: includes/block-patterns/page/templates/v2/landing-page.php:57 @@ -1454,7 +1472,7 @@ msgstr "" msgid "Start" msgstr "" -#: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:223 +#: includes/block-patterns/course-list/class-sensei-course-list-block-patterns.php:225 #: includes/block-patterns/page/templates/v1/landing-page-grid.php:76 #: includes/block-patterns/page/templates/v1/landing-page-list.php:86 #: includes/block-patterns/page/templates/v2/landing-page.php:65 @@ -2093,6 +2111,7 @@ msgstr "" #. translators: %1$d number of questions completed, %2$d number of total questions, %3$s percentage. #: includes/blocks/class-sensei-block-quiz-progress.php:57 +#, php-format msgid "%1$d of %2$d questions completed (%3$s)" msgstr "" @@ -2123,6 +2142,7 @@ msgstr "" #. translators: %s: Link to publish the course. #: includes/blocks/class-sensei-course-outline-block.php:296 +#, php-format msgid "Please %s first." msgstr "" @@ -2136,6 +2156,7 @@ msgstr "" #. translators: %s: Edit course link. #: includes/blocks/class-sensei-course-outline-block.php:326 +#, php-format msgid "When you're ready, let's publish %s in order to make them available to your students." msgstr "" @@ -2164,6 +2185,7 @@ msgstr "" #. translators: %1$d number of lessons completed, %2$d number of total lessons, %3$s percentage. #: includes/blocks/class-sensei-course-progress-block.php:63 +#, php-format msgid "%1$d of %2$d lessons completed (%3$s)" msgstr "" @@ -2193,6 +2215,7 @@ msgstr "" #. translators: placeholder is lesson length in minutes. #: includes/blocks/class-sensei-lesson-properties-block.php:73 +#, php-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" @@ -2253,6 +2276,7 @@ msgstr "" #. Translators: placeholder is number of lessons. #: includes/blocks/course-theme/class-course-navigation.php:197 +#, php-format msgid "%d lesson" msgid_plural "%d lessons" msgstr[0] "" @@ -2260,6 +2284,7 @@ msgstr[1] "" #. Translators: placeholder is number of quizzes. #: includes/blocks/course-theme/class-course-navigation.php:199 +#, php-format msgid "%d quiz" msgid_plural "%d quizzes" msgstr[0] "" @@ -2267,11 +2292,13 @@ msgstr[1] "" #. Translators: placeholder is the lesson title. #: includes/blocks/course-theme/class-course-navigation.php:256 +#, php-format msgid "Preview lesson %s" msgstr "" #. Translators: placeholder is the lesson title. #: includes/blocks/course-theme/class-course-navigation.php:260 +#, php-format msgid "View quiz for %s" msgstr "" @@ -2287,6 +2314,7 @@ msgstr "" #. translators: Placeholder %1$d is the completed lessons count, %2$d is the total lessons count and %3$d is the percentage of completed lessons. #: includes/blocks/course-theme/class-course-progress-counter.php:57 +#, php-format msgid "%1$d of %2$d lessons complete (%3$d%%)" msgstr "" @@ -2386,6 +2414,7 @@ msgstr "" #. translators: Placeholder is the post type string. #: includes/class-sensei-admin.php:645 +#, php-format msgid "Please supply a %1$s ID." msgstr "" @@ -2480,6 +2509,7 @@ msgstr "" #. translators: The %s placeholders are as follows: - A link to the General Settings page with the translated text "Settings > General". - A link to add an admin user with the translated text "add a new Administrator". - The current admin email address from the Settings. - A link to view the existing admin users, with the translated text "existing Administrator". #: includes/class-sensei-admin.php:1750 +#, php-format msgid "To prevent issues with Sensei LMS module names, your Email Address in %1$s should also belong to an Administrator user. You can either %2$s with the email address %3$s, or change that email address to match the email of an %4$s." msgstr "" @@ -2590,11 +2620,13 @@ msgstr "" #. translators: Placeholder value is the number of courses. #: includes/class-sensei-analysis-overview-list-table.php:65 #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-courses.php:85 +#, php-format msgid "Course (%d)" msgstr "" #. translators: Placeholder value is the number of completed courses. #: includes/class-sensei-analysis-overview-list-table.php:71 +#, php-format msgid "Completed (%d)" msgstr "" @@ -2605,12 +2637,14 @@ msgstr "" #. translators: Placeholder value is the average grade of all courses. #: includes/class-sensei-analysis-overview-list-table.php:77 #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-courses.php:112 +#, php-format msgid "Average Grade (%s%%)" msgstr "" #. translators: Placeholder value is average days to completion. #: includes/class-sensei-analysis-overview-list-table.php:82 #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-courses.php:117 +#, php-format msgid "Days to Completion (%d)" msgstr "" @@ -2627,6 +2661,7 @@ msgstr "" #. translators: Placeholder value is total count of students. #: includes/class-sensei-analysis-overview-list-table.php:120 #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-students.php:80 +#, php-format msgid "Student (%d)" msgstr "" @@ -2638,18 +2673,21 @@ msgstr "" #. translators: Placeholder value is all active courses. #: includes/class-sensei-analysis-overview-list-table.php:125 #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-students.php:85 +#, php-format msgid "Active Courses (%d)" msgstr "" #. translators: Placeholder value is all completed courses. #: includes/class-sensei-analysis-overview-list-table.php:127 #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-students.php:87 +#, php-format msgid "Completed Courses (%d)" msgstr "" #. translators: Placeholder value is graded average value. #: includes/class-sensei-analysis-overview-list-table.php:129 #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-students.php:89 +#, php-format msgid "Average Grade (%d%%)" msgstr "" @@ -2686,6 +2724,7 @@ msgstr "" #. translators: Placeholders %1$s and %3$s are opening and closing tags, %2$s is the view type. #: includes/class-sensei-analysis-overview-list-table.php:1074 #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-abstract.php:232 +#, php-format msgid "%1$sNo %2$s found%3$s" msgstr "" @@ -2729,55 +2768,59 @@ msgstr "" msgid "Course Results: " msgstr "" -#: includes/class-sensei-course-structure.php:735 +#: includes/class-sensei-course-structure.php:737 msgid "Individual lesson or modules cannot appear multiple times in the same course." msgstr "" -#: includes/class-sensei-course-structure.php:742 +#: includes/class-sensei-course-structure.php:744 msgid "Different modules cannot have the same name." msgstr "" -#: includes/class-sensei-course-structure.php:752 +#: includes/class-sensei-course-structure.php:754 msgid "Each item must be an array." msgstr "" #. translators: Placeholder is ID for module. -#: includes/class-sensei-course-structure.php:804 +#: includes/class-sensei-course-structure.php:806 +#, php-format msgid "Module with id \"%d\" was not found" msgstr "" #. translators: Placeholder 1 is the module slug and 2 is course name. -#: includes/class-sensei-course-structure.php:824 +#: includes/class-sensei-course-structure.php:826 +#, php-format msgid "Slug %1$s exists and is being used in %2$s course" msgstr "" #. translators: Placeholder is the module slug. -#: includes/class-sensei-course-structure.php:839 +#: includes/class-sensei-course-structure.php:841 +#, php-format msgid "A module with the slug %s is already owned by another teacher" msgstr "" -#: includes/class-sensei-course-structure.php:855 +#: includes/class-sensei-course-structure.php:857 msgid "Module lessons array can only contain lessons." msgstr "" #. translators: Placeholder is ID for lesson. -#: includes/class-sensei-course-structure.php:868 +#: includes/class-sensei-course-structure.php:870 +#, php-format msgid "Lesson with id \"%d\" was not found" msgstr "" -#: includes/class-sensei-course-structure.php:892 +#: includes/class-sensei-course-structure.php:894 msgid "All items must have a `type` set." msgstr "" -#: includes/class-sensei-course-structure.php:900 +#: includes/class-sensei-course-structure.php:902 msgid "Please ensure all modules have a name before saving." msgstr "" -#: includes/class-sensei-course-structure.php:906 +#: includes/class-sensei-course-structure.php:908 msgid "Please ensure all lessons have a name before saving." msgstr "" -#: includes/class-sensei-course-structure.php:919 +#: includes/class-sensei-course-structure.php:921 msgid "Module items must include a `lessons` array." msgstr "" @@ -2828,6 +2871,7 @@ msgstr "" #: assets/dist/admin/editor-wizard/index.js:468 #: assets/dist/home/index.js:304 #: assets/home/sections/sensei-pro-ad.js:63 +#, php-format,js-format msgid "%s USD" msgstr "" @@ -2947,6 +2991,7 @@ msgstr "" #: includes/class-sensei-lesson.php:2877 #: includes/class-sensei-lesson.php:2885 #: includes/class-sensei-posttypes.php:1001 +#, php-format msgid "Edit %s" msgstr "" @@ -3003,6 +3048,7 @@ msgstr "" #: includes/class-sensei-frontend.php:1030 #: widgets/class-sensei-category-courses-widget.php:240 #: widgets/class-sensei-course-component-widget.php:319 +#, php-format msgid "%d Lesson" msgid_plural "%d Lessons" msgstr[0] "" @@ -3013,12 +3059,14 @@ msgstr[1] "" #: includes/class-sensei-course.php:2148 #: includes/class-sensei-course.php:2817 #: includes/class-sensei-frontend.php:1039 +#, php-format msgid "in %s" msgstr "" #. translators: Placeholders are the counts for lessons completed and total lessons, respectively. #: includes/class-sensei-course.php:2024 #: includes/class-sensei-course.php:2828 +#, php-format msgid "%1$d of %2$d lessons completed" msgstr "" @@ -3084,6 +3132,7 @@ msgstr "" #. translators: Placeholders are the counts for lessons completed and total lessons, respectively. #: includes/class-sensei-course.php:2478 +#, php-format msgid "Currently completed %1$s lesson of %2$s in total" msgid_plural "Currently completed %1$s lessons of %2$s in total" msgstr[0] "" @@ -3100,11 +3149,13 @@ msgstr "" #. translators: Placeholder is the number of preview lessons. #: includes/class-sensei-course.php:2758 +#, php-format msgid "(%d preview lessons)" msgstr "" #. translators: %1$s is the author posts URL, %2$s and %3$s are the author name. #: includes/class-sensei-course.php:2783 +#, php-format msgid "by %3$s" msgstr "" @@ -3133,6 +3184,7 @@ msgstr "" #. translators: Placeholders are the taxonomy name and the term name, respectively. #: includes/class-sensei-course.php:3503 +#, php-format msgid "%1$s Archives: %2$s" msgstr "" @@ -3156,6 +3208,7 @@ msgstr "" #. translators: Placeholders are an opening and closing tag linking to the login URL. #: includes/class-sensei-course.php:3917 +#, php-format msgid "or %1$slog in%2$s to view this course." msgstr "" @@ -3179,11 +3232,13 @@ msgstr "" #: includes/class-sensei-lesson.php:4905 #: includes/class-sensei-utils.php:1318 #: includes/course-theme/class-sensei-course-theme-lesson.php:236 +#, php-format msgid "You must first complete: %1$s" msgstr "" #. translators: Placeholder $1$s is the course title. #: includes/class-sensei-course.php:4272 +#, php-format msgid "You must first complete %1$s before taking this course." msgstr "" @@ -3205,11 +3260,13 @@ msgstr "" #. translators: %1$s is version of PHP that Sensei requires; %2$s is the version of PHP WordPress is running on. #: includes/class-sensei-dependency-checker.php:58 +#, php-format msgid "Sensei LMS requires a minimum PHP version of %1$s, but you are running %2$s." msgstr "" #. translators: %1$s is version of PHP that Sensei is going to require in the future; %2$s is the version of PHP WordPress is running on. #: includes/class-sensei-dependency-checker.php:69 +#, php-format msgid "Sensei LMS will require, in the next release, a minimum PHP version of %1$s, but you are running %2$s." msgstr "" @@ -3224,6 +3281,7 @@ msgstr "" #. translators: 1: is a link to a support document. 2: closing link #: includes/class-sensei-dependency-checker.php:128 +#, php-format msgid "Your installation of Sensei LMS is incomplete. If you installed Sensei LMS from GitHub, %1$splease refer to this document%2$s to set up your development environment." msgstr "" @@ -3242,11 +3300,13 @@ msgstr "" #. translators: Placeholder is a comma-separated list of links to the tags. #: includes/class-sensei-frontend.php:622 +#, php-format msgid "Lesson tags: %1$s" msgstr "" #. translators: Placeholder is the filtered tag name. #: includes/class-sensei-frontend.php:666 +#, php-format msgid "Lesson tag: %1$s" msgstr "" @@ -3257,6 +3317,7 @@ msgstr "" #. translators: Placeholder is the Course title. #: includes/class-sensei-frontend.php:854 +#, php-format msgid "%1$s marked as complete." msgstr "" @@ -3270,6 +3331,7 @@ msgstr "" #. translators: Placeholder is the number of free lessons in the course. #: includes/class-sensei-frontend.php:1061 +#, php-format msgid "You can access %d of this course's lessons for free" msgstr "" @@ -3298,6 +3360,7 @@ msgstr "" #. translators: Placeholder is a link to the Course permalink. #: includes/class-sensei-frontend.php:1221 #: widgets/class-sensei-lesson-component-widget.php:222 +#, php-format msgid "Part of: %s" msgstr "" @@ -3337,6 +3400,7 @@ msgstr "" #. translators: Placeholder is the admin email address. #: includes/class-sensei-frontend.php:1653 +#, php-format msgid "ERROR: Couldn’t register you… please contact the webmaster !" msgstr "" @@ -3464,11 +3528,13 @@ msgstr "" #. translators: Placeholder %1$s is a link to the submitted file. #: includes/class-sensei-grading-user-quiz.php:214 #: templates/single-quiz/question-type-file-upload.php:44 +#, php-format msgid "Submitted file: %1$s" msgstr "" #. translators: Placeholder is the question number. #: includes/class-sensei-grading-user-quiz.php:266 +#, php-format msgid "Question %d: " msgstr "" @@ -3535,13 +3601,14 @@ msgid "Guest Student" msgstr "" #: includes/class-sensei-learner-profiles.php:41 -#: includes/class-sensei-settings.php:723 +#: includes/class-sensei-settings.php:722 msgid "learner" msgstr "" #. translators: Placeholder is the name of the student. #: includes/class-sensei-learner-profiles.php:106 #: includes/class-sensei-learner-profiles.php:188 +#, php-format msgid "Courses %s is taking" msgstr "" @@ -3552,6 +3619,7 @@ msgstr "" #. translators: Placeholder is the number of students enrolled in a course. #: includes/class-sensei-learner.php:124 +#, php-format msgid "%d student" msgid_plural "%d students" msgstr[0] "" @@ -3592,7 +3660,7 @@ msgid "Prerequisite" msgstr "" #: includes/class-sensei-lesson.php:315 -#: includes/class-sensei-settings.php:316 +#: includes/class-sensei-settings.php:315 msgid "Content Drip" msgstr "" @@ -3652,6 +3720,7 @@ msgstr "" #. translators: Placeholder is an edit course URL. #: includes/class-sensei-lesson.php:510 +#, php-format msgid "No lessons exist yet. Please add some to the course." msgstr "" @@ -3671,6 +3740,7 @@ msgstr "" #. translators: %1$s is a link to the quiz documentation, %2$s is a link to a support article about the WordPress editor. #: includes/class-sensei-lesson.php:1257 +#, php-format msgid "*Note that this functionality has been moved to the quiz block and will not be supported going forward. Please consider switching to the block editor." msgstr "" @@ -3750,6 +3820,7 @@ msgstr "" #. translators: Placeholder is the question category name. #: includes/class-sensei-lesson.php:1588 +#, php-format msgid "Selected from '%1$s' " msgstr "" @@ -3824,6 +3895,7 @@ msgstr "" #. translators: Placeholders are an opening and closing tag linking to the question bank. #: includes/class-sensei-lesson.php:1733 +#, php-format msgid "Add a new question to this quiz - your question will also be added to the %1$squestion bank%2$s." msgstr "" @@ -3841,6 +3913,7 @@ msgstr "" #. translators: Placeholders are an opening and closing tag linking to the question bank. #: includes/class-sensei-lesson.php:1809 +#, php-format msgid "Add an existing question to this quiz from the %1$squestion bank%2$s." msgstr "" @@ -3879,6 +3952,7 @@ msgstr "" #. translators: Placeholders are an opening and closing tag linking to the question categories page. #: includes/class-sensei-lesson.php:1885 +#, php-format msgid "Add any number of questions from a specified category. Edit your question categories %1$shere%2$s." msgstr "" @@ -4055,6 +4129,7 @@ msgstr "" #. translators: Placeholders are the question number and the question category name. #: includes/class-sensei-lesson.php:3008 #: includes/rest-api/class-sensei-rest-api-question-helpers-trait.php:109 +#, php-format msgid "%1$s Question(s) from %2$s" msgstr "" @@ -4107,6 +4182,7 @@ msgstr "" #: includes/class-sensei-lesson.php:4536 #: templates/course-results/lessons.php:96 #: templates/course-results/lessons.php:154 +#, php-format msgid "Start %s" msgstr "" @@ -4136,6 +4212,7 @@ msgstr "" #. translators: The placeholder %1$s is a link to the Course. #: includes/class-sensei-lesson.php:4822 +#, php-format msgid "Please sign up for the %1$s before starting the lesson." msgstr "" @@ -4145,6 +4222,7 @@ msgstr "" #. translators: Placeholder is the link to the prerequisite lesson. #: includes/class-sensei-lesson.php:4910 +#, php-format msgid "You must first complete %1$s before viewing this Lesson" msgstr "" @@ -4251,17 +4329,20 @@ msgstr "" #. translators: Placeholders are the sender's display name and the date, respectively. #: includes/class-sensei-messages.php:873 #: includes/class-sensei-messages.php:1015 +#, php-format msgid "Sent by %1$s on %2$s." msgstr "" #. translators: Placeholder is a link to post, with the post's title as the link text. #: includes/class-sensei-messages.php:898 +#, php-format msgctxt "message title with a link to the post" msgid "Re: %1$s" msgstr "" #. translators: Placeholder is the post title. #: includes/class-sensei-messages.php:992 +#, php-format msgctxt "message title without a link to the post" msgid "Re: %1$s" msgstr "" @@ -4312,11 +4393,13 @@ msgstr "" #. translators: The placeholders are as follows: %1$s - %2$s - %3$s - Opening tag to link to the Course URL. %4$s - #: includes/class-sensei-modules.php:403 +#, php-format msgid "No modules are available for this lesson yet. %1$sPlease add some to %3$sthe course%4$s.%2$s" msgstr "" #. translators: The placeholders are as follows: %1$s - %2$s - #: includes/class-sensei-modules.php:411 +#, php-format msgid "No modules are available for this lesson yet. %1$sPlease select a course first.%2$s" msgstr "" @@ -4348,6 +4431,7 @@ msgstr "" #. translators: Placeholder is a link to the Course. #: includes/class-sensei-modules.php:1062 +#, php-format msgid "Please sign up for the %1$s before starting the module." msgstr "" @@ -4413,6 +4497,7 @@ msgstr "" #. translators: %s: add new taxonomy label #: includes/class-sensei-modules.php:2426 +#, php-format msgid "+ %s" msgstr "" @@ -4750,36 +4835,43 @@ msgstr "" #. translators: Placeholder is the singular post type label. #: includes/class-sensei-posttypes.php:999 +#, php-format msgid "Add New %s" msgstr "" #. translators: Placeholder is the singular post type label. #: includes/class-sensei-posttypes.php:1003 +#, php-format msgid "New %s" msgstr "" #. translators: Placeholder is the singular post type label. #: includes/class-sensei-posttypes.php:1007 +#, php-format msgid "View %s" msgstr "" #. translators: Placeholder is the plural post type label. #: includes/class-sensei-posttypes.php:1009 +#, php-format msgid "Search %s" msgstr "" #. translators: Placeholder is the lower-case plural post type label. #: includes/class-sensei-posttypes.php:1011 +#, php-format msgid "No %s found" msgstr "" #. translators: Placeholder is the lower-case plural post type label. #: includes/class-sensei-posttypes.php:1013 +#, php-format msgid "No %s found in Trash" msgstr "" #. translators: Placeholders are the singular label for the post type and the post's permalink, respectively. #: includes/class-sensei-posttypes.php:1051 +#, php-format msgid "%1$s updated. %2$sView %1$s%3$s." msgstr "" @@ -4794,31 +4886,37 @@ msgstr "" #. translators: Placeholder is the singular label for the post type. #: includes/class-sensei-posttypes.php:1055 +#, php-format msgid "%1$s updated." msgstr "" #. translators: Placeholders are the singular label for the post type and the post's revision, respectively. #: includes/class-sensei-posttypes.php:1057 +#, php-format msgid "%1$s restored to revision from %2$s." msgstr "" #. translators: Placeholders are the singular label for the post type and the post's permalink, respectively. #: includes/class-sensei-posttypes.php:1059 +#, php-format msgid "%1$s published. %2$sView %1$s%3$s." msgstr "" #. translators: Placeholder is the singular label for the post type. #: includes/class-sensei-posttypes.php:1061 +#, php-format msgid "%1$s saved." msgstr "" #. translators: Placeholders are the singular label for the post type and the post's preview link, respectively. #: includes/class-sensei-posttypes.php:1063 +#, php-format msgid "%1$s submitted. %2$sPreview %1$s%3$s." msgstr "" #. translators: Placeholders are as follows (in order): - The singular label for the post type. - The formatted post date. - The opening tag for the post's permalink. - The closing tag for the post's permalink. #: includes/class-sensei-posttypes.php:1072 +#, php-format msgid "%1$s scheduled for: %2$s. %3$sPreview %4$s%5$s." msgstr "" @@ -4829,6 +4927,7 @@ msgstr "" #. translators: Placeholders are the singular label for the post type and the post's preview link, respectively. #: includes/class-sensei-posttypes.php:1074 +#, php-format msgid "%1$s draft updated. %2$sPreview %3$s%4$s." msgstr "" @@ -4883,6 +4982,7 @@ msgstr "" #. translators: Placeholders are an opening and closing tag. #: includes/class-sensei-question.php:349 +#, php-format msgid "%1$sThis question does not appear in any quizzes yet.%2$s" msgstr "" @@ -4896,6 +4996,7 @@ msgstr "" #. translators: %d is the question number. #: includes/class-sensei-question.php:690 +#, php-format msgid "%d. " msgstr "" @@ -4922,11 +5023,13 @@ msgstr "" #. translators: Placeholder is the question grade. #: includes/class-sensei-question.php:1189 +#, php-format msgid "Grade: %d" msgstr "" #. translators: Placeholder are the upload size and the measurement (e.g. 5 MB). #: includes/class-sensei-question.php:1336 +#, php-format msgid "Maximum upload file size: %s" msgstr "" @@ -4936,6 +5039,7 @@ msgstr "" #. translators: Placeholder is the quiz name with any instance of the word "quiz" removed. #: includes/class-sensei-quiz.php:1636 +#, php-format msgid "%s Quiz" msgstr "" @@ -4960,12 +5064,12 @@ msgstr "" msgid "Save Progress" msgstr "" -#: includes/class-sensei-quiz.php:2495 +#: includes/class-sensei-quiz.php:2500 #: includes/course-theme/class-sensei-course-theme-quiz.php:143 msgid "Contact teacher" msgstr "" -#: includes/class-sensei-quiz.php:2503 +#: includes/class-sensei-quiz.php:2508 #: includes/course-theme/class-sensei-course-theme-quiz.php:153 msgid "Continue to next lesson" msgstr "" @@ -4983,12 +5087,14 @@ msgid "Override init_fields() in your class." msgstr "" #. translators: Placeholder is the field name. -#: includes/class-sensei-settings-api.php:1250 +#: includes/class-sensei-settings-api.php:1243 +#, php-format msgid "%s is a required field" msgstr "" #. translators: Placeholder is the name of the settings page. -#: includes/class-sensei-settings-api.php:1269 +#: includes/class-sensei-settings-api.php:1262 +#, php-format msgid "%s updated" msgstr "" @@ -5011,648 +5117,655 @@ msgstr "" msgid "Appearance" msgstr "" -#: includes/class-sensei-settings.php:258 -msgid "new" -msgstr "" - -#: includes/class-sensei-settings.php:263 +#: includes/class-sensei-settings.php:262 msgid "Settings that apply to all Courses." msgstr "" -#: includes/class-sensei-settings.php:268 +#: includes/class-sensei-settings.php:267 msgid "Settings that apply to all Lessons." msgstr "" -#: includes/class-sensei-settings.php:272 +#: includes/class-sensei-settings.php:271 msgid "Email Notifications" msgstr "" -#: includes/class-sensei-settings.php:273 +#: includes/class-sensei-settings.php:272 #: includes/internal/emails/class-settings-menu.php:45 msgid "Settings for email notifications sent from your site." msgstr "" -#: includes/class-sensei-settings.php:277 +#: includes/class-sensei-settings.php:276 msgid "Student Profiles" msgstr "" -#: includes/class-sensei-settings.php:278 +#: includes/class-sensei-settings.php:277 msgid "Settings for public Student Profiles." msgstr "" -#: includes/class-sensei-settings.php:297 +#: includes/class-sensei-settings.php:296 msgid "Optional settings for WooCommerce functions." msgstr "" -#: includes/class-sensei-settings.php:317 +#: includes/class-sensei-settings.php:316 msgid "Optional settings for the Content Drip extension." msgstr "" -#: includes/class-sensei-settings.php:323 +#: includes/class-sensei-settings.php:322 msgid "Experimental Features" msgstr "" -#: includes/class-sensei-settings.php:324 +#: includes/class-sensei-settings.php:323 msgid "Experimental features that are incomplete and not yet ready for production." msgstr "" -#: includes/class-sensei-settings.php:373 +#: includes/class-sensei-settings.php:372 msgid "Once all the course lessons have been completed" msgstr "" -#: includes/class-sensei-settings.php:374 +#: includes/class-sensei-settings.php:373 msgid "At any time (by clicking the 'Complete Course' button)" msgstr "" -#: includes/class-sensei-settings.php:377 +#: includes/class-sensei-settings.php:376 msgid "Don't show quiz question points" msgstr "" -#: includes/class-sensei-settings.php:378 +#: includes/class-sensei-settings.php:377 msgid "Number (e.g. 1. Default)" msgstr "" -#: includes/class-sensei-settings.php:379 +#: includes/class-sensei-settings.php:378 msgid "Brackets (e.g. [1])" msgstr "" -#: includes/class-sensei-settings.php:380 +#: includes/class-sensei-settings.php:379 msgid "Text (e.g. Points: 1)" msgstr "" -#: includes/class-sensei-settings.php:381 +#: includes/class-sensei-settings.php:380 msgid "Text and Brackets (e.g. [Points: 1])" msgstr "" -#: includes/class-sensei-settings.php:386 +#: includes/class-sensei-settings.php:385 msgid "Access Permissions" msgstr "" -#: includes/class-sensei-settings.php:387 +#: includes/class-sensei-settings.php:386 msgid "Users must be logged in to view lesson content." msgstr "" -#: includes/class-sensei-settings.php:394 +#: includes/class-sensei-settings.php:393 msgid "Disable Private Messages" msgstr "" -#: includes/class-sensei-settings.php:395 +#: includes/class-sensei-settings.php:394 msgid "Disable the private message functions between students and teachers." msgstr "" -#: includes/class-sensei-settings.php:402 +#: includes/class-sensei-settings.php:401 msgid "Course Archive Page" msgstr "" #. translators: Placeholder is the docs link. -#: includes/class-sensei-settings.php:405 +#: includes/class-sensei-settings.php:404 +#, php-format msgid "The page to use to display courses. If you leave this blank the default custom post type archive will apply." msgstr "" -#: includes/class-sensei-settings.php:416 +#: includes/class-sensei-settings.php:415 msgid "My Courses Page" msgstr "" #. translators: Placeholder is the docs link. -#: includes/class-sensei-settings.php:419 +#: includes/class-sensei-settings.php:418 +#, php-format msgid "The page to use to display the courses that a user is currently taking as well as the courses a user has complete." msgstr "" -#: includes/class-sensei-settings.php:430 +#: includes/class-sensei-settings.php:429 msgid "Course Completed Page" msgstr "" #. translators: Placeholder is the docs link. -#: includes/class-sensei-settings.php:433 +#: includes/class-sensei-settings.php:432 +#, php-format msgid "The page that is displayed after a student completes a course." msgstr "" -#: includes/class-sensei-settings.php:444 +#: includes/class-sensei-settings.php:443 msgid "Use placeholder images" msgstr "" -#: includes/class-sensei-settings.php:445 +#: includes/class-sensei-settings.php:444 msgid "Output a placeholder image when no featured image has been specified for Courses and Lessons." msgstr "" -#: includes/class-sensei-settings.php:452 +#: includes/class-sensei-settings.php:451 msgid "Disable Sensei LMS Styles" msgstr "" -#: includes/class-sensei-settings.php:453 +#: includes/class-sensei-settings.php:452 msgid "Prevent the frontend stylesheets from loading. This will remove the default styles for all Sensei LMS elements." msgstr "" -#: includes/class-sensei-settings.php:459 +#: includes/class-sensei-settings.php:458 msgid "Quiz question points format" msgstr "" -#: includes/class-sensei-settings.php:460 +#: includes/class-sensei-settings.php:459 msgid "Set the quiz question points format" msgstr "" -#: includes/class-sensei-settings.php:468 +#: includes/class-sensei-settings.php:467 msgid "Disable Sensei LMS Javascript" msgstr "" -#: includes/class-sensei-settings.php:469 +#: includes/class-sensei-settings.php:468 msgid "Prevent the frontend javascript from loading. This affects the progress bars and the My Courses tabs." msgstr "" -#: includes/class-sensei-settings.php:476 +#: includes/class-sensei-settings.php:475 msgid "Disable HTML security" msgstr "" -#: includes/class-sensei-settings.php:477 +#: includes/class-sensei-settings.php:476 msgid "Allow any HTML tags in the Video Embed field. Warning: Enabling this may leave your site more vulnerable to XSS attacks" msgstr "" -#: includes/class-sensei-settings.php:484 +#: includes/class-sensei-settings.php:483 msgid "Delete data on uninstall" msgstr "" -#: includes/class-sensei-settings.php:485 +#: includes/class-sensei-settings.php:484 msgid "Delete Sensei LMS data when the plugin is deleted. Once removed, this data cannot be restored." msgstr "" -#: includes/class-sensei-settings.php:492 +#: includes/class-sensei-settings.php:491 msgid "Courses are complete:" msgstr "" -#: includes/class-sensei-settings.php:493 +#: includes/class-sensei-settings.php:492 msgid "This will determine when courses are marked as complete." msgstr "" -#: includes/class-sensei-settings.php:502 +#: includes/class-sensei-settings.php:501 msgid "Course Author" msgstr "" -#: includes/class-sensei-settings.php:503 +#: includes/class-sensei-settings.php:502 msgid "Display the author on the Course Archive and My Courses pages. This setting does not apply when these pages use blocks." msgstr "" -#: includes/class-sensei-settings.php:510 +#: includes/class-sensei-settings.php:509 msgid "My Courses Pagination" msgstr "" -#: includes/class-sensei-settings.php:511 +#: includes/class-sensei-settings.php:510 msgid "The number of courses to output for the my courses page." msgstr "" -#: includes/class-sensei-settings.php:520 +#: includes/class-sensei-settings.php:519 msgid "Course Archive Image" msgstr "" -#: includes/class-sensei-settings.php:521 +#: includes/class-sensei-settings.php:520 msgid "Output the Course Image on the Course Archive Page." msgstr "" -#: includes/class-sensei-settings.php:528 +#: includes/class-sensei-settings.php:527 msgid "Image Width - Archive" msgstr "" -#: includes/class-sensei-settings.php:529 +#: includes/class-sensei-settings.php:528 msgid "The width in pixels of the featured image for the Course Archive page." msgstr "" -#: includes/class-sensei-settings.php:537 +#: includes/class-sensei-settings.php:536 msgid "Image Height - Archive" msgstr "" -#: includes/class-sensei-settings.php:538 +#: includes/class-sensei-settings.php:537 msgid "The height in pixels of the featured image for the Course Archive page." msgstr "" -#: includes/class-sensei-settings.php:546 +#: includes/class-sensei-settings.php:545 msgid "Image Hard Crop - Archive" msgstr "" #. translators: Placeholders are an opening and closing tag linking to the documentation page. -#: includes/class-sensei-settings.php:548 -#: includes/class-sensei-settings.php:583 -#: includes/class-sensei-settings.php:673 -#: includes/class-sensei-settings.php:708 +#: includes/class-sensei-settings.php:547 +#: includes/class-sensei-settings.php:582 +#: includes/class-sensei-settings.php:672 +#: includes/class-sensei-settings.php:707 +#, php-format msgid "After changing this setting, you may need to %1$sregenerate your thumbnails%2$s." msgstr "" -#: includes/class-sensei-settings.php:555 +#: includes/class-sensei-settings.php:554 msgid "Single Course Image" msgstr "" -#: includes/class-sensei-settings.php:556 +#: includes/class-sensei-settings.php:555 msgid "Output the Course Image on the Single Course Page." msgstr "" -#: includes/class-sensei-settings.php:563 -#: includes/class-sensei-settings.php:688 +#: includes/class-sensei-settings.php:562 +#: includes/class-sensei-settings.php:687 msgid "Image Width - Single" msgstr "" -#: includes/class-sensei-settings.php:564 +#: includes/class-sensei-settings.php:563 msgid "The width in pixels of the featured image for the Course single post page." msgstr "" -#: includes/class-sensei-settings.php:572 -#: includes/class-sensei-settings.php:697 +#: includes/class-sensei-settings.php:571 +#: includes/class-sensei-settings.php:696 msgid "Image Height - Single" msgstr "" -#: includes/class-sensei-settings.php:573 +#: includes/class-sensei-settings.php:572 msgid "The height in pixels of the featured image for the Course single post page." msgstr "" -#: includes/class-sensei-settings.php:581 -#: includes/class-sensei-settings.php:706 +#: includes/class-sensei-settings.php:580 +#: includes/class-sensei-settings.php:705 msgid "Image Hard Crop - Single" msgstr "" -#: includes/class-sensei-settings.php:590 +#: includes/class-sensei-settings.php:589 msgid "Featured Courses Panel" msgstr "" -#: includes/class-sensei-settings.php:591 +#: includes/class-sensei-settings.php:590 msgid "Output the Featured Courses Panel on the Course Archive Page." msgstr "" -#: includes/class-sensei-settings.php:598 +#: includes/class-sensei-settings.php:597 msgid "More link text" msgstr "" -#: includes/class-sensei-settings.php:599 +#: includes/class-sensei-settings.php:598 msgid "The text that will be displayed on the Course Archive for the more courses link." msgstr "" -#: includes/class-sensei-settings.php:601 +#: includes/class-sensei-settings.php:600 msgid "More" msgstr "" -#: includes/class-sensei-settings.php:608 +#: includes/class-sensei-settings.php:607 #: assets/dist/js/admin/course-edit.js:285 #: assets/js/admin/course-theme/course-theme-sidebar.js:33 msgid "Learning Mode" msgstr "" -#: includes/class-sensei-settings.php:609 +#: includes/class-sensei-settings.php:608 #: assets/dist/js/admin/course-edit.js:285 #: assets/js/admin/course-theme/course-theme-sidebar.js:49 msgid "Show an immersive and distraction-free view for lessons and quizzes." msgstr "" -#: includes/class-sensei-settings.php:618 +#: includes/class-sensei-settings.php:617 msgid "Learning Mode Templates" msgstr "" -#: includes/class-sensei-settings.php:619 +#: includes/class-sensei-settings.php:618 msgid "Choose a learning mode template that is most suited for your type of content and the style you want to offer to your students." msgstr "" -#: includes/class-sensei-settings.php:629 +#: includes/class-sensei-settings.php:628 msgid "Allow Comments for Lessons" msgstr "" -#: includes/class-sensei-settings.php:630 +#: includes/class-sensei-settings.php:629 msgid "This will allow students to post comments on the single Lesson page, only student who have access to the Lesson will be allowed to comment." msgstr "" -#: includes/class-sensei-settings.php:637 +#: includes/class-sensei-settings.php:636 msgid "Display Lesson Author" msgstr "" -#: includes/class-sensei-settings.php:638 +#: includes/class-sensei-settings.php:637 msgid "Output the Lesson Author on Course single page & Lesson archive page." msgstr "" -#: includes/class-sensei-settings.php:645 +#: includes/class-sensei-settings.php:644 msgid "Course Lesson Images" msgstr "" -#: includes/class-sensei-settings.php:646 +#: includes/class-sensei-settings.php:645 msgid "Output the Lesson Image on the Single Course Page." msgstr "" -#: includes/class-sensei-settings.php:653 +#: includes/class-sensei-settings.php:652 msgid "Image Width - Course Lessons" msgstr "" -#: includes/class-sensei-settings.php:654 +#: includes/class-sensei-settings.php:653 msgid "The width in pixels of the featured image for the Lessons on the Course Single page." msgstr "" -#: includes/class-sensei-settings.php:662 +#: includes/class-sensei-settings.php:661 msgid "Image Height - Course Lessons" msgstr "" -#: includes/class-sensei-settings.php:663 +#: includes/class-sensei-settings.php:662 msgid "The height in pixels of the featured image for the Lessons on the Course Single page." msgstr "" -#: includes/class-sensei-settings.php:671 +#: includes/class-sensei-settings.php:670 msgid "Image Hard Crop - Course Lessons" msgstr "" -#: includes/class-sensei-settings.php:680 +#: includes/class-sensei-settings.php:679 msgid "Single Lesson Images" msgstr "" -#: includes/class-sensei-settings.php:681 +#: includes/class-sensei-settings.php:680 msgid "Output the Lesson Image on the Single Lesson Page." msgstr "" -#: includes/class-sensei-settings.php:689 +#: includes/class-sensei-settings.php:688 msgid "The width in pixels of the featured image for the Lessons single post page." msgstr "" -#: includes/class-sensei-settings.php:698 +#: includes/class-sensei-settings.php:697 msgid "The height in pixels of the featured image for the Lessons single post page." msgstr "" -#: includes/class-sensei-settings.php:727 +#: includes/class-sensei-settings.php:726 msgid "Public student profiles" msgstr "" #. translators: Placeholder is a profile URL example. -#: includes/class-sensei-settings.php:729 +#: includes/class-sensei-settings.php:728 +#, php-format msgid "Enable public student profiles that will be accessible to everyone. Profile URL format: %s" msgstr "" -#: includes/class-sensei-settings.php:736 +#: includes/class-sensei-settings.php:735 msgid "Show student's courses" msgstr "" -#: includes/class-sensei-settings.php:737 +#: includes/class-sensei-settings.php:736 msgid "Display the student's active and completed courses on their profile." msgstr "" -#: includes/class-sensei-settings.php:745 +#: includes/class-sensei-settings.php:744 msgid "Their quiz is graded (auto and manual grading)" msgstr "" -#: includes/class-sensei-settings.php:746 +#: includes/class-sensei-settings.php:745 msgid "They complete a course" msgstr "" -#: includes/class-sensei-settings.php:750 +#: includes/class-sensei-settings.php:749 msgid "A student starts their course" msgstr "" -#: includes/class-sensei-settings.php:751 +#: includes/class-sensei-settings.php:750 msgid "A student completes their course" msgstr "" -#: includes/class-sensei-settings.php:752 +#: includes/class-sensei-settings.php:751 msgid "A student completes a lesson" msgstr "" -#: includes/class-sensei-settings.php:753 +#: includes/class-sensei-settings.php:752 msgid "A student submits a quiz for grading" msgstr "" -#: includes/class-sensei-settings.php:754 +#: includes/class-sensei-settings.php:753 msgid "A student sends a private message to a teacher" msgstr "" -#: includes/class-sensei-settings.php:758 +#: includes/class-sensei-settings.php:757 msgid "They receive a reply to their private message" msgstr "" -#: includes/class-sensei-settings.php:762 +#: includes/class-sensei-settings.php:761 msgid "Emails Sent to Students" msgstr "" -#: includes/class-sensei-settings.php:763 +#: includes/class-sensei-settings.php:762 msgid "Select the notifications that will be sent to students." msgstr "" -#: includes/class-sensei-settings.php:771 +#: includes/class-sensei-settings.php:770 msgid "Emails Sent to Teachers" msgstr "" -#: includes/class-sensei-settings.php:772 +#: includes/class-sensei-settings.php:771 msgid "Select the notifications that will be sent to teachers." msgstr "" -#: includes/class-sensei-settings.php:780 +#: includes/class-sensei-settings.php:779 msgid "Emails Sent to All Users" msgstr "" -#: includes/class-sensei-settings.php:781 +#: includes/class-sensei-settings.php:780 msgid "Select the notifications that will be sent to all users." msgstr "" -#: includes/class-sensei-settings.php:789 +#: includes/class-sensei-settings.php:788 msgid "\"From\" Name" msgstr "" -#: includes/class-sensei-settings.php:790 +#: includes/class-sensei-settings.php:789 msgid "The name from which all emails will be sent." msgstr "" -#: includes/class-sensei-settings.php:798 +#: includes/class-sensei-settings.php:797 msgid "\"From\" Address" msgstr "" -#: includes/class-sensei-settings.php:799 +#: includes/class-sensei-settings.php:798 msgid "The address from which all emails will be sent." msgstr "" -#: includes/class-sensei-settings.php:807 +#: includes/class-sensei-settings.php:806 #: includes/internal/emails/class-email-settings-tab.php:275 msgid "\"Reply To\" Name" msgstr "" -#: includes/class-sensei-settings.php:815 +#: includes/class-sensei-settings.php:814 #: includes/internal/emails/class-email-settings-tab.php:283 msgid "\"Reply To\" Address" msgstr "" -#: includes/class-sensei-settings.php:823 +#: includes/class-sensei-settings.php:822 msgid "CC" msgstr "" -#: includes/class-sensei-settings.php:824 +#: includes/class-sensei-settings.php:823 msgid "Enter email addresses to CC on all emails. Separate multiple email addresses with commas." msgstr "" -#: includes/class-sensei-settings.php:830 +#: includes/class-sensei-settings.php:829 msgid "One or more of the email addresses entered for CC is invalid." msgstr "" -#: includes/class-sensei-settings.php:834 +#: includes/class-sensei-settings.php:833 msgid "BCC" msgstr "" -#: includes/class-sensei-settings.php:835 +#: includes/class-sensei-settings.php:834 msgid "Enter email addresses to BCC on all emails. Separate multiple email addresses with commas." msgstr "" -#: includes/class-sensei-settings.php:841 +#: includes/class-sensei-settings.php:840 msgid "One or more of the email addresses entered for BCC is invalid." msgstr "" -#: includes/class-sensei-settings.php:845 +#: includes/class-sensei-settings.php:844 msgid "Header Image" msgstr "" #. translators: Placeholders are opening and closing tags linking to the media uploader. -#: includes/class-sensei-settings.php:847 +#: includes/class-sensei-settings.php:846 +#, php-format msgid "Enter a URL to an image you want to show in the email's header. Upload your image using the %1$smedia uploader%2$s." msgstr "" -#: includes/class-sensei-settings.php:855 +#: includes/class-sensei-settings.php:854 msgid "Email Footer Text" msgstr "" -#: includes/class-sensei-settings.php:856 +#: includes/class-sensei-settings.php:855 msgid "The text to appear in the footer of Sensei LMS emails." msgstr "" #. translators: Placeholder is the blog name. -#: includes/class-sensei-settings.php:859 +#: includes/class-sensei-settings.php:858 #: templates/emails/footer.php:26 +#, php-format msgid "%1$s - Powered by Sensei LMS" msgstr "" -#: includes/class-sensei-settings.php:865 +#: includes/class-sensei-settings.php:864 msgid "Base Colour" msgstr "" #. translators: Placeholders are opening and closing tags. -#: includes/class-sensei-settings.php:867 +#: includes/class-sensei-settings.php:866 +#, php-format msgid "The base colour for Sensei LMS email templates. Default %1$s#557da1%2$s." msgstr "" -#: includes/class-sensei-settings.php:875 +#: includes/class-sensei-settings.php:874 msgid "Background Colour" msgstr "" #. translators: Placeholders are opening and closing tags. -#: includes/class-sensei-settings.php:877 +#: includes/class-sensei-settings.php:876 +#, php-format msgid "The background colour for Sensei LMS email templates. Default %1$s#f5f5f5%2$s." msgstr "" -#: includes/class-sensei-settings.php:885 +#: includes/class-sensei-settings.php:884 msgid "Body Background Colour" msgstr "" #. translators: Placeholders are opening and closing tags. -#: includes/class-sensei-settings.php:887 +#: includes/class-sensei-settings.php:886 +#, php-format msgid "The main body background colour for Sensei LMS email templates. Default %1$s#fdfdfd%2$s." msgstr "" -#: includes/class-sensei-settings.php:895 +#: includes/class-sensei-settings.php:894 msgid "Body Text Colour" msgstr "" #. translators: Placeholders are opening and closing tags. -#: includes/class-sensei-settings.php:897 +#: includes/class-sensei-settings.php:896 +#, php-format msgid "The main body text colour for Sensei LMS email templates. Default %1$s#505050%2$s." msgstr "" -#: includes/class-sensei-settings.php:906 +#: includes/class-sensei-settings.php:905 msgid "High-Performance Progress Storage" msgstr "" -#: includes/class-sensei-settings.php:907 +#: includes/class-sensei-settings.php:906 msgid "Store the progress of your students in separate tables." msgstr "" -#: includes/class-sensei-settings.php:915 +#: includes/class-sensei-settings.php:914 msgid "Synchronize the student progress between storages." msgstr "" -#: includes/class-sensei-settings.php:923 +#: includes/class-sensei-settings.php:922 msgid "Choose a repository to store the progress and quiz submissions of your students." msgstr "" -#: includes/class-sensei-settings.php:1007 +#: includes/class-sensei-settings.php:1006 msgid "Select a Page:" msgstr "" -#: includes/class-sensei-settings.php:1284 +#: includes/class-sensei-settings.php:1283 msgid "As this feature is currently experimental, it may not be available yet on some sites." msgstr "" -#: includes/class-sensei-settings.php:1292 +#: includes/class-sensei-settings.php:1291 msgid "Save changes to make the feature settings available." msgstr "" -#: includes/class-sensei-settings.php:1297 +#: includes/class-sensei-settings.php:1296 msgid "Instructions" msgstr "" -#: includes/class-sensei-settings.php:1298 +#: includes/class-sensei-settings.php:1297 msgid "To enable High-Performance Progress Storage, follow these steps:" msgstr "" -#: includes/class-sensei-settings.php:1300 +#: includes/class-sensei-settings.php:1299 msgid "Select the \"Store the progress of your students in separate tables\" checkbox and save the changes." msgstr "" -#: includes/class-sensei-settings.php:1301 +#: includes/class-sensei-settings.php:1300 msgid "Select the \"Synchronize the student progress between storages\" checkbox and save the changes." msgstr "" -#: includes/class-sensei-settings.php:1302 +#: includes/class-sensei-settings.php:1301 msgid "Wait until the \"Migration complete and data synchronization enabled\" message is displayed. This may take awhile and you will need to refresh the page to see the updated status." msgstr "" -#: includes/class-sensei-settings.php:1303 +#: includes/class-sensei-settings.php:1302 msgid "Select the \"High-Performance progress storage (experimental)\" option and save the changes." msgstr "" -#: includes/class-sensei-settings.php:1304 +#: includes/class-sensei-settings.php:1303 msgid "You are now using High-Performance Progress Storage!" msgstr "" -#: includes/class-sensei-settings.php:1306 +#: includes/class-sensei-settings.php:1305 msgid "To learn more about the feature, check the docs." msgstr "" -#: includes/class-sensei-settings.php:1328 +#: includes/class-sensei-settings.php:1327 msgid "Progress storage repository" msgstr "" -#: includes/class-sensei-settings.php:1351 +#: includes/class-sensei-settings.php:1350 msgid "Enable storage synchronization and wait for full synchronization to complete before switching to another repository." msgstr "" -#: includes/class-sensei-settings.php:1359 +#: includes/class-sensei-settings.php:1358 msgid "Wait for full synchronization to complete before switching to another repository." msgstr "" -#: includes/class-sensei-settings.php:1400 +#: includes/class-sensei-settings.php:1399 msgid "Progress storage synchronization" msgstr "" -#: includes/class-sensei-settings.php:1422 +#: includes/class-sensei-settings.php:1421 msgid "Data migration is in progress. Please wait for it to switch repository." msgstr "" -#: includes/class-sensei-settings.php:1428 +#: includes/class-sensei-settings.php:1427 msgid "Migration complete and data synchronization enabled." msgstr "" -#: includes/class-sensei-settings.php:1434 +#: includes/class-sensei-settings.php:1433 msgid "Migration complete, but errors occurred during data synchronization." msgstr "" -#: includes/class-sensei-settings.php:1440 +#: includes/class-sensei-settings.php:1439 msgid "Migration failed. Please retry." msgstr "" -#: includes/class-sensei-settings.php:1446 +#: includes/class-sensei-settings.php:1445 msgid "Cannot get the migration status." msgstr "" -#: includes/class-sensei-settings.php:1451 +#: includes/class-sensei-settings.php:1450 msgid "Waiting for data migration to start." msgstr "" -#: includes/class-sensei-settings.php:1459 +#: includes/class-sensei-settings.php:1458 msgid "Errors occurred during migration:" msgstr "" -#: includes/class-sensei-settings.php:1522 +#: includes/class-sensei-settings.php:1521 msgid "Enable for all courses" msgstr "" @@ -5678,11 +5791,13 @@ msgstr "" #. translators: Placeholder is the author name. #: includes/class-sensei-teacher.php:1831 +#, php-format msgid "All courses by %s" msgstr "" #. translators: The href tag contains the URL for the page telling users what data Sensei tracks. #: includes/class-sensei-usage-tracking.php:88 +#, php-format msgid "We'd love if you helped us make Sensei LMS better by allowing us to collect usage tracking data. No sensitive information is collected, and you can opt out at any time." msgstr "" @@ -5692,6 +5807,7 @@ msgstr "" #. translators: The href tag contains the URL for the page telling users what data Sensei tracks. #: includes/class-sensei-usage-tracking.php:156 +#, php-format msgid "Help us make Sensei LMS better by allowing us to collect usage tracking data. No sensitive information is collected." msgstr "" @@ -5706,16 +5822,19 @@ msgstr "" #. translators: Placeholder is the user's grade. #: includes/class-sensei-utils.php:1174 +#, php-format msgid "You have passed this course with a grade of %1$d%%." msgstr "" #. translators: Placeholders are the required grade and the actual grade, respectively. #: includes/class-sensei-utils.php:1181 +#, php-format msgid "You must score at least %1$d%% to pass this course. Your grade is %2$s%%." msgstr "" #. translators: Placeholders are the required grade and the actual grade, respectively. #: includes/class-sensei-utils.php:1184 +#, php-format msgid "You require %1$d%% to pass this course. Your grade is %2$s%%." msgstr "" @@ -5725,6 +5844,7 @@ msgstr "" #. translators: Placeholders are an opening and closing tag linking to the course permalink. #: includes/class-sensei-utils.php:1256 +#, php-format msgid "Please sign up for %1$sthe course%2$s before taking this quiz" msgstr "" @@ -5742,11 +5862,13 @@ msgstr "" #. translators: Placeholder is the quiz grade. #: includes/class-sensei-utils.php:1282 +#, php-format msgid "Congratulations! You have passed this lesson's quiz achieving %s%%" msgstr "" #. translators: Placeholder is the quiz grade. #: includes/class-sensei-utils.php:1285 +#, php-format msgid "Congratulations! You have passed this quiz achieving %s%%" msgstr "" @@ -5757,71 +5879,85 @@ msgstr "" #. translators: Placeholder is the link to the prerequisite lesson. #: includes/class-sensei-utils.php:1325 +#, php-format msgid "You will be able to access this quiz once the %1$s are completed and graded." msgstr "" #. translators: Placeholder is the link to the prerequisite lesson. #: includes/class-sensei-utils.php:1327 +#, php-format msgid "Please complete the %1$s to access this quiz." msgstr "" #. translators: Placeholders are an opening and closing tag linking to the quiz permalink. #: includes/class-sensei-utils.php:1335 +#, php-format msgid "You have completed this lesson's quiz and it will be graded soon. %1$sView the lesson quiz%2$s" msgstr "" #. translators: Placeholder is the quiz passmark. #: includes/class-sensei-utils.php:1339 +#, php-format msgid "You have completed this quiz and it will be graded soon. You must score at least %1$s%% to pass." msgstr "" #. translators: Placeholder is the quiz passmark. #: includes/class-sensei-utils.php:1342 +#, php-format msgid "You have completed this quiz and it will be graded soon. You require %1$s%% to pass." msgstr "" #. translators: Placeholders are the quiz passmark and the learner's grade, respectively. #: includes/class-sensei-utils.php:1353 +#, php-format msgid "You must score at least %1$d%% to pass this lesson's quiz. Your grade is %2$s%%" msgstr "" #. translators: Placeholders are the quiz passmark and the learner's grade, respectively. #: includes/class-sensei-utils.php:1356 +#, php-format msgid "You require %1$d%% to pass this lesson's quiz. Your grade is %2$s%%" msgstr "" #. translators: Placeholders are the quiz passmark and the learner's grade, respectively. #: includes/class-sensei-utils.php:1361 +#, php-format msgid "You must score at least %1$d%% to pass this quiz. Your grade is %2$s%%" msgstr "" #. translators: Placeholders are the quiz passmark and the learner's grade, respectively. #: includes/class-sensei-utils.php:1364 +#, php-format msgid "You require %1$d%% to pass this quiz. Your grade is %2$s%%" msgstr "" #. translators: Placeholder is the quiz passmark. #: includes/class-sensei-utils.php:1378 +#, php-format msgid "You must score at least %1$d%% to pass this lesson's quiz." msgstr "" #. translators: Placeholder is the quiz passmark. #: includes/class-sensei-utils.php:1381 +#, php-format msgid "You require %1$d%% to pass this lesson's quiz." msgstr "" #. translators: Placeholder is the quiz passmark. #: includes/class-sensei-utils.php:1386 +#, php-format msgid "You must score at least %1$d%% to pass this quiz." msgstr "" #. translators: Placeholder is the quiz passmark. #: includes/class-sensei-utils.php:1389 +#, php-format msgid "You require %1$d%% to pass this quiz." msgstr "" #. translators: Placeholder is a link to the course permalink. #: includes/class-sensei-utils.php:1402 +#, php-format msgid "Please sign up for the %1$s before taking this quiz." msgstr "" @@ -5832,11 +5968,13 @@ msgstr "" #. translators: Time difference between two dates. %s: Number of seconds/minutes/etc. #: includes/class-sensei-utils.php:3002 #: includes/internal/emails/class-email-list-table.php:148 +#, php-format msgid "%s ago" msgstr "" #. translators: number of points. #: includes/class-sensei-view-helper.php:69 +#, php-format msgid "Points: %s" msgstr "" @@ -5846,15 +5984,53 @@ msgid "Cheatin’ huh?" msgstr "" #. translators: Docs as in Documentation -#: includes/class-sensei.php:1724 +#: includes/class-sensei.php:1733 msgid "Docs" msgstr "" -#: includes/class-sensei.php:1742 +#: includes/class-sensei.php:1751 msgctxt "plugin action link" msgid "Configure" msgstr "" +#: includes/cli/class-sensei-enrolment-course-calculation-command.php:44 +msgid "You must provide a course ID." +msgstr "" + +#. translators: Placeholder is the course ID. +#: includes/cli/class-sensei-enrolment-course-calculation-command.php:50 +#, php-format +msgid "The course with ID %d does not exist." +msgstr "" + +#: includes/cli/class-sensei-enrolment-course-calculation-command.php:56 +msgid "The course enrolment calculation job is disabled." +msgstr "" + +#. translators: Placeholder is the course ID. +#: includes/cli/class-sensei-enrolment-course-calculation-command.php:70 +#, php-format +msgid "Starting enrolment calculation for course %d." +msgstr "" + +#. translators: Placeholder is the course ID. +#: includes/cli/class-sensei-enrolment-course-calculation-command.php:78 +#, php-format +msgid "Resuming enrolment calculation for course %d." +msgstr "" + +#. translators: Placeholder is the last processed user ID. +#: includes/cli/class-sensei-enrolment-course-calculation-command.php:92 +#, php-format +msgid "Last processed user ID: %d" +msgstr "" + +#. translators: Placeholder is the course ID. +#: includes/cli/class-sensei-enrolment-course-calculation-command.php:102 +#, php-format +msgid "Finished calculating enrolment for course %d." +msgstr "" + #: includes/course-theme/class-sensei-course-theme-editor.php:75 #: includes/course-theme/class-sensei-course-theme-editor.php:76 msgid "Editor" @@ -5867,16 +6043,19 @@ msgstr "" #. translators: Placeholders are the required grade and the actual grade, respectively. #: includes/course-theme/class-sensei-course-theme-lesson.php:128 +#, php-format msgid "You must score at least %1$s%% to pass this lesson's quiz. Your grade is %2$s%%." msgstr "" #. translators: Placeholders are the required grade and the actual grade, respectively. #: includes/course-theme/class-sensei-course-theme-lesson.php:131 +#, php-format msgid "You require %1$s%% to pass this lesson's quiz. Your grade is %2$s%%." msgstr "" #. translators: Placeholder is the quiz grade. #: includes/course-theme/class-sensei-course-theme-lesson.php:135 +#, php-format msgid "Your Grade: %s%%" msgstr "" @@ -5894,6 +6073,7 @@ msgstr "" #. translators: Placeholders are the number of answered questions and the total questions, respectively. #: includes/course-theme/class-sensei-course-theme-lesson.php:202 +#, php-format msgid "%1$d of %2$d questions complete" msgstr "" @@ -5903,11 +6083,13 @@ msgstr "" #. translators: Placeholder is the link to the prerequisite lesson. #: includes/course-theme/class-sensei-course-theme-lesson.php:243 +#, php-format msgid "You will be able to view this lesson once the %1$s are completed and graded." msgstr "" #. translators: Placeholder is the link to the prerequisite lesson. #: includes/course-theme/class-sensei-course-theme-lesson.php:245 +#, php-format msgid "Please complete the %1$s to view this lesson content." msgstr "" @@ -5953,6 +6135,7 @@ msgstr "" #. translators: The placeholder is the quiz grade. #: includes/course-theme/class-sensei-course-theme-quiz.php:84 +#, php-format msgid "Your Grade: %1$s%%" msgstr "" @@ -5970,11 +6153,13 @@ msgstr "" #. translators: The first placeholder is the minimum grade required, and the second placeholder is the actual grade. #: includes/course-theme/class-sensei-course-theme-quiz.php:127 +#, php-format msgid "You must score at least %1$s%% to pass this quiz. Your grade is %2$s%%." msgstr "" #. translators: The first placeholder is the minimum grade required, and the second placeholder is the actual grade. #: includes/course-theme/class-sensei-course-theme-quiz.php:134 +#, php-format msgid "You require %1$s%% to pass this quiz. Your grade is %2$s%%." msgstr "" @@ -6000,6 +6185,7 @@ msgstr "" #. translators: %1$s is the block template name. #: includes/course-theme/class-sensei-course-theme-templates.php:203 +#, php-format msgid "Lesson (Learning Mode - %1$s)" msgstr "" @@ -6010,6 +6196,7 @@ msgstr "" #. translators: %1$s is the block template name. #: includes/course-theme/class-sensei-course-theme-templates.php:215 +#, php-format msgid "Quiz (Learning Mode - %1$s)" msgstr "" @@ -6034,6 +6221,7 @@ msgstr "" #. translators: Placeholder is ID of entry in source file. #: includes/data-port/class-sensei-data-port-job.php:724 +#, php-format msgid "ID: %s" msgstr "" @@ -6051,16 +6239,19 @@ msgstr "" #. translators: Placeholder is list of file extensions. #: includes/data-port/class-sensei-data-port-utilities.php:251 +#, php-format msgid "File type is not supported. Must be one of the following: %s." msgstr "" #. translators: Placeholder is the term which errored. #: includes/data-port/class-sensei-data-port-utilities.php:532 +#, php-format msgid "Module does not exist: %s." msgstr "" #. translators: First placeholder is the term which errored, second is the course id. #: includes/data-port/class-sensei-data-port-utilities.php:542 +#, php-format msgid "Module %1$s is not part of course %2$s." msgstr "" @@ -6070,6 +6261,7 @@ msgstr "" #. translators: The %1$d is the lesson id and the %2$s the lesson title. #: includes/data-port/class-sensei-import-block-migrator.php:149 +#, php-format msgid "Lesson with id %1$d and title %2$s which is referenced in course outline block not found." msgstr "" @@ -6092,6 +6284,7 @@ msgstr "" #. translators: Placeholder is list of columns that are missing. #: includes/data-port/class-sensei-import-csv-reader.php:362 +#, php-format msgid "Source file is missing the required column: %s" msgid_plural "Source file is missing the required columns: %s" msgstr[0] "" @@ -6099,6 +6292,7 @@ msgstr[1] "" #. translators: Placeholder is list of columns that are unknown. #: includes/data-port/class-sensei-import-csv-reader.php:380 +#, php-format msgid "The following column is unknown: %s" msgid_plural "The following columns are unknown: %s" msgstr[0] "" @@ -6114,6 +6308,7 @@ msgstr "" #. translators: Placeholder %1$s is the name of the file; %2$s is the path provided. #: includes/data-port/class-sensei-import-job-cli.php:109 +#, php-format msgid "File provided for \"%1$s\" (%2$s) was not found" msgstr "" @@ -6123,6 +6318,7 @@ msgstr "" #. translators: Placeholder %1$s is the name of the file; %2$s is the path provided; %3$s is the validation error. #: includes/data-port/class-sensei-import-job-cli.php:142 +#, php-format msgid "File provided for \"%1$s\" (%2$s) was not not valid. Error: %3$s" msgstr "" @@ -6134,21 +6330,25 @@ msgstr "" #. translators: Placeholder is the content file being exported. #: includes/data-port/export-tasks/class-sensei-export-task.php:132 +#, php-format msgid "Error exporting the %s file." msgstr "" #. translators: Placeholder is the reference to a lesson which did not exist. #: includes/data-port/import-tasks/class-sensei-import-associations.php:139 +#, php-format msgid "Lesson does not exist: %s." msgstr "" #. translators: Placeholder is the lesson reference (e.g. "id:44"). #: includes/data-port/import-tasks/class-sensei-import-associations.php:155 +#, php-format msgid "The lesson \"%s\" can only be associated with one course at a time." msgstr "" #. translators: Placeholder is reference to module. #: includes/data-port/import-tasks/class-sensei-import-associations.php:280 +#, php-format msgid "Unable to set the lesson module to \"%s\" because it does not have a course associated with it." msgstr "" @@ -6158,6 +6358,7 @@ msgstr "" #. translators: Placeholder is reference to another post. #: includes/data-port/import-tasks/class-sensei-import-prerequisite-trait.php:43 +#, php-format msgid "Unable to set the prerequisite to \"%s\"" msgstr "" @@ -6180,6 +6381,7 @@ msgstr "" #. translators: Placeholder is comma separated list of terms that failed to save. #: includes/data-port/models/class-sensei-import-course-model.php:252 #: includes/data-port/models/class-sensei-import-lesson-model.php:411 +#, php-format msgid "The following terms failed to save: %s" msgstr "" @@ -6197,6 +6399,7 @@ msgstr "" #. translators: Placeholder is the question post ID which errored. #: includes/data-port/models/class-sensei-import-lesson-model.php:198 +#, php-format msgid "Question does not exist: %s." msgstr "" @@ -6210,21 +6413,25 @@ msgstr "" #. translators: Placeholder is the column name. #: includes/data-port/models/class-sensei-import-model.php:160 +#, php-format msgid "%s must be a whole number." msgstr "" #. translators: Placeholder is the column name. #: includes/data-port/models/class-sensei-import-model.php:179 +#, php-format msgid "%s must be a number." msgstr "" #. translators: Placeholder %1$s is the column name. %2$s is the accepted values. #: includes/data-port/models/class-sensei-import-model.php:199 +#, php-format msgid "%1$s must be one of the following: %2$s." msgstr "" #. translators: Placeholder is the column name. #: includes/data-port/models/class-sensei-import-model.php:220 +#, php-format msgid "%s contains invalid characters." msgstr "" @@ -6238,6 +6445,7 @@ msgstr "" #. translators: First placeholder is name of field, second placeholder is error returned. #: includes/data-port/models/class-sensei-import-question-model.php:145 +#, php-format msgid "Meta field \"%1$s\" is invalid: %2$s" msgstr "" @@ -6259,6 +6467,7 @@ msgstr "" #. translators: placeholder is the URL to MailChimp's Legal page. #: includes/email-signup/template.php:45 +#, php-format msgid "We use Mailchimp as our marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp's privacy practices here." msgstr "" @@ -6272,6 +6481,7 @@ msgstr "" #. translators: Placeholder is the blog name. #: includes/emails/class-sensei-email-learner-completed-course.php:70 +#, php-format msgid "[%1$s] You have completed a course" msgstr "" @@ -6294,6 +6504,7 @@ msgstr "" #. translators: Placeholder is the blog name. #: includes/emails/class-sensei-email-learner-graded-quiz.php:72 +#, php-format msgid "[%1$s] Your quiz has been graded" msgstr "" @@ -6304,6 +6515,7 @@ msgstr "" #. translators: Placeholder is the blog name. #: includes/emails/class-sensei-email-learner-graded-quiz.php:86 +#, php-format msgid "[%1$s] You have completed a quiz" msgstr "" @@ -6314,6 +6526,7 @@ msgstr "" #. translators: Placeholder is the blog name. #: includes/emails/class-sensei-email-new-message-reply.php:104 +#, php-format msgid "[%1$s] You have a new message" msgstr "" @@ -6324,6 +6537,7 @@ msgstr "" #. translators: Placeholder is the blog name. #: includes/emails/class-sensei-email-teacher-completed-course.php:71 +#, php-format msgid "[%1$s] Your student has completed a course" msgstr "" @@ -6334,6 +6548,7 @@ msgstr "" #. translators: Placeholder is the blog name. #: includes/emails/class-sensei-email-teacher-completed-lesson.php:84 +#, php-format msgid "[%1$s] Your student has completed a lesson" msgstr "" @@ -6351,6 +6566,7 @@ msgstr "" #. translators: Placeholder is the blog name. #: includes/emails/class-sensei-email-teacher-new-message.php:67 +#, php-format msgid "[%1$s] You have received a new private message" msgstr "" @@ -6361,6 +6577,7 @@ msgstr "" #. translators: Placeholder is the blog name. #: includes/emails/class-sensei-email-teacher-quiz-submitted.php:73 +#, php-format msgid "[%1$s] Your student has submitted a quiz for grading" msgstr "" @@ -6371,6 +6588,7 @@ msgstr "" #. translators: Placeholder is the blog name. #: includes/emails/class-sensei-email-teacher-started-course.php:77 +#, php-format msgid "[%1$s] Your student has started a course" msgstr "" @@ -6416,11 +6634,13 @@ msgstr "" #. translators: %1s: Title of the Email. #: includes/internal/emails/class-email-list-table.php:124 +#, php-format msgid "Select %1s" msgstr "" #. translators: %s: Post title. #: includes/internal/emails/class-email-list-table.php:216 +#, php-format msgid "Disable “%s”" msgstr "" @@ -6431,6 +6651,7 @@ msgstr "" #. translators: %s: Post title. #: includes/internal/emails/class-email-list-table.php:224 +#, php-format msgid "Enable “%s”" msgstr "" @@ -6441,6 +6662,7 @@ msgstr "" #. translators: %s: Post title. #: includes/internal/emails/class-email-list-table.php:233 +#, php-format msgid "Preview “%s”" msgstr "" @@ -6815,6 +7037,7 @@ msgstr "" #. translators: %s is the date until which the student has access to the course. #: includes/internal/emails/patterns/course-expiration-x-days.php:41 +#, php-format msgid "You can enjoy access to all the course materials and quizzes until midnight on %s." msgstr "" @@ -6924,6 +7147,7 @@ msgstr "" #. translators: %s: comment id #: includes/internal/migration/migrations/class-quiz-migration.php:221 +#, php-format msgid "No quiz answers found for comment ID %d" msgstr "" @@ -6933,16 +7157,19 @@ msgstr "" #. translators: %s: comment type #: includes/internal/migration/migrations/class-student-progress-migration.php:242 +#, php-format msgid "Unknown comment (id %1$d) type: %2$s" msgstr "" #. translators: %s: comment id #: includes/internal/migration/migrations/class-student-progress-migration.php:278 +#, php-format msgid "Unable to convert course progress start date (comment id %s) to UTC." msgstr "" #. translators: %s: comment id #: includes/internal/migration/migrations/class-student-progress-migration.php:330 +#, php-format msgid "Unable to convert lesson progress start date (comment id %s) to UTC." msgstr "" @@ -6968,6 +7195,7 @@ msgstr "" #. translators: %s: list of tables. #: includes/internal/tools/class-progress-tables-eraser.php:120 +#, php-format msgid "The following tables have been deleted: %s" msgstr "" @@ -6993,26 +7221,31 @@ msgstr "" #. translators: Placeholder is the post type singular name: Course or Group. The second placeholder is the Course or Group name. #: includes/mailpoet/class-repository.php:76 +#, php-format msgid "Sensei LMS %1$s: %2$s" msgstr "" #. translators: Placeholder value is the total number of enrollments across all courses. #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-courses.php:91 +#, php-format msgid "Enrolled (%d)" msgstr "" #. translators: Placeholder value represents the total number of enrollments that have completed courses.. #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-courses.php:97 +#, php-format msgid "Completions (%s)" msgstr "" #. translators: Placeholder value represents the % of enrolled students that completed the course. #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-courses.php:102 +#, php-format msgid "Completion Rate (%s)" msgstr "" #. translators: Placeholder value is the total average progress for all courses. #: includes/reports/overview/list-table/class-sensei-reports-overview-list-table-courses.php:107 +#, php-format msgid "Average Progress (%s)" msgstr "" @@ -7148,6 +7381,7 @@ msgstr "" #. translators: Placeholder is the name of the plugin that failed. #: includes/rest-api/class-sensei-rest-api-extensions-controller.php:340 +#, php-format msgid "Failed to update plugin %s" msgstr "" @@ -7198,6 +7432,7 @@ msgstr "" #. translators: %1$s placeholder is object type; %2$s is result descriptor (success, error). #: includes/rest-api/class-sensei-rest-api-import-controller.php:340 +#, php-format msgid "Number of %1$s items with %2$s result" msgstr "" @@ -7304,26 +7539,31 @@ msgstr "" #. translators: Placeholder is the theme slug. #: includes/rest-api/class-sensei-rest-api-theme-controller.php:117 +#, php-format msgid "Invalid theme `%s`." msgstr "" #. translators: Placeholder is the theme slug. #: includes/rest-api/class-sensei-rest-api-theme-controller.php:146 +#, php-format msgid "The requested theme `%s` could not be installed. Theme API call failed." msgstr "" #. translators: Placeholder is the theme slug. #: includes/rest-api/class-sensei-rest-api-theme-controller.php:159 +#, php-format msgid "The requested theme `%s` could not be installed." msgstr "" #. translators: Placeholders are the hook tag and the version which it was deprecated, respectively. #: includes/sensei-functions.php:315 +#, php-format msgid "SENSEI: The hook '%1$s', has been deprecated since '%2$s'." msgstr "" #. translators: Placeholder is the alternative action name. #: includes/sensei-functions.php:320 +#, php-format msgid "Please use '%s' instead." msgstr "" @@ -7333,11 +7573,13 @@ msgstr "" #. translators: Placeholder is the example shortcode text. #: includes/shortcodes/class-sensei-shortcode-course-page.php:57 +#, php-format msgid "Please supply a course ID for the shortcode: %s" msgstr "" #. translators: Placeholders are the shortcode name and the error message. #: includes/shortcodes/class-sensei-shortcode-course-page.php:68 +#, php-format msgid "Error rendering %1$s shortcode - %2$s" msgstr "" @@ -7392,6 +7634,7 @@ msgstr "" #. translators: %s is http://senseilms.com. #: templates/block-templates/email-template.php:42 +#, php-format msgid "Powered by SenseiLMS.com" msgstr "" @@ -7414,11 +7657,13 @@ msgstr "" #. translators: Placeholder is the translated text for "passed" or "failed". #: templates/emails/learner-completed-course.php:43 +#, php-format msgid "You have completed and %1$s the course" msgstr "" #. translators: Placeholder is the translated text for "passed" or "failed". #: templates/emails/learner-graded-quiz.php:43 +#, php-format msgid "You %1$s the lesson" msgstr "" @@ -7428,21 +7673,25 @@ msgstr "" #. translators: Placeholder is the passmark as a percentage. #: templates/emails/learner-graded-quiz.php:56 +#, php-format msgid "The pass mark is %1$s" msgstr "" #. translators: Placeholders are an opening and closing tag linking to the quiz permalink. #: templates/emails/learner-graded-quiz.php:65 +#, php-format msgid "You can review your grade and your answers %1$shere%2$s." msgstr "" #. translators: Placeholder is the post type (e.g. course or lesson) #: templates/emails/new-message-reply.php:45 +#, php-format msgid "has replied to your private message regarding the %1$s" msgstr "" #. translators: Placeholder is an opening an closing tag linking to the comment. #: templates/emails/new-message-reply.php:60 +#, php-format msgid "You can view the message and reply %1$shere%2$s." msgstr "" @@ -7456,12 +7705,14 @@ msgstr "" #. translators: Placeholder is the translated text for "passed" or "failed". #: templates/emails/teacher-completed-course.php:47 +#, php-format msgid "has completed and %1$s the course" msgstr "" #. translators: Placeholders are an opening and closing tag linking to the course's learners page in wp-admin. #: templates/emails/teacher-completed-course.php:58 #: templates/emails/teacher-started-course.php:51 +#, php-format msgid "Manage this course's students %1$shere%2$s." msgstr "" @@ -7471,6 +7722,7 @@ msgstr "" #. translators: Placeholders are an opening and closing tag linking to the lesson's learners page. #: templates/emails/teacher-completed-lesson.php:53 +#, php-format msgid "Manage this lesson's students %1$shere%2$s." msgstr "" @@ -7484,11 +7736,13 @@ msgstr "" #. translators: Placeholder is the post type (e.g. course or lesson). #: templates/emails/teacher-new-message.php:47 +#, php-format msgid "has sent you a private message regarding the %1$s" msgstr "" #. translators: Placeholders are an opening and closing tag linking to the Message permalink. #: templates/emails/teacher-new-message.php:62 +#, php-format msgid "You can reply to this message %1$shere%2$s." msgstr "" @@ -7502,6 +7756,7 @@ msgstr "" #. translators: Placeholders are an opening and closing tag linking to the grading page for the quiz. #: templates/emails/teacher-quiz-submitted.php:57 +#, php-format msgid "You can grade this quiz %1$shere%2$s." msgstr "" @@ -7806,6 +8061,7 @@ msgstr "" #. translators: %1$d Current step number, %2$d Number of steps. #: assets/admin/editor-wizard/wizard.js:52 #: assets/dist/admin/editor-wizard/index.js:620 +#, js-format msgid "Step %1$d of %2$d" msgstr "" @@ -7894,6 +8150,7 @@ msgstr "" #: assets/admin/students/student-modal/index.js:27 #: assets/dist/admin/students/student-action-menu/index.js:154 #: assets/dist/admin/students/student-bulk-action-button/index.js:140 +#, js-format msgid "Select the course(s) you would like to add %d students to:" msgstr "" @@ -7901,6 +8158,7 @@ msgstr "" #: assets/admin/students/student-modal/index.js:35 #: assets/dist/admin/students/student-action-menu/index.js:157 #: assets/dist/admin/students/student-bulk-action-button/index.js:143 +#, js-format msgid "Select the course(s) you would like to add %s to:" msgstr "" @@ -7916,6 +8174,7 @@ msgstr[1] "" #: assets/admin/students/student-modal/index.js:63 #: assets/dist/admin/students/student-action-menu/index.js:160 #: assets/dist/admin/students/student-bulk-action-button/index.js:146 +#, js-format msgid "Select the course(s) you would like to remove %d students from:" msgstr "" @@ -7923,6 +8182,7 @@ msgstr "" #: assets/admin/students/student-modal/index.js:71 #: assets/dist/admin/students/student-action-menu/index.js:163 #: assets/dist/admin/students/student-bulk-action-button/index.js:149 +#, js-format msgid "Select the course(s) you would like to remove %s from:" msgstr "" @@ -7938,6 +8198,7 @@ msgstr[1] "" #: assets/admin/students/student-modal/index.js:100 #: assets/dist/admin/students/student-action-menu/index.js:168 #: assets/dist/admin/students/student-bulk-action-button/index.js:154 +#, js-format msgid "Select the course(s) you would like to reset progress from for %d students:" msgstr "" @@ -7945,6 +8206,7 @@ msgstr "" #: assets/admin/students/student-modal/index.js:108 #: assets/dist/admin/students/student-action-menu/index.js:171 #: assets/dist/admin/students/student-bulk-action-button/index.js:157 +#, js-format msgid "Select the course(s) you would like to reset progress from for %s:" msgstr "" @@ -8381,6 +8643,7 @@ msgstr "" #. translators: Error message. #: assets/blocks/course-outline/course-outline-store.js:68 #: assets/dist/blocks/single-course.js:1313 +#, js-format msgid "Course modules and lessons could not be updated. %s" msgstr "" @@ -8526,6 +8789,7 @@ msgstr "" #: assets/blocks/quiz/quiz-block/questions-modal/actions.js:46 #: assets/dist/blocks/quiz/index.js:636 #: assets/dist/blocks/single-course.js:690 +#, js-format msgid "Add Selected (%s)" msgstr "" @@ -8667,6 +8931,7 @@ msgstr "" #. translators: Mock lesson number. #: assets/blocks/course-results-block/course-results-edit.js:36 #: assets/dist/blocks/single-page.js:199 +#, js-format msgid "Lesson %s" msgstr "" @@ -8711,6 +8976,7 @@ msgstr "" #. translators: %1$d number of characters introduced, %2$d number of total characters allowed. #: assets/blocks/editor-components/limited-text-control/index.js:27 #: assets/dist/admin/editor-wizard/index.js:42 +#, js-format msgid "Characters: %1$d/%2$d" msgstr "" @@ -9053,6 +9319,7 @@ msgstr "" #. translators: placeholder is number of questions to show from category. #: assets/blocks/quiz/category-question-block/category-question-edit.js:82 #: assets/dist/blocks/quiz/index.js:681 +#, js-format msgid "%d question" msgid_plural "%d questions" msgstr[0] "" @@ -9080,12 +9347,14 @@ msgstr "" #. translators: The underlying error message. #: assets/blocks/quiz/category-question-block/category-question-settings.js:147 #: assets/dist/blocks/quiz/index.js:416 +#, js-format msgid "An error occurred while retrieving questions: %s" msgstr "" #. translators: Placeholder is number of questions in category. #: assets/blocks/quiz/category-question-block/category-question-settings.js:164 #: assets/dist/blocks/quiz/index.js:419 +#, js-format msgid "The selected category has %d question." msgid_plural "The selected category has %d questions." msgstr[0] "" @@ -9130,6 +9399,7 @@ msgstr "" #. Translators: placeholder is the grade for the questions. #: assets/blocks/quiz/question-block/question-edit.js:79 #: assets/dist/blocks/quiz/index.js:294 +#, js-format msgid "%d point" msgid_plural "%d points" msgstr[0] "" @@ -9410,6 +9680,7 @@ msgstr "" #. Translators: placeholder is the numer of incomplete questions. #: assets/blocks/quiz/quiz-block/quiz-validation.js:95 #: assets/dist/blocks/quiz/index.js:2532 +#, js-format msgid "There is %d incomplete question in this lesson's quiz." msgid_plural "There are %d incomplete questions in this lesson's quiz." msgstr[0] "" @@ -9423,12 +9694,14 @@ msgstr "" #. translators: Error message. #: assets/blocks/quiz/quiz-store.js:163 #: assets/dist/blocks/quiz/index.js:1134 +#, js-format msgid "Quiz settings and questions could not be loaded. %s" msgstr "" #. translators: Error message. #: assets/blocks/quiz/quiz-store.js:182 #: assets/dist/blocks/quiz/index.js:1141 +#, js-format msgid "Quiz settings and questions could not be updated. %s" msgstr "" @@ -9785,6 +10058,7 @@ msgstr "" #. translators: The %1$s is the name of the Learning Mode template. #: assets/course-theme/learning-mode-templates/template-preview.js:27 #: assets/dist/course-theme/learning-mode-templates/index.js:113 +#, js-format msgid "Preview %1$s" msgstr "" @@ -9972,6 +10246,7 @@ msgstr "" #: assets/dist/blocks/single-course.js:856 #: assets/dist/home/index.js:508 #: assets/extensions/store.js:141 +#, js-format msgid "There was an error while updating the plugin: %1$s" msgstr "" @@ -9987,6 +10262,7 @@ msgstr "" #: assets/dist/blocks/single-course.js:858 #: assets/dist/home/index.js:510 #: assets/extensions/store.js:152 +#, js-format msgid "There was an error while installing the plugin: %1$s" msgstr "" @@ -10001,6 +10277,7 @@ msgstr "" #: assets/dist/blocks/quiz/index.js:2478 #: assets/dist/blocks/single-page.js:890 #: assets/shared/blocks/progress-bar/progress-bar.js:60 +#, js-format msgid "%1$d of %2$d %3$s completed" msgstr "" @@ -10050,6 +10327,7 @@ msgstr "" #. translators: placeholder is the share link. #: assets/dist/home/index.js:255 #: assets/home/tasks-section/ready.js:47 +#, js-format msgid "My new course is ready! Check it here: %s" msgstr "" @@ -10559,6 +10837,7 @@ msgstr "" #. translators: %1$s Plugin name, %2$s Action that will be done. #: assets/dist/setup-wizard/index.js:929 #: assets/setup-wizard/purpose/index.js:55 +#, js-format msgid "%1$s will be %2$s." msgstr "" @@ -11042,3 +11321,53 @@ msgstr "" msgctxt "block keyword" msgid "evaluation" msgstr "" + +#: themes/sensei-course-theme/theme.json +msgctxt "Color name" +msgid "Primary" +msgstr "" + +#: themes/sensei-course-theme/theme.json +msgctxt "Color name" +msgid "Text" +msgstr "" + +#: themes/sensei-course-theme/theme.json +msgctxt "Color name" +msgid "Background" +msgstr "" + +#: themes/sensei-course-theme/theme.json +msgctxt "Font family name" +msgid "Source Serif Pro" +msgstr "" + +#: themes/sensei-course-theme/theme.json +msgctxt "Font family name" +msgid "Inter" +msgstr "" + +#: themes/sensei-course-theme/theme.json +msgctxt "Font size name" +msgid "Small" +msgstr "" + +#: themes/sensei-course-theme/theme.json +msgctxt "Font size name" +msgid "Normal" +msgstr "" + +#: themes/sensei-course-theme/theme.json +msgctxt "Font size name" +msgid "Medium" +msgstr "" + +#: themes/sensei-course-theme/theme.json +msgctxt "Font size name" +msgid "Large" +msgstr "" + +#: themes/sensei-course-theme/theme.json +msgctxt "Font size name" +msgid "Huge" +msgstr "" diff --git a/package-lock.json b/package-lock.json index 298c6b7a47..4c5a0649c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sensei-lms", - "version": "4.25.1", + "version": "4.25.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "sensei-lms", - "version": "4.25.1", + "version": "4.25.2", "license": "GPL-2.0-or-later", "dependencies": { "@automattic/calypso-color-schemes": "3.1.1", diff --git a/package.json b/package.json index 8d846fd608..5c6bcb6fc6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "sensei-lms", "title": "Sensei LMS", - "version": "4.25.1", + "version": "4.25.2", "description": "Sensei LMS", "author": "Automattic", "license": "GPL-2.0-or-later", diff --git a/readme.txt b/readme.txt index 01e2cd5afe..0678284d12 100644 --- a/readme.txt +++ b/readme.txt @@ -2,10 +2,10 @@ === Sensei LMS - Online Courses, Quizzes, & Learning === Contributors: automattic, donnapep, m1r0, bogdannikolic Tags: lms, eLearning, teach, online courses, woocommerce -Requires at least: 6.6 -Tested up to: 6.8 +Requires at least: 6.7 +Tested up to: 6.9 Requires PHP: 7.4 -Stable tag: 4.25.1 +Stable tag: 4.25.2 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -140,6 +140,25 @@ Community members have translated the free Sensei LMS plugin [into 18 languages] == Changelog == +### 4.25.2 - 2025-12-16 +#### Security +- Fix XSS vulnerability in the Contact Teacher block + +#### Removed +- Remove "new" badge from Appearance settings tab [#7874](https://github.com/Automattic/sensei/pull/7874) + +#### Fixed +- Allow multiple choice quiz questions with no wrong answers [#7872](https://github.com/Automattic/sensei/pull/7872) +- Fix Course List pattern not working with newest Gutenberg [#7876](https://github.com/Automattic/sensei/pull/7876) +- Fix error when activating MailPoet [#7864](https://github.com/Automattic/sensei/pull/7864) +- Fix lesson comments being visible to unregistered users in some cases [#7848](https://github.com/Automattic/sensei/pull/7848) +- Fix reports screen times out on larger sites [#7859](https://github.com/Automattic/sensei/pull/7859) +- Fix the course structure API exposing the lesson AI generated bootstrap text [#7869](https://github.com/Automattic/sensei/pull/7869) +- Prevent duplicate queries from happening on every block render [#7860](https://github.com/Automattic/sensei/pull/7860) + +#### Development +- Add CLI command for recalculating course enrolment [#7877](https://github.com/Automattic/sensei/pull/7877) + ### 4.25.1 - 2025-09-18 #### Security - Add authorization check when updating the lesson course relation @@ -191,31 +210,3 @@ Community members have translated the free Sensei LMS plugin [into 18 languages] #### Development - Update NodeJS and NPM versions - -### 4.24.5 - 2025-01-16 -#### Security -- Fix unprepared SQL -- Remove feed content if the user doesn't have access to the lesson - -#### Added -- Wrap question numbers in `` tags [#7738](https://github.com/Automattic/sensei/pull/7738) - -#### Changed -- Replace `date` with `gmdate` [#7735](https://github.com/Automattic/sensei/pull/7735) -- Replace `unlink` with `wp_delete_file` [#7732](https://github.com/Automattic/sensei/pull/7732) -- Replace `wp_json_encode` with `json_encode` [#7730](https://github.com/Automattic/sensei/pull/7730) -- Update the placeholder to use an internal image [#7728](https://github.com/Automattic/sensei/pull/7728) -- Replace `strip_tags` with `wp_strip_all_tags` [#7731](https://github.com/Automattic/sensei/pull/7731) - -#### Deprecated -- Deprecate `load_localisation` and `load_plugin_textdomain` functions [#7713](https://github.com/Automattic/sensei/pull/7713) - -#### Removed -- Remove manual loading of translations [#7713](https://github.com/Automattic/sensei/pull/7713) -- Remove fallback code for Sensei Pro update reminder [#7729](https://github.com/Automattic/sensei/pull/7729) -- Remove files that are already included in WordPress Core [#7727](https://github.com/Automattic/sensei/pull/7727) -- Remove obsolete code from Students area [#7726](https://github.com/Automattic/sensei/pull/7726) - -#### Fixed -- Initialize Sensei blocks for posts [#7736](https://github.com/Automattic/sensei/pull/7736) -- Remove usage of deprecated parameters in WordPress Core functions [#7724](https://github.com/Automattic/sensei/pull/7724) diff --git a/sensei-lms.php b/sensei-lms.php index 713a4769fe..b3d376e988 100644 --- a/sensei-lms.php +++ b/sensei-lms.php @@ -3,12 +3,12 @@ * Plugin Name: Sensei LMS * Plugin URI: https://senseilms.com/ * Description: Share your knowledge, grow your network, and strengthen your brand by launching an online course. - * Version: 4.25.1 + * Version: 4.25.2 * Author: Automattic * Author URI: https://automattic.com * License: GPLv2 or later - * Requires at least: 6.6 - * Tested up to: 6.8 + * Requires at least: 6.7 + * Tested up to: 6.9 * Requires PHP: 7.4 * Text Domain: sensei-lms * Domain path: /lang/ @@ -19,7 +19,7 @@ } if ( ! defined( 'SENSEI_LMS_VERSION' ) ) { - define( 'SENSEI_LMS_VERSION', '4.25.1' ); // WRCS: DEFINED_VERSION. + define( 'SENSEI_LMS_VERSION', '4.25.2' ); // WRCS: DEFINED_VERSION. } if ( ! defined( 'SENSEI_LMS_PLUGIN_FILE' ) ) {