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' ) ) {