From 4f5406bed5638268f06b55ce78159406a1fb7b3e Mon Sep 17 00:00:00 2001
From: Angel Fernando Quiroz Campos <1697880+AngelFQC@users.noreply.github.com>
Date: Tue, 18 Feb 2025 12:00:13 -0500
Subject: [PATCH 1/4] Exercise: Add exercise_text_when_finished_failure conf
setting to allow displaying a text when the user has failed - refs BT#22403
Require database changes
```sql
ALTER TABLE c_quiz ADD text_when_finished_failure LONGTEXT DEFAULT NULL;
```
Then add the "@" symbol to the CQuiz class in the ORM\Column() line for its $textWhenFinishedFailure property.
---
main/exercise/exercise.class.php | 86 +++++++++++++++++++
main/exercise/exercise_show.php | 13 +--
main/inc/lib/exercise.lib.php | 31 +++----
main/install/configuration.dist.php | 7 ++
.../Component/CourseCopy/CourseRestorer.php | 4 +
src/Chamilo/CourseBundle/Entity/CQuiz.php | 18 ++++
6 files changed, 138 insertions(+), 21 deletions(-)
diff --git a/main/exercise/exercise.class.php b/main/exercise/exercise.class.php
index 92acfe5852d..8906cba032b 100755
--- a/main/exercise/exercise.class.php
+++ b/main/exercise/exercise.class.php
@@ -51,6 +51,7 @@ class Exercise
public $review_answers;
public $randomByCat;
public $text_when_finished;
+ public $text_when_finished_failure;
public $display_category_name;
public $pass_percentage;
public $edit_exercise_in_lp = false;
@@ -127,6 +128,7 @@ public function __construct($courseId = 0)
$this->review_answers = false;
$this->randomByCat = 0;
$this->text_when_finished = '';
+ $this->text_when_finished_failure = '';
$this->display_category_name = 0;
$this->pass_percentage = 0;
$this->modelType = 1;
@@ -204,6 +206,7 @@ public function read($id, $parseQuestionList = true)
$this->saveCorrectAnswers = $object->save_correct_answers;
$this->randomByCat = $object->random_by_category;
$this->text_when_finished = $object->text_when_finished;
+ $this->text_when_finished_failure = $object->text_when_finished_failure;
$this->display_category_name = $object->display_category_name;
$this->pass_percentage = $object->pass_percentage;
$this->is_gradebook_locked = api_resource_is_locked_by_gradebook($id, LINK_EXERCISE);
@@ -456,6 +459,28 @@ public function updateTextWhenFinished($text)
$this->text_when_finished = $text;
}
+ /**
+ * Get the text to display when the user has failed the test
+ * @return string html text : the text to display ay the end of the test
+ */
+ public function getTextWhenFinishedFailure(): string
+ {
+ if (empty($this->text_when_finished_failure)) {
+ return '';
+ }
+
+ return $this->text_when_finished_failure;
+ }
+
+ /**
+ * Set the text to display when the user has succeeded in the test
+ * @param string $text
+ */
+ public function setTextWhenFinishedFailure(string $text): void
+ {
+ $this->text_when_finished_failure = $text;
+ }
+
/**
* return 1 or 2 if randomByCat.
*
@@ -1599,6 +1624,7 @@ public function save($type_e = '')
$review_answers = isset($this->review_answers) && $this->review_answers ? 1 : 0;
$randomByCat = (int) $this->randomByCat;
$text_when_finished = $this->text_when_finished;
+ $text_when_finished_failure = $this->text_when_finished_failure;
$display_category_name = (int) $this->display_category_name;
$pass_percentage = (int) $this->pass_percentage;
$session_id = $this->sessionId;
@@ -1654,6 +1680,10 @@ public function save($type_e = '')
'hide_question_title' => $this->getHideQuestionTitle(),
];
+ if (true === api_get_configuration_value('exercise_text_when_finished_failure')) {
+ $paramsExtra['text_when_finished_failure'] = $text_when_finished_failure;
+ }
+
$allow = api_get_configuration_value('allow_quiz_show_previous_button_setting');
if ($allow === true) {
$paramsExtra['show_previous_button'] = $this->showPreviousButton();
@@ -1758,6 +1788,10 @@ public function save($type_e = '')
'hide_question_title' => $this->getHideQuestionTitle(),
];
+ if (true === api_get_configuration_value('exercise_text_when_finished_failure')) {
+ $params['text_when_finished_failure'] = $text_when_finished_failure;
+ }
+
$allow = api_get_configuration_value('allow_exercise_categories');
if (true === $allow) {
if (!empty($this->getExerciseCategoryId())) {
@@ -2505,6 +2539,16 @@ public function createForm($form, $type = 'full')
$editor_config
);
+ if (true === api_get_configuration_value('exercise_text_when_finished_failure')) {
+ $form->addHtmlEditor(
+ 'text_when_finished_failure',
+ get_lang('TextAppearingAtTheEndOfTheTestWhenTheUserHasFailed'),
+ false,
+ false,
+ $editor_config
+ );
+ }
+
$allow = api_get_configuration_value('allow_notification_setting_per_exercise');
if ($allow === true) {
$settings = ExerciseLib::getNotificationSettings();
@@ -2687,6 +2731,10 @@ public function createForm($form, $type = 'full')
$defaults['exercise_category_id'] = $this->getExerciseCategoryId();
$defaults['prevent_backwards'] = $this->getPreventBackwards();
+ if (true === api_get_configuration_value('exercise_text_when_finished_failure')) {
+ $defaults['text_when_finished_failure'] = $this->getTextWhenFinishedFailure();
+ }
+
if (!empty($this->start_time)) {
$defaults['activate_start_date_check'] = 1;
}
@@ -2715,6 +2763,11 @@ public function createForm($form, $type = 'full')
$defaults['results_disabled'] = 0;
$defaults['randomByCat'] = 0;
$defaults['text_when_finished'] = '';
+
+ if (true === api_get_configuration_value('exercise_text_when_finished_failure')) {
+ $defaults['text_when_finished_failure'] = '';
+ }
+
$defaults['start_time'] = date('Y-m-d 12:00:00');
$defaults['display_category_name'] = 1;
$defaults['end_time'] = date('Y-m-d 12:00:00', time() + 84600);
@@ -2886,6 +2939,11 @@ public function processCreation($form, $type = '')
$this->updateSaveCorrectAnswers($form->getSubmitValue('save_correct_answers'));
$this->updateRandomByCat($form->getSubmitValue('randomByCat'));
$this->updateTextWhenFinished($form->getSubmitValue('text_when_finished'));
+
+ if (true === api_get_configuration_value('exercise_text_when_finished_failure')) {
+ $this->setTextWhenFinishedFailure($form->getSubmitValue('text_when_finished_failure'));
+ }
+
$this->updateDisplayCategoryName($form->getSubmitValue('display_category_name'));
$this->updateReviewAnswers($form->getSubmitValue('review_answers'));
$this->updatePassPercentage($form->getSubmitValue('pass_percentage'));
@@ -12244,4 +12302,32 @@ private function setResultDisabledGroup(FormValidator $form)
get_lang('ShowResultsToStudents')
);
}
+
+ /**
+ * Return the text to display, based on the score and the max score.
+ * @param int|float $score
+ * @param int|float $maxScore
+ * @return string
+ */
+ public function getFinishText($score, $maxScore): string
+ {
+ if (true !== api_get_configuration_value('exercise_text_when_finished_failure')) {
+ return $this->getTextWhenFinished();
+ }
+
+ $passPercentage = $this->selectPassPercentage();
+
+ if (!empty($passPercentage)) {
+ $percentage = float_format(
+ ($score / (0 != $maxScore ? $maxScore : 1)) * 100,
+ 1
+ );
+
+ if ($percentage < $passPercentage) {
+ return $this->getTextWhenFinishedFailure();
+ }
+ }
+
+ return $this->getTextWhenFinished();
+ }
}
diff --git a/main/exercise/exercise_show.php b/main/exercise/exercise_show.php
index cb186787a3a..ca5f9adad7e 100755
--- a/main/exercise/exercise_show.php
+++ b/main/exercise/exercise_show.php
@@ -379,12 +379,6 @@ function getFCK(vals, marksid) {
$questionList = $question_list_from_database;
}
-// Display the text when finished message if we are on a LP #4227
-$end_of_message = $objExercise->getTextWhenFinished();
-if (!empty($end_of_message) && ($origin === 'learnpath')) {
- echo Display::return_message($end_of_message, 'normal', false);
- echo "
";
-}
// for each question
$total_weighting = 0;
@@ -884,6 +878,13 @@ class="exercise_mark_select"
$exercise_content .= Display::panel($question_content);
} // end of large foreach on questions
+// Display the text when finished message if we are on a LP #4227
+$end_of_message = $objExercise->getFinishText($totalScore, $totalWeighting);
+if (!empty($end_of_message) && ($origin === 'learnpath')) {
+ echo Display::return_message($end_of_message, 'normal', false);
+ echo "
";
+}
+
$totalScoreText = '';
if ($answerType != MULTIPLE_ANSWER_TRUE_FALSE_DEGREE_CERTAINTY) {
$pluginEvaluation = QuestionOptionsEvaluationPlugin::create();
diff --git a/main/inc/lib/exercise.lib.php b/main/inc/lib/exercise.lib.php
index 82e5685c400..e8e85bda358 100644
--- a/main/inc/lib/exercise.lib.php
+++ b/main/inc/lib/exercise.lib.php
@@ -5368,21 +5368,6 @@ public static function displayQuestionListByAttempt(
);
}
- // Display text when test is finished #4074 and for LP #4227
- // Allows to do a remove_XSS for end text result of exercise with
- // user status COURSEMANAGERLOWSECURITY BT#20194
- if (true === api_get_configuration_value('exercise_result_end_text_html_strict_filtering')) {
- $endOfMessage = Security::remove_XSS($objExercise->getTextWhenFinished(), COURSEMANAGERLOWSECURITY);
- } else {
- $endOfMessage = Security::remove_XSS($objExercise->getTextWhenFinished());
- }
- if (!empty($endOfMessage)) {
- echo Display::div(
- $endOfMessage,
- ['id' => 'quiz_end_message']
- );
- }
-
$question_list_answers = [];
$category_list = [];
$loadChoiceFromSession = false;
@@ -5618,6 +5603,22 @@ public static function displayQuestionListByAttempt(
}
}
+ // Display text when test is finished #4074 and for LP #4227
+ // Allows to do a remove_XSS for end text result of exercise with
+ // user status COURSEMANAGERLOWSECURITY BT#20194
+ $finishMessage = $objExercise->getFinishText($total_score, $total_weight);
+ if (true === api_get_configuration_value('exercise_result_end_text_html_strict_filtering')) {
+ $endOfMessage = Security::remove_XSS($finishMessage, COURSEMANAGERLOWSECURITY);
+ } else {
+ $endOfMessage = Security::remove_XSS($finishMessage);
+ }
+ if (!empty($endOfMessage)) {
+ echo Display::div(
+ $endOfMessage,
+ ['id' => 'quiz_end_message']
+ );
+ }
+
$totalScoreText = null;
$certificateBlock = '';
if (($show_results || $show_only_score) && $showTotalScore) {
diff --git a/main/install/configuration.dist.php b/main/install/configuration.dist.php
index fd841c332da..4352362de22 100644
--- a/main/install/configuration.dist.php
+++ b/main/install/configuration.dist.php
@@ -2555,6 +2555,13 @@
// Add more speed options to reading comprehension question type (type id = 21) in words per minute
//$_configuration['exercise_question_reading_comprehension_extra_speeds'] = ['speeds' => [70, 110, 170]];
+// Text appearing at the end of the test when the user has failed. Requires DB changes.
+/*
+ALTER TABLE c_quiz ADD text_when_finished_failure LONGTEXT DEFAULT NULL;
+*/
+// Then add the "@" symbol to the CQuiz class in the ORM\Column() line for its $textWhenFinishedFailure property.
+//$_configuration['exercise_text_when_finished_failure'] = false;
+
//hide copy icon in LP's authoring options
//$_configuration['lp_hide_copy_option'] = false;
diff --git a/src/Chamilo/CourseBundle/Component/CourseCopy/CourseRestorer.php b/src/Chamilo/CourseBundle/Component/CourseCopy/CourseRestorer.php
index fd6987168e9..b1ce7e02f48 100644
--- a/src/Chamilo/CourseBundle/Component/CourseCopy/CourseRestorer.php
+++ b/src/Chamilo/CourseBundle/Component/CourseCopy/CourseRestorer.php
@@ -1974,6 +1974,10 @@ public function restore_quizzes(
'hide_question_title' => isset($quiz->hide_question_title) ? $quiz->hide_question_title : 0,
];
+ if (true === api_get_configuration_value('exercise_text_when_finished_failure')) {
+ $params['text_when_finished_failure'] = (string) $quiz->text_when_finished_failure;
+ }
+
$allow = api_get_configuration_value('allow_notification_setting_per_exercise');
if ($allow) {
$params['notifications'] = isset($quiz->notifications) ? $quiz->notifications : '';
diff --git a/src/Chamilo/CourseBundle/Entity/CQuiz.php b/src/Chamilo/CourseBundle/Entity/CQuiz.php
index 38d4aacb157..28cb594c48b 100644
--- a/src/Chamilo/CourseBundle/Entity/CQuiz.php
+++ b/src/Chamilo/CourseBundle/Entity/CQuiz.php
@@ -183,6 +183,13 @@ class CQuiz
*/
protected $textWhenFinished;
+ /**
+ * @var string|null
+ *
+ * ORM\Column(name="text_when_finished_failure", type="text", nullable=true)
+ */
+ protected ?string $textWhenFinishedFailure = null;
+
/**
* @var int
*
@@ -837,4 +844,15 @@ public function setHideQuestionTitle($hideQuestionTitle)
return $this;
}
+
+ public function getTextWhenFinishedFailure(): ?string
+ {
+ return $this->textWhenFinishedFailure;
+ }
+
+ public function setTextWhenFinishedFailure(?string $textWhenFinishedFailure): CQuiz
+ {
+ $this->textWhenFinishedFailure = $textWhenFinishedFailure;
+ return $this;
+ }
}
From df715cb4b043c88e69fe8e05156cef8b0678cbef Mon Sep 17 00:00:00 2001
From: Angel Fernando Quiroz Campos <1697880+AngelFQC@users.noreply.github.com>
Date: Tue, 18 Feb 2025 16:53:04 -0500
Subject: [PATCH 2/4] Exercise: Add
exercise_subscribe_session_when_finished_failure conf setting to allow
subscribing a user a session when the user has failed - refs BT#22403
---
main/exercise/exercise.class.php | 20 ++++++++++++++
main/inc/lib/exercise.lib.php | 42 +++++++++++++++++++++++++++++
main/install/configuration.dist.php | 6 +++++
3 files changed, 68 insertions(+)
diff --git a/main/exercise/exercise.class.php b/main/exercise/exercise.class.php
index 8906cba032b..367fae8be83 100755
--- a/main/exercise/exercise.class.php
+++ b/main/exercise/exercise.class.php
@@ -2616,6 +2616,7 @@ public function createForm($form, $type = 'full')
'notifications',
'remedialcourselist',
'advancedcourselist',
+ 'subscribe_session_when_finished_failure',
], //exclude
false, // filter
false, // tag as select
@@ -2676,6 +2677,25 @@ public function createForm($form, $type = 'full')
}
}
+ if (true === api_get_configuration_value('exercise_subscribe_session_when_finished_failure')) {
+ $optionSessionWhenFailure = [];
+
+ if ($failureSession = ExerciseLib::getSessionWhenFinishedFailure($this->iid)) {
+ $defaults['subscribe_session_when_finished_failure'] = $failureSession->getId();
+ $optionSessionWhenFailure[$failureSession->getId()] = $failureSession->getName();
+ }
+
+ $form->addSelectAjax(
+ 'extra_subscribe_session_when_finished_failure',
+ get_lang('SubscribeSessionWhenFinishedFailure'),
+ $optionSessionWhenFailure,
+ [
+ 'url' => api_get_path(WEB_AJAX_PATH).'session.ajax.php?'
+ .http_build_query(['a' => 'search_session']),
+ ]
+ );
+ }
+
$settings = api_get_configuration_value('exercise_finished_notification_settings');
if (!empty($settings)) {
$options = [];
diff --git a/main/inc/lib/exercise.lib.php b/main/inc/lib/exercise.lib.php
index e8e85bda358..7d799987348 100644
--- a/main/inc/lib/exercise.lib.php
+++ b/main/inc/lib/exercise.lib.php
@@ -3,6 +3,7 @@
/* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Component\Utils\ChamiloApi;
+use Chamilo\CoreBundle\Entity\Session as SessionEntity;
use Chamilo\CoreBundle\Entity\TrackEExercises;
use Chamilo\CourseBundle\Entity\CQuizQuestion;
use ChamiloSession as Session;
@@ -5792,6 +5793,13 @@ public static function displayQuestionListByAttempt(
$total_weight
);
+ if ($save_user_result
+ && !$passed
+ && true === api_get_configuration_value('exercise_subscribe_session_when_finished_failure')
+ ) {
+ self::subscribeSessionWhenFinishedFailure($objExercise->iid);
+ }
+
$percentage = 0;
if (!empty($total_weight)) {
$percentage = ($total_score / $total_weight) * 100;
@@ -5812,6 +5820,40 @@ public static function displayQuestionListByAttempt(
];
}
+ public static function getSessionWhenFinishedFailure(int $exerciseId): ?SessionEntity
+ {
+ $objExtraField = new ExtraField('exercise');
+ $objExtraFieldValue = new ExtraFieldValue('exercise');
+
+ $subsSessionWhenFailureField = $objExtraField->get_handler_field_info_by_field_variable(
+ 'subscribe_session_when_finished_failure'
+ );
+ $subsSessionWhenFailureValue = $objExtraFieldValue->get_values_by_handler_and_field_id(
+ $exerciseId,
+ $subsSessionWhenFailureField['id']
+ );
+
+ if (!empty($subsSessionWhenFailureValue['value'])) {
+ return api_get_session_entity((int) $subsSessionWhenFailureValue['value']);
+ }
+
+ return null;
+ }
+
+ private static function subscribeSessionWhenFinishedFailure(int $exerciseId): void
+ {
+ $failureSession = self::getSessionWhenFinishedFailure($exerciseId);
+
+ if ($failureSession) {
+ SessionManager::subscribeUsersToSession(
+ $failureSession->getId(),
+ [api_get_user_id()],
+ SESSION_VISIBLE_READ_ONLY,
+ false
+ );
+ }
+ }
+
/**
* It validates unique score when all user answers are correct by question.
* It is used for global questions.
diff --git a/main/install/configuration.dist.php b/main/install/configuration.dist.php
index 4352362de22..e510b42dd54 100644
--- a/main/install/configuration.dist.php
+++ b/main/install/configuration.dist.php
@@ -2562,6 +2562,12 @@
// Then add the "@" symbol to the CQuiz class in the ORM\Column() line for its $textWhenFinishedFailure property.
//$_configuration['exercise_text_when_finished_failure'] = false;
+// Add an option to subscribe the user at the end of test when the user has failed. Requires DB changes.
+/*
+INSERT INTO extra_field (extra_field_type, field_type, variable, display_text, default_value, field_order, visible_to_self, visible_to_others, changeable, filter, created_at) VALUES (17, 5, 'subscribe_session_when_finished_failure', 'SubscribeSessionWhenFinishedFailure', '', 0, 1, 0, 1, 0, NOW());
+*/
+//$_configuration['exercise_subscribe_session_when_finished_failure'] = false;
+
//hide copy icon in LP's authoring options
//$_configuration['lp_hide_copy_option'] = false;
From 213ded47761bc18da57e93a8d2f6731e67231d38 Mon Sep 17 00:00:00 2001
From: Angel Fernando Quiroz Campos <1697880+AngelFQC@users.noreply.github.com>
Date: Tue, 18 Feb 2025 17:11:24 -0500
Subject: [PATCH 3/4] Minor: Format code - refs BT#22403
---
main/exercise/exercise.class.php | 62 +++++++++++------------
main/exercise/exercise_show.php | 1 -
main/inc/lib/exercise.lib.php | 28 +++++-----
src/Chamilo/CourseBundle/Entity/CQuiz.php | 1 +
4 files changed, 46 insertions(+), 46 deletions(-)
diff --git a/main/exercise/exercise.class.php b/main/exercise/exercise.class.php
index 367fae8be83..67b24d4ec9c 100755
--- a/main/exercise/exercise.class.php
+++ b/main/exercise/exercise.class.php
@@ -460,7 +460,8 @@ public function updateTextWhenFinished($text)
}
/**
- * Get the text to display when the user has failed the test
+ * Get the text to display when the user has failed the test.
+ *
* @return string html text : the text to display ay the end of the test
*/
public function getTextWhenFinishedFailure(): string
@@ -473,8 +474,7 @@ public function getTextWhenFinishedFailure(): string
}
/**
- * Set the text to display when the user has succeeded in the test
- * @param string $text
+ * Set the text to display when the user has succeeded in the test.
*/
public function setTextWhenFinishedFailure(string $text): void
{
@@ -11837,6 +11837,34 @@ public static function getFeedbackTypeLiteral(int $feedbackType): string
return $result;
}
+ /**
+ * Return the text to display, based on the score and the max score.
+ *
+ * @param int|float $score
+ * @param int|float $maxScore
+ */
+ public function getFinishText($score, $maxScore): string
+ {
+ if (true !== api_get_configuration_value('exercise_text_when_finished_failure')) {
+ return $this->getTextWhenFinished();
+ }
+
+ $passPercentage = $this->selectPassPercentage();
+
+ if (!empty($passPercentage)) {
+ $percentage = float_format(
+ ($score / (0 != $maxScore ? $maxScore : 1)) * 100,
+ 1
+ );
+
+ if ($percentage < $passPercentage) {
+ return $this->getTextWhenFinishedFailure();
+ }
+ }
+
+ return $this->getTextWhenFinished();
+ }
+
/**
* Get number of questions in exercise by user attempt.
*
@@ -12322,32 +12350,4 @@ private function setResultDisabledGroup(FormValidator $form)
get_lang('ShowResultsToStudents')
);
}
-
- /**
- * Return the text to display, based on the score and the max score.
- * @param int|float $score
- * @param int|float $maxScore
- * @return string
- */
- public function getFinishText($score, $maxScore): string
- {
- if (true !== api_get_configuration_value('exercise_text_when_finished_failure')) {
- return $this->getTextWhenFinished();
- }
-
- $passPercentage = $this->selectPassPercentage();
-
- if (!empty($passPercentage)) {
- $percentage = float_format(
- ($score / (0 != $maxScore ? $maxScore : 1)) * 100,
- 1
- );
-
- if ($percentage < $passPercentage) {
- return $this->getTextWhenFinishedFailure();
- }
- }
-
- return $this->getTextWhenFinished();
- }
}
diff --git a/main/exercise/exercise_show.php b/main/exercise/exercise_show.php
index ca5f9adad7e..445a2e8ebe8 100755
--- a/main/exercise/exercise_show.php
+++ b/main/exercise/exercise_show.php
@@ -379,7 +379,6 @@ function getFCK(vals, marksid) {
$questionList = $question_list_from_database;
}
-
// for each question
$total_weighting = 0;
foreach ($questionList as $questionId) {
diff --git a/main/inc/lib/exercise.lib.php b/main/inc/lib/exercise.lib.php
index 7d799987348..58eec857987 100644
--- a/main/inc/lib/exercise.lib.php
+++ b/main/inc/lib/exercise.lib.php
@@ -5840,20 +5840,6 @@ public static function getSessionWhenFinishedFailure(int $exerciseId): ?SessionE
return null;
}
- private static function subscribeSessionWhenFinishedFailure(int $exerciseId): void
- {
- $failureSession = self::getSessionWhenFinishedFailure($exerciseId);
-
- if ($failureSession) {
- SessionManager::subscribeUsersToSession(
- $failureSession->getId(),
- [api_get_user_id()],
- SESSION_VISIBLE_READ_ONLY,
- false
- );
- }
- }
-
/**
* It validates unique score when all user answers are correct by question.
* It is used for global questions.
@@ -7416,4 +7402,18 @@ public static function exportExerciseAllResultsZip(
return false;
}
+
+ private static function subscribeSessionWhenFinishedFailure(int $exerciseId): void
+ {
+ $failureSession = self::getSessionWhenFinishedFailure($exerciseId);
+
+ if ($failureSession) {
+ SessionManager::subscribeUsersToSession(
+ $failureSession->getId(),
+ [api_get_user_id()],
+ SESSION_VISIBLE_READ_ONLY,
+ false
+ );
+ }
+ }
}
diff --git a/src/Chamilo/CourseBundle/Entity/CQuiz.php b/src/Chamilo/CourseBundle/Entity/CQuiz.php
index 28cb594c48b..f408213a762 100644
--- a/src/Chamilo/CourseBundle/Entity/CQuiz.php
+++ b/src/Chamilo/CourseBundle/Entity/CQuiz.php
@@ -853,6 +853,7 @@ public function getTextWhenFinishedFailure(): ?string
public function setTextWhenFinishedFailure(?string $textWhenFinishedFailure): CQuiz
{
$this->textWhenFinishedFailure = $textWhenFinishedFailure;
+
return $this;
}
}
From df3bcf0f679ab8d23213ad25b58376d4b37adfb0 Mon Sep 17 00:00:00 2001
From: Angel Fernando Quiroz Campos <1697880+AngelFQC@users.noreply.github.com>
Date: Tue, 18 Feb 2025 17:31:08 -0500
Subject: [PATCH 4/4] Minor: Update lang files - refs BT#22403
---
main/lang/english/trad4all.inc.php | 276 ++++++++++++------------
main/lang/spanish/trad4all.inc.php | 326 ++++++++++++++---------------
2 files changed, 301 insertions(+), 301 deletions(-)
diff --git a/main/lang/english/trad4all.inc.php b/main/lang/english/trad4all.inc.php
index 816af9b410f..8930ac078a3 100644
--- a/main/lang/english/trad4all.inc.php
+++ b/main/lang/english/trad4all.inc.php
@@ -325,19 +325,19 @@
$IfSessionExistsUpdate = "If a session exists, update it";
$CreatedByXYOnZ = "Create by %s on %s";
$LoginWithExternalAccount = "Login without an institutional account";
-$ImportAikenQuizExplanationExample = "This is the text for question 1
-A. Answer 1
-B. Answer 2
-C. Answer 3
-ANSWER: B
-
-This is the text for question 2
-A. Answer 1
-B. Answer 2
-C. Answer 3
-D. Answer 4
-ANSWER: D
-ANSWER_EXPLANATION: this is an optional feedback comment that will appear next to the correct answer.
+$ImportAikenQuizExplanationExample = "This is the text for question 1
+A. Answer 1
+B. Answer 2
+C. Answer 3
+ANSWER: B
+
+This is the text for question 2
+A. Answer 1
+B. Answer 2
+C. Answer 3
+D. Answer 4
+ANSWER: D
+ANSWER_EXPLANATION: this is an optional feedback comment that will appear next to the correct answer.
SCORE: 20";
$ImportAikenQuizExplanation = "The Aiken format comes in a simple text (.txt) file, with several question blocks, each separated by a blank line. The first line is the question, the answer lines are prefixed by a letter and a dot, and the correct answer comes next with the ANSWER: prefix. See example below.";
$ExerciseAikenErrorNoAnswerOptionGiven = "The imported file has at least one question without any answer (or the answers do not include the required prefix letter). Please make sure each question has at least one answer and that it is prefixed by a letter and a dot or a parenthesis, like this: A. answer one";
@@ -426,18 +426,18 @@
$LatestVersionIs = "The latest version is";
$YourVersionNotUpToDate = "Your version is not up-to-date";
$Hotpotatoes = "Hotpotatoes";
-$ZeroMeansNoQuestionWillBeSelectedMinusOneMeansThatAllQuestionsWillBeSelected = "-1 = All questions will be selected.
+$ZeroMeansNoQuestionWillBeSelectedMinusOneMeansThatAllQuestionsWillBeSelected = "-1 = All questions will be selected.
0 = No questions will be selected.";
-$EmailNotificationTemplateDescription = "You can customize the email sent to users when they finished the exercise. You can use tags like these:
-
-1. {{ student.username }}
-2. {{ student.firstname }}
-3. {{ student.lastname }}
-4. {{ student.official_code }}
-5. {{ exercise.title }}
-6. {{ exercise.start_time }}
-7. {{ exercise.end_time }}
-8. {{ course.title }}
+$EmailNotificationTemplateDescription = "You can customize the email sent to users when they finished the exercise. You can use tags like these:
+
+1. {{ student.username }}
+2. {{ student.firstname }}
+3. {{ student.lastname }}
+4. {{ student.official_code }}
+5. {{ exercise.title }}
+6. {{ exercise.start_time }}
+7. {{ exercise.end_time }}
+8. {{ course.title }}
9. {{ course.code }}";
$EmailNotificationTemplate = "E-mail notification template";
$ExerciseEndButtonDisconnect = "Logout";
@@ -845,10 +845,10 @@
$EnableIframeInclusionComment = "Allowing arbitrary iframes in the HTML Editor will enhance the edition capabilities of the users, but it can represent a security risk. Please make sure you can rely on your users (i.e. you know who they are) before enabling this feature.";
$AddedToLPCannotBeAccessed = "This exercise has been included in a learning path, so it cannot be accessed by students directly from here. If you want to put the same exercise available through the exercises tool, please make a copy of the current exercise using the copy icon.";
$EnableIframeInclusionTitle = "Allow iframes in HTML Editor";
-$MailTemplateRegistrationMessage = "Dear ((firstname)) ((lastname)),\n\nYou are registered on
-((sitename)) with the following settings:\n\nUsername :
-((username))\nPass : ((password))\n\nThe address of ((sitename)) is :
-((url))\n\nIn case of trouble, contact us.\n\nYours sincerely
+$MailTemplateRegistrationMessage = "Dear ((firstname)) ((lastname)),\n\nYou are registered on
+((sitename)) with the following settings:\n\nUsername :
+((username))\nPass : ((password))\n\nThe address of ((sitename)) is :
+((url))\n\nIn case of trouble, contact us.\n\nYours sincerely
\n((admin_name)) ((admin_surname)).";
$Explanation = "Once you click on \"Create a course\", a course is created with a section for Tests, Project based learning, Assessments, Courses, Dropbox, Agenda and much more. Logging in as teacher provides you with editing privileges for this course.";
$CodeTaken = "This course code is already in use.
Use the Back button on your browser and try again.";
@@ -2641,16 +2641,16 @@
$WithoutAchievedSkills = "Without achieved skills";
$TypeMessage = "Please type your message!";
$ConfirmReset = "Do you really want to delete all messages?";
-$MailCronCourseExpirationReminderBody = "Dear %s,
-
-It has come to our attention that you have not completed the course %s although its expiration date had been set on %s, remaining %s days to finish it.
-
-We remind you that you have only the possibility to follow this course once a year, that is why we invite you insistently to complete your course on time.
-
-You can return to the course connecting to the platform through this address: %s
-
-Best Regards,
-
+$MailCronCourseExpirationReminderBody = "Dear %s,
+
+It has come to our attention that you have not completed the course %s although its expiration date had been set on %s, remaining %s days to finish it.
+
+We remind you that you have only the possibility to follow this course once a year, that is why we invite you insistently to complete your course on time.
+
+You can return to the course connecting to the platform through this address: %s
+
+Best Regards,
+
%s Team";
$MailCronCourseExpirationReminderSubject = "Urgent: %s course expiration reminder";
$ExerciseAndLearningPath = "Exercise and learning path";
@@ -5778,8 +5778,8 @@
$PortalCoursesLimitReached = "Sorry, this installation has a courses limit, which has now been reached. To increase the number of courses allowed on this Chamilo installation, please contact your hosting provider or, if available, upgrade to a superior hosting plan.";
$PortalTeachersLimitReached = "Sorry, this installation has a teachers limit, which has now been reached. To increase the number of teachers allowed on this Chamilo installation, please contact your hosting provider or, if available, upgrade to a superior hosting plan.";
$PortalUsersLimitReached = "Sorry, this installation has a users limit, which has now been reached. To increase the number of users allowed on this Chamilo installation, please contact your hosting provider or, if available, upgrade to a superior hosting plan.";
-$GenerateSurveyAccessLinkExplanation = "By copying the link below and pasting it in an e-mail or on a website, you will allow any anonymous person to enter and answer this survey.
-You can test this feature by clicking the link above and answering the survey.
+$GenerateSurveyAccessLinkExplanation = "By copying the link below and pasting it in an e-mail or on a website, you will allow any anonymous person to enter and answer this survey.
+You can test this feature by clicking the link above and answering the survey.
This is particularly useful if you want to allow anyone on a forum to answer you survey and you don't know their e-mail addresses.";
$LinkOpenSelf = "Open self";
$LinkOpenBlank = "Open blank";
@@ -5832,8 +5832,8 @@
$ConfigureDashboardPlugin = "Configure Dashboard Plugin";
$EditBlocks = "Edit blocks";
$Never = "Never";
-$YourAccountIsActiveYouCanLoginAndCheckYourCourses = "Dear user,
-
+$YourAccountIsActiveYouCanLoginAndCheckYourCourses = "Dear user,
+
Your account has now been activated on the platform. Please login and enjoy your courses.";
$SessionFields = "Session fields";
$CopyLabelSuffix = "Copy";
@@ -5895,7 +5895,7 @@
$DirectLink = "Direct link";
$here = "here";
$GoAheadAndBrowseOurCourseCatalogXOnceRegisteredYouWillSeeTheCourseHereX = "Go ahead and browse our course catalog %s to register to any course you like. Once registered, you will see the course appear right %s, instead of this message.
";
-$HelloXAsYouCanSeeYourCourseListIsEmpty = "Hello %s and welcome,
+$HelloXAsYouCanSeeYourCourseListIsEmpty = "Hello %s and welcome,
As you can see, your courses list is still empty. That's because you are not registered to any course yet!
";
$UnsubscribeUsersAlreadyAddedInCourse = "Unsubscribe users already added";
$ImportUsers = "Import users";
@@ -6158,7 +6158,7 @@
$LastConnexionDate = "Last connexion date";
$ToolVideoconference = "Videoconference";
$BigBlueButtonEnableTitle = "BigBlueButton videoconference tool";
-$BigBlueButtonEnableComment = "Choose whether you want to enable the BigBlueButton videoconference tool. Once enabled, it will show as an additional course tool in all courses' homepage, and teachers will be able to launch a conference at any time. Learners will not be able to launch a conference, only join one. If you don't have a BigBlueButton server, please set one up or ask the Chamilo official providers for a quote.
+$BigBlueButtonEnableComment = "Choose whether you want to enable the BigBlueButton videoconference tool. Once enabled, it will show as an additional course tool in all courses' homepage, and teachers will be able to launch a conference at any time. Learners will not be able to launch a conference, only join one. If you don't have a BigBlueButton server, please set one up or ask the Chamilo official providers for a quote.
BigBlueButton is a free (as in freedom *and* beer), but its installation requires a set of technical skills that might not be immediately available to all. You can install it on your own or seek professional help to assist you or do it for you. This help, however, will generate a certain cost. In the pure logic of the free software, we offer you the tools to make your work easier and recommend professionals (the Chamilo Official Providers) that will be able to help you if this were too difficult.";
$BigBlueButtonHostTitle = "BigBlueButton server host";
$BigBlueButtonHostComment = "This is the name of the server where your BigBlueButton server is running. Might be localhost, an IP address (e.g. 192.168.13.54) or a domain name (e.g. my.video.com).";
@@ -6169,14 +6169,14 @@
$CreateAssignmentPage = "This will create a special wiki page in which the teacher can describe the task and which will be automatically linked to the wiki pages where learners perform the task. Both the teacher's and the learners' pages are created automatically. In these tasks, learners can only edit and view theirs pages, but this can be changed easily if you need to.";
$UserFolders = "Folders of users";
$UserFolder = "User folder";
-$HelpUsersFolder = "INFORMATION VISIBLE TO THE TEACHER ONLY:\nThe users folder contains a folder for each user who has accessed it through the documents tool, or when any file has been sent in the course through the online editor. If neither circumstances has occurred, then no user folder will have been created. In the case of groups, files that are sent through the editor will be added in the folder of each group, which is only accessible by students from this group.
-
-The users folder and each of the included folders will be hidden by default in for all students, but each student can see the contents of his/her directory through the online editor. However, if a student knows the address of a file or folder of another student, he may be able to access it.
-
-If the folder of a student is visible, other students can see what it contains. In this case, the student that owns the folder can also (from the documents tool and only in his/her folder): create and edit web documents, convert a document into a template for personal use, create and edit drawings in SVG and PNG formats, record audio files in WAV format, make audio files in MP3 from a text, make snapshops from a webcam, send documents, create folders, move folders and files, delete folders and files, and download backup of his/her folder.
-
-Moreover, the documents tool is synchronized with the file manager of the online editor, so changes in the documents triggered in any one of these will affect both.
-
+$HelpUsersFolder = "INFORMATION VISIBLE TO THE TEACHER ONLY:\nThe users folder contains a folder for each user who has accessed it through the documents tool, or when any file has been sent in the course through the online editor. If neither circumstances has occurred, then no user folder will have been created. In the case of groups, files that are sent through the editor will be added in the folder of each group, which is only accessible by students from this group.
+
+The users folder and each of the included folders will be hidden by default in for all students, but each student can see the contents of his/her directory through the online editor. However, if a student knows the address of a file or folder of another student, he may be able to access it.
+
+If the folder of a student is visible, other students can see what it contains. In this case, the student that owns the folder can also (from the documents tool and only in his/her folder): create and edit web documents, convert a document into a template for personal use, create and edit drawings in SVG and PNG formats, record audio files in WAV format, make audio files in MP3 from a text, make snapshops from a webcam, send documents, create folders, move folders and files, delete folders and files, and download backup of his/her folder.
+
+Moreover, the documents tool is synchronized with the file manager of the online editor, so changes in the documents triggered in any one of these will affect both.
+
As such, the user folder is not only a place to deposit files, it becomes a complete manager of the documents students use during the course. Also, remember that any user can copy a file that is visible from any folder in the documents tool (whether or not he is the owner) to his/her portfolios or personal documents area of social network, which will be available to him/her for use in other courses.";
$HelpFolderChat = "INFORMATION VISIBLE TO THE TEACHER ONLY:\nThis folder contains all sessions that have been opened in the chat. Although the chat sessions can often be trivial, others can be really interesting and worthy of being incorporated as an additional work document. To do this without changing the visibility of this folder, make the file visible and link it from where you deem appropriate. It is not recommended to make this folder visible to all.";
$HelpFolderCertificates = "INFORMATION VISIBLE TO THE TEACHER ONLY:\nThis folder contains the various certificates templates that have been created for the rating tool. It is not recommended to make this folder visible to all.";
@@ -6225,8 +6225,8 @@
$HelpPediaphon = "Supports text with several thousands characters, in various types of male and female voices (depending on the language). Audio files will be generated and automatically saved to the Chamilo directory in which you are.";
$FirstSelectALanguage = "Please select a language";
$MoveUserStats = "Move users results from/to a session";
-$CompareUserResultsBetweenCoursesAndCoursesInASession = "This advanced tool allows you to manually improve the tracking of users results when moving from courses methodology to sessions methodology. In most cases, you won't need to use it.
-On this screen, you can compare results of users between the context of a standalone course, and the context of the same course inside a session.
+$CompareUserResultsBetweenCoursesAndCoursesInASession = "This advanced tool allows you to manually improve the tracking of users results when moving from courses methodology to sessions methodology. In most cases, you won't need to use it.
+On this screen, you can compare results of users between the context of a standalone course, and the context of the same course inside a session.
Once you are sure about what to do, you can choose to move the tracking data of the students (exercises results and learning paths tracking) from a course to a session.";
$PDFExportWatermarkEnableTitle = "Enable watermark in PDF export";
$PDFExportWatermarkEnableComment = "By enabling this option, you can upload an image or a text that will be automatically added as watermark to all PDF exports of documents on the system.";
@@ -6658,7 +6658,7 @@
$ForumCategories = "Forum Categories";
$Copy = "Copy";
$ArchiveDirCleanup = "Cleanup of cache and temporary files";
-$ArchiveDirCleanupDescr = "Chamilo keeps a copy of most of the temporary files it generates (for backups, exports, copies, etc) into its app/cache/ directory. After a while, this can add up to a very large amount of disk space being used for nothing. Click the button below to clean your archive directory up. This operation should be automated by a cron process, but if this is not possible, you can come to this page regularly to remove all temporary files from the directory.
+$ArchiveDirCleanupDescr = "Chamilo keeps a copy of most of the temporary files it generates (for backups, exports, copies, etc) into its app/cache/ directory. After a while, this can add up to a very large amount of disk space being used for nothing. Click the button below to clean your archive directory up. This operation should be automated by a cron process, but if this is not possible, you can come to this page regularly to remove all temporary files from the directory.
This feature also cleans up the theme cache files.";
$ArchiveDirCleanupProceedButton = "Proceed with cleanup";
$ArchiveDirCleanupSucceeded = "The app/cache/ directory cleanup has been executed successfully.";
@@ -7007,45 +7007,45 @@
$GradebookLockedAlert = "This assessment has been locked. You cannot unlock it. If you really need to unlock it, please contact the platform administrator, explaining the reason why you would need to do that (it might otherwise be considered as fraud attempt).";
$GradebookEnableLockingTitle = "Enable locking of assessments by teachers";
$GradebookEnableLockingComment = "Once enabled, this option will enable locking of any assessment by the teachers of the corresponding course. This, in turn, will prevent any modification of results by the teacher inside the resources used in the assessment: exams, learning paths, tasks, etc. The only role authorized to unlock a locked assessment is the administrator. The teacher will be informed of this possibility. The locking and unlocking of gradebooks will be registered in the system's report of important activities";
-$LdapDescriptionComment = "
-
- - LDAP authentication :
- See I. below to configure LDAP
- See II. below to activate LDAP authentication
-
- - Update user attributes, with LDAP data, after CAS authentication(see CAS configuration ) :
- See I. below to configure LDAP
- CAS manage user authentication, LDAP activation isn't required.
-
-
-
- I. LDAP configuration
- Edit file app/config/auth.conf.php
- -> Edit values of array \$extldap_config
-
- - base domain string (ex : 'base_dn' => 'DC=cblue,DC=be')
- - admin distinguished name (ex : 'admin_dn' =>'CN=admin,dc=cblue,dc=be')
- - admin password (ex : 'admin_password' => '123456')
- - ldap host (ex : 'host' => array('1.2.3.4', '2.3.4.5', '3.4.5.6'))
- - filter (ex : 'filter' => '')
- - port (ex : 'port' => 389)
- - protocol version (2 or 3) (ex : 'protocol_version' => 3)
- - user_search (ex : 'user_search' => 'sAMAccountName=%username%')
- - encoding (ex : 'encoding' => 'UTF-8')
- - update_userinfo (ex : 'update_userinfo' => true)
-
- -> To update correspondences between user and LDAP attributes, edit array \$extldap_user_correspondance
- Array values are <chamilo_field> => >ldap_field>
-
- II. Activate LDAP authentication
- Edit file app/config/configuration.php
- -> Uncomment lines:
-
- -
- \$extAuthSource[\"extldap\"][\"login\"] = \$_configuration['root_sys'].\"main/auth/external_login/login.ldap.php\";
- - \$extAuthSource[\"extldap\"][\"newUser\"] = \$_configuration['root_sys'].\"main/auth/external_login/newUser.ldap.php\";
-
- N.B.: LDAP users use same fields than platform users to login.
+$LdapDescriptionComment = "
+
+ - LDAP authentication :
+ See I. below to configure LDAP
+ See II. below to activate LDAP authentication
+
+ - Update user attributes, with LDAP data, after CAS authentication(see CAS configuration ) :
+ See I. below to configure LDAP
+ CAS manage user authentication, LDAP activation isn't required.
+
+
+
+ I. LDAP configuration
+ Edit file app/config/auth.conf.php
+ -> Edit values of array \$extldap_config
+
+ - base domain string (ex : 'base_dn' => 'DC=cblue,DC=be')
+ - admin distinguished name (ex : 'admin_dn' =>'CN=admin,dc=cblue,dc=be')
+ - admin password (ex : 'admin_password' => '123456')
+ - ldap host (ex : 'host' => array('1.2.3.4', '2.3.4.5', '3.4.5.6'))
+ - filter (ex : 'filter' => '')
+ - port (ex : 'port' => 389)
+ - protocol version (2 or 3) (ex : 'protocol_version' => 3)
+ - user_search (ex : 'user_search' => 'sAMAccountName=%username%')
+ - encoding (ex : 'encoding' => 'UTF-8')
+ - update_userinfo (ex : 'update_userinfo' => true)
+
+ -> To update correspondences between user and LDAP attributes, edit array \$extldap_user_correspondance
+ Array values are <chamilo_field> => >ldap_field>
+
+ II. Activate LDAP authentication
+ Edit file app/config/configuration.php
+ -> Uncomment lines:
+
+ -
+ \$extAuthSource[\"extldap\"][\"login\"] = \$_configuration['root_sys'].\"main/auth/external_login/login.ldap.php\";
+ - \$extAuthSource[\"extldap\"][\"newUser\"] = \$_configuration['root_sys'].\"main/auth/external_login/newUser.ldap.php\";
+
+ N.B.: LDAP users use same fields than platform users to login.
N.B.: LDAP activation adds a menu External authentication [LDAP] in \"add or modify\" user pages.
";
$ShibbolethMainActivateTitle = "Shibboleth authentication
";
$ShibbolethMainActivateComment = "First of all, you have to configure Shibboleth for your web server.
To configure it for Chamiloedit file main/auth/shibboleth/config/aai.class.php
Modify object $result values with the name of your Shibboleth attributes
- $result->unique_id = 'mail';
- $result->firstname = 'cn';
- $result->lastname = 'uid';
- $result->email = 'mail';
- $result->language = '-';
- $result->gender = '-';
- $result->address = '-';
- $result->staff_category = '-';
- $result->home_organization_type = '-';
- $result->home_organization = '-';
- $result->affiliation = '-';
- $result->persistent_id = '-';
- ...
Go to Plugin to add a configurable 'Shibboleth Login' button for your Chamilo campus.";
@@ -7476,7 +7476,7 @@
$CheckYourEmailAndFollowInstructions = "Check your e-mail and follow the instructions.";
$LinkExpired = "Link expired, please try again.";
$ResetPasswordInstructions = "Instructions for the password change procedure";
-$ResetPasswordCommentWithUrl = "You are receiving this message because you (or someone pretending to be you) have requested a new password to be generated for you.
+$ResetPasswordCommentWithUrl = "You are receiving this message because you (or someone pretending to be you) have requested a new password to be generated for you.
To set a the new password you need to activate it. To do this, please click this link:
%s
If you did not request this procedure, then please ignore this message. If you keep receiving it, please contact the portal administrator.";
$CronRemindCourseExpirationActivateTitle = "Remind Course Expiration cron";
$CronRemindCourseExpirationActivateComment = "Enable the Remind Course Expiration cron";
@@ -7485,8 +7485,8 @@
$CronCourseFinishedActivateText = "Course Finished cron";
$CronCourseFinishedActivateComment = "Activate the Course Finished cron";
$MailCronCourseFinishedSubject = "End of course %s";
-$MailCronCourseFinishedBody = "Dear %s,
Thank you for your participation to course %s. We hope you've acquired new relevant knowledge and enjoyed the course.
-You can check your performance in the course through the My Progress section.
Best regards,
+$MailCronCourseFinishedBody = "Dear %s,
Thank you for your participation to course %s. We hope you've acquired new relevant knowledge and enjoyed the course.
+You can check your performance in the course through the My Progress section.
Best regards,
%s Team";
$GenerateDefaultContent = "Generate default content";
$ThanksForYourSubscription = "Thanks for your subscription";
@@ -7858,7 +7858,7 @@
$VisibleToSelf = "Visible to self";
$VisibleToOthers = "Visible to others";
$UpgradeVersion = "Upgrade Chamilo LMS version";
-$CRSTablesIntro = "The install script has detected tables left over from previous versions that could cause problems during the upgrade process.
+$CRSTablesIntro = "The install script has detected tables left over from previous versions that could cause problems during the upgrade process.
Please click on the button below to delete them. We heavily recommend you do a full backup of them before confirming this last install step.";
$Removing = "Removing";
$CheckForCRSTables = "Check for tables from previous versions";
@@ -7869,7 +7869,7 @@
$YourPasswordContainsSequences = "Your password contains sequences";
$PasswordVeryWeak = "Very weak";
$UserXHasBeenAssignedToBoss = "You have been assigned the learner %s";
-$UserXHasBeenAssignedToBossWithUrlX = "You have been assigned as tutor for the learner %s.
+$UserXHasBeenAssignedToBossWithUrlX = "You have been assigned as tutor for the learner %s.
You can access his profile here: %s";
$ShortName = "Short name";
$Portal = "Portal";
@@ -7939,8 +7939,8 @@
$OnlyXQuestionsPickedRandomly = "Only %s questions will be picked randomly following the quiz configuration.";
$AllowDownloadDocumentsByApiKeyTitle = "Allow download course documents by API Key";
$AllowDownloadDocumentsByApiKeyComment = "Download documents verifying the REST API key for a user";
-$UploadCorrectionsExplanationWithDownloadLinkX = "First you have to download the corrections here .
-After that you have to unzip that file and edit the files as you wanted without changing the file names.
+$UploadCorrectionsExplanationWithDownloadLinkX = "First you have to download the corrections here .
+After that you have to unzip that file and edit the files as you wanted without changing the file names.
Then create a zip file with those modified files and upload it in this form.";
$PostsPendingModeration = "Posts pending moderation";
$OnlyUsersFromCourseSession = "Only users from one course in a session";
@@ -8007,12 +8007,12 @@
$BaseDate = "Dispatch based on the session's start/end dates";
$AfterOrBefore = "After or before";
$Before = "Before";
-$ScheduleAnnouncementDescription = "This form allows scheduling announcements to be sent automatically to the students who are taking a course in a session.
-
-There are two types of announcements that can be sent:
-
-Specific date: In this case a specific day is selected to make the announcement.
-
+$ScheduleAnnouncementDescription = "This form allows scheduling announcements to be sent automatically to the students who are taking a course in a session.
+
+There are two types of announcements that can be sent:
+
+Specific date: In this case a specific day is selected to make the announcement.
+
Based on the start / end date of the session: in this case the number of days to pass before sending the announcement must be indicated. And those days can be associated to before or after the start / end date. For example: 3 days after the start date.";
$MandatorySurveyNoAnswered = "A mandatory survey is waiting your answer. To enter the course, you must first complete the survey.";
$ShowPreviousButton = "Show previous button";
@@ -8033,18 +8033,18 @@
$HrmAssignedUsersCourseList = "Human Resources Manager assigned users course list";
$GoToSurvey = "Go to Survey";
$NotificationCertificateSubject = "Certificate notification";
-$NotificationCertificateTemplate = "((user_first_name)),
-
-Congratulations on the completion of ((course_title)). Your final grade received for this class is ((score)). Please allow a few days for it to reflect in their system. We look forward to seeing you in future classes. If we can assist you further in any way, please feel free to contact us.
-
-Sincerely,
-((author_first_name)), ((author_last_name))
+$NotificationCertificateTemplate = "((user_first_name)),
+
+Congratulations on the completion of ((course_title)). Your final grade received for this class is ((score)). Please allow a few days for it to reflect in their system. We look forward to seeing you in future classes. If we can assist you further in any way, please feel free to contact us.
+
+Sincerely,
+((author_first_name)), ((author_last_name))
((portal_name))";
$SendCertificateNotifications = "Send certificate notification to all users";
$MailSubjectForwardShort = "Fwd";
$ForwardedMessage = "Forwarded message";
$ForwardMessage = "Forward message";
-$MyCoursePageCategoryIntroduction = "You will find below the list of course categories.
+$MyCoursePageCategoryIntroduction = "You will find below the list of course categories.
Click on one of them to see the list of courses it has.";
$FeatureDisabledByAdministrator = "Feature disabled by administrator";
$SubscribeUsersToLpCategory = "Subscribe users to category";
@@ -8149,10 +8149,10 @@
$TheExerciseAutoLaunchSettingIsONStudentsWillBeRedirectToTheExerciseList = "The exercises auto-launch feature configuration is enabled. Learners will be automatically redirected to exercise list.";
$PostedExpirationDate = "Posted deadline for sending the work (Visible to the learner)";
$BossAlertMsgSentToUserXTitle = "Follow up message about student %s";
-$BossAlertUserXSentMessageToUserYWithLinkZ = "Hi,
-
-User %s sent a follow up message about student %s.
-
+$BossAlertUserXSentMessageToUserYWithLinkZ = "Hi,
+
+User %s sent a follow up message about student %s.
+
The message can be seen here %s";
$include_services = "Include services";
$culqi_enable = "Enable culqi";
@@ -8184,8 +8184,8 @@
$PersonalDataDeletionTitle = "Personal data deletion";
$PersonalDataDestructionTitle = "Personal data destruction";
$PersonalDataProfilingTitle = "Personal data profiling";
-$PersonalDataIntroductionText = "We respect your privacy!
-This page unites all aspects of the personal data we might be keeping on you, how we treat it, what you have authorized us to do with it and who we are, in an effort to comply with most data privacy laws available.
+$PersonalDataIntroductionText = "We respect your privacy!
+This page unites all aspects of the personal data we might be keeping on you, how we treat it, what you have authorized us to do with it and who we are, in an effort to comply with most data privacy laws available.
Please read this information carefully and, if you have any question, check the contact details below to ask us for more details.";
$YourDegreeOfCertainty = "Your degree of certainty";
$DegreeOfCertaintyThatMyAnswerIsCorrect = "Degree of certainty that my answer will be considered correct";
@@ -8196,11 +8196,11 @@
$YourResultsByDiscipline = "Your results by discipline";
$ForComparisonYourLastResultToThisTest = "In comparison, your latest results for this test";
$YourOverallResultForTheTest = "Your overall results for the test";
-$QuestionDegreeCertaintyHTMLMail = "You will find your results for test %s below.
-To see the details of these results:
-
-1. Connect to the platform (login/password): To the platform.
-
+$QuestionDegreeCertaintyHTMLMail = "You will find your results for test %s below.
+To see the details of these results:
+
+1. Connect to the platform (login/password): To the platform.
+
2. Click this link: See detailed results.";
$DegreeOfCertaintyVerySure = "Very sure";
$DegreeOfCertaintyVerySureDescription = "Your answer was correct and you were 80% sure about it. Congratulations!";
@@ -8262,8 +8262,8 @@
$AddMultipleUsersToCalendar = "Add multiple users to calendar";
$UpdateCalendar = "Update calendar";
$ControlPoint = "Control point";
-$MessageQuestionCertainty = "Please follow the instructions below to check your results for test %s.
-1. Connect to the platform (username/password) at: %s
+$MessageQuestionCertainty = "Please follow the instructions below to check your results for test %s.
+1. Connect to the platform (username/password) at: %s
2. Click the following link: %s
";
$SessionMinDuration = "Session min duration";
$CanNotTranslate = "Could not translate";
@@ -8315,9 +8315,9 @@
$CreateNewSurveyDoodle = "Create a new Doodle type survey";
$RemoveMultiplicateQuestions = "Remove multiplicated questions";
$MultiplicateQuestions = "Multiplicate questions";
-$QuestionTags = "You can use the tags {{class_name}} and {{student_full_name}} in the question to be able to multiplicate questions.
-On the survey's list page in the action field you have a button to multiplicate question that will look for the {{class_name}} tag and duplicate the question for all the class subscribed to the course and rename it with the name of the class.
-It will also add a page ending to make a new page for each class.
+$QuestionTags = "You can use the tags {{class_name}} and {{student_full_name}} in the question to be able to multiplicate questions.
+On the survey's list page in the action field you have a button to multiplicate question that will look for the {{class_name}} tag and duplicate the question for all the class subscribed to the course and rename it with the name of the class.
+It will also add a page ending to make a new page for each class.
Then it will look for the {{student_full_name}} tag and duplicate the question for all the student in the class (for each class) and rename it with the student's full name.";
$CreateMeeting = "Create meeting poll";
$QuestionForNextClass = "Question for next class";
@@ -8557,8 +8557,8 @@
$CertificatesSessions = "Certificates in sessions";
$SessionFilterReport = "Filter certificates in sessions";
$UpdateUserListXMLCSV = "Update user list";
-$DonateToTheProject = "Chamilo is an Open Source project and this portal is provided to our community free of charge by the Chamilo Association, which pursues the goal of improving the availability of a quality education around the globe.
-However, developing Chamilo and providing this service are expensive and having a little bit of help from you would go a long way to ensure these services improve faster over time.
+$DonateToTheProject = "Chamilo is an Open Source project and this portal is provided to our community free of charge by the Chamilo Association, which pursues the goal of improving the availability of a quality education around the globe.
+However, developing Chamilo and providing this service are expensive and having a little bit of help from you would go a long way to ensure these services improve faster over time.
Creating a course on this portal is one of the most resource-intensive operation. Please consider making a contribution to the Chamilo Association before creating this course to help keep this service free for all!";
$MyStudentPublications = "My assignments";
$AddToEditor = "Add to editor";
@@ -8948,8 +8948,8 @@
$ImportCourseEvents = "Import course events";
$TagsCanBeUsed = "Tags can be used";
$ImportCourseAgendaReminderTitleDefault = "Invitation to the ((course_title)) course";
-$ImportCourseAgendaReminderDescriptionDefault = "Hello ((user_complete_name)).
-You have to take course ((course_title)) between ((date_start)) and ((date_end)). You can access it here: ((course_link)).
+$ImportCourseAgendaReminderDescriptionDefault = "Hello ((user_complete_name)).
+You have to take course ((course_title)) between ((date_start)) and ((date_end)). You can access it here: ((course_link)).
Cheers.
";
$XUserPortfolioItems = "%s's portfolio items";
$Scored = "Scored";
@@ -8976,11 +8976,11 @@
$QuestionsTopic = "Questions topic";
$QuestionsTopicHelp = "The questions topic will be used as the name of the test and will be sent to the AI generator to generate questions in the language configured for this course, asking for them to be generated in the Aiken format so they can easily be imported into this course.";
$AIQuestionsGenerator = "AI Questions Generator";
-$AIQuestionsGeneratorNumberHelper = "Most AI generators are limited in the number of characters they can return, and often your organization will be charged based on the number of characters returned, so please use with moderation, asking for smaller numbers first, then extending as you gain confidence.
+$AIQuestionsGeneratorNumberHelper = "Most AI generators are limited in the number of characters they can return, and often your organization will be charged based on the number of characters returned, so please use with moderation, asking for smaller numbers first, then extending as you gain confidence.
A good number for a first test is 3 questions.";
$LPEndStepAddTagsToShowCertificateOrSkillAutomatically = "Use one (or more) of the following proposed tags to automatically generate a certificate or a skill and show them here when the student gets to this step, which requires all other steps to be finished first.";
-$ImportSessionAgendaReminderDescriptionDefault = "Hi ((user_complete_name)).
-
+$ImportSessionAgendaReminderDescriptionDefault = "Hi ((user_complete_name)).
+
You are invited to follow the session ((session_name)) from the ((date_start)) until the ((date_end)). ";
$ImportSessionAgendaReminderTitleDefault = "Invitation to session ((session_name))";
$FillBlanksCombination = "Fill blanks or form with exact selection";
@@ -9088,4 +9088,4 @@
$SubscribeSessionWhenFinishedFailure = "Subscribe to session at the end of the test when the user has failed";
$progressBasedOnVisiblesLPsInEachCourse = "Progress is calculated based on lessons visible in each course";
$progressBasedOnXVisiblesLPs = "Progress is calculated based on %s lessons visible in the present context.";
-?>
\ No newline at end of file
+?>
diff --git a/main/lang/spanish/trad4all.inc.php b/main/lang/spanish/trad4all.inc.php
index 4549fa04b1c..34176c49d4b 100644
--- a/main/lang/spanish/trad4all.inc.php
+++ b/main/lang/spanish/trad4all.inc.php
@@ -265,11 +265,11 @@
$CleanStudentsResultsBeforeDate = "Eliminar todos los resultados antes de la fecha selecionada";
$HGlossary = "Ayuda del glosario";
$GlossaryContent = "Esta herramienta le permite crear términos de glosario para su curso, los cuales pueden luego ser usados en la herramienta de documentos";
-$ForumContent = "El foro es una herramienta de conversación para el trabajo escrito asíncrono. A diferencia del e-mail, un foro es para conversaciones públicas, semi-públicas o de grupos.
-Para usar el foro de Chamilo, los alumnos del curso pueden simplemente usar su navegador - no requieren de ningun otro tipo de herramienta
-Para organizar los foros, dar click en la herramienta de foros. Las conversaciones se organizan según la estructura siguiente: Categoría > Foro > Tema de conversación > Respuesta. Para permitir a los alumnos participar en los foros de manera ordenada y efectiva, es esencial crear primero categorías y foros. Luego, pertenece a los participantes crear temas de conversación y enviar respuestas. Por defecto, si el curso se ha creado con contenido de ejemplo, el foro contiene una única categoría, un foro, un tema de foro y una respuesta. Puede añadir foros a la categoría, cambiar su titulo o crear otras categorías dentro de las cuales podría entonces crear nuevos foros (no confunda categorías y foros, y recuerde que una categoría que no contiene foros es inútil y no se mostrará a los alumnos).
-La descripción del foro puede incluir una lista de sus miembros, una definición de su propósito, una tarea, un objetivo, un tema, etc.
-Los foros de grupos no son creados por la herramienta de foros directamente, sino por la herramienta de grupos, donde puede determinar si los foros serán públicos o privados, permitiendo al mismo tiempo a los miembros sus grupos compartir documentos y otros recursos
+$ForumContent = "El foro es una herramienta de conversación para el trabajo escrito asíncrono. A diferencia del e-mail, un foro es para conversaciones públicas, semi-públicas o de grupos.
+Para usar el foro de Chamilo, los alumnos del curso pueden simplemente usar su navegador - no requieren de ningun otro tipo de herramienta
+Para organizar los foros, dar click en la herramienta de foros. Las conversaciones se organizan según la estructura siguiente: Categoría > Foro > Tema de conversación > Respuesta. Para permitir a los alumnos participar en los foros de manera ordenada y efectiva, es esencial crear primero categorías y foros. Luego, pertenece a los participantes crear temas de conversación y enviar respuestas. Por defecto, si el curso se ha creado con contenido de ejemplo, el foro contiene una única categoría, un foro, un tema de foro y una respuesta. Puede añadir foros a la categoría, cambiar su titulo o crear otras categorías dentro de las cuales podría entonces crear nuevos foros (no confunda categorías y foros, y recuerde que una categoría que no contiene foros es inútil y no se mostrará a los alumnos).
+La descripción del foro puede incluir una lista de sus miembros, una definición de su propósito, una tarea, un objetivo, un tema, etc.
+Los foros de grupos no son creados por la herramienta de foros directamente, sino por la herramienta de grupos, donde puede determinar si los foros serán públicos o privados, permitiendo al mismo tiempo a los miembros sus grupos compartir documentos y otros recursos
Tips de enseñanza: Un foro de aprendizaje no es lo mismo que un foro de los que ve en internet. De un lado, no es posible que los alumnos modifiquen sus respuestas una vez que un tema de conversación haya sido cerrado. Esto es con el objetivo de valorar su contribución en el foro. Luego, algunos usuarios privilegiados (profesor, tutor, asistente) pueden corregir directamente las respuestas dentro del foro.
Para hacerlo, pueden seguir el procedimiento siguiente:
dar click en el icono de edición (lapiz amarillo) y marcarlo usando una funcionalidad de edición (color, subrayado, etc). Finalmente, otros alumnos pueden beneficiar de esta corrección visualizando el foro nuevamente. La misa idea puede ser aplicada entre alumnos pero requiere usar la herramienta de citación para luego indicar los elementos incorrectos (ya que no pueden editar directamente la respuesta de otro alumno)
";
$HForum = "Ayuda del foro";
$LoginToGoToThisCourse = "Conectarse para entrar al curso";
@@ -330,19 +330,19 @@
$IfSessionExistsUpdate = "Si la sesión existe, actualizarla con los datos del archivo";
$CreatedByXYOnZ = "Creado/a por %s el %s";
$LoginWithExternalAccount = "Ingresar con una cuenta externa";
-$ImportAikenQuizExplanationExample = "Este es el texto de la pregunta 1
-A. Respuesta 1
-B. Respuesta 2
-C. Respuesta 3
-ANSWER: B
-
-Este es el texto de la pregunta 2 (notese la línea blanca arriba)
-A. Respuesta 1
-B. Respuesta 2
-C. Respuesta 3
-D. Respuesta 4
-ANSWER: D
-ANSWER_EXPLANATION: Este es un texto opcional de retroalimentación que aparecerá al costado de la respuesta correcta.
+$ImportAikenQuizExplanationExample = "Este es el texto de la pregunta 1
+A. Respuesta 1
+B. Respuesta 2
+C. Respuesta 3
+ANSWER: B
+
+Este es el texto de la pregunta 2 (notese la línea blanca arriba)
+A. Respuesta 1
+B. Respuesta 2
+C. Respuesta 3
+D. Respuesta 4
+ANSWER: D
+ANSWER_EXPLANATION: Este es un texto opcional de retroalimentación que aparecerá al costado de la respuesta correcta.
SCORE: 20";
$ImportAikenQuizExplanation = "El formato Aiken es un simple formato texto (archivo .txt) con varios bloques de preguntas, cada bloque separado por una línea blanca. La primera línea es la pregunta. Las líneas de respuestas tienen un prefijo de letra y punto, y la respuesta correcta sigue, con el prefijo 'ANSWER:'. Ver ejemplo a continuación.";
$ExerciseAikenErrorNoAnswerOptionGiven = "El archivo importado tiene por lo menos una pregunta sin respuesta (o las respuestas no incluyen la letra de prefijo requerida). Asegúrese de que cada pregunta tengo por lo mínimo una respuesta y que esté prefijada por una letra y un punto o una paréntesis, como sigue: A. Respuesta uno";
@@ -432,16 +432,16 @@
$YourVersionNotUpToDate = "Su versión no está actualizada";
$Hotpotatoes = "Hotpotatoes";
$ZeroMeansNoQuestionWillBeSelectedMinusOneMeansThatAllQuestionsWillBeSelected = "-1 = Todas las preguntas serán seleccionadas. 0 = Ninguna pregunta será seleccionada.";
-$EmailNotificationTemplateDescription = "Puede modificar el correo enviado a los usuarios al terminar el ejercicio. Puede usar los siguientes términos:
-
-{{ student.username }}
-{{ student.firstname }}
-{{ student.lastname }}
-{{ student.official_code }}
-{{ exercise.title }}
-{{ exercise.start_time }}
-{{ exercise.end_time }}
-{{ course.title }}
+$EmailNotificationTemplateDescription = "Puede modificar el correo enviado a los usuarios al terminar el ejercicio. Puede usar los siguientes términos:
+
+{{ student.username }}
+{{ student.firstname }}
+{{ student.lastname }}
+{{ student.official_code }}
+{{ exercise.title }}
+{{ exercise.start_time }}
+{{ exercise.end_time }}
+{{ course.title }}
{{ course.code }}";
$EmailNotificationTemplate = "Plantilla del correo electrónico enviado al usuario al terminar el ejercicio.";
$ExerciseEndButtonDisconnect = "Desconexión de la plataforma";
@@ -2641,16 +2641,16 @@
$WithoutAchievedSkills = "Sin competencias logradas";
$TypeMessage = "Por favor, escriba su mensaje";
$ConfirmReset = "¿Seguro que quiere borrar todos los mensajes?";
-$MailCronCourseExpirationReminderBody = "Estimado %s,
-
-Ha llegado a nuestra atención que no ha completado el curso %s aunque su fecha de vencimiento haya sido establecida al %s, quedando %s días para terminarlo.
-
-Le recordamos que solo tiene la posibilidad de seguir este curso una vez al año, razón por la cual le invitamos con insistencia a completar su curso en el plazo que queda.
-
-Puede regresar al curso conectándose a la plataforma en esta dirección: %s
-
-Saludos cordiales,
-
+$MailCronCourseExpirationReminderBody = "Estimado %s,
+
+Ha llegado a nuestra atención que no ha completado el curso %s aunque su fecha de vencimiento haya sido establecida al %s, quedando %s días para terminarlo.
+
+Le recordamos que solo tiene la posibilidad de seguir este curso una vez al año, razón por la cual le invitamos con insistencia a completar su curso en el plazo que queda.
+
+Puede regresar al curso conectándose a la plataforma en esta dirección: %s
+
+Saludos cordiales,
+
El equipo de %s";
$MailCronCourseExpirationReminderSubject = "Urgente: Recordatorio de vencimiento de curso %s";
$ExerciseAndLearningPath = "Ejercicios y lecciones";
@@ -5830,7 +5830,7 @@
$ConfigureDashboardPlugin = "Configurar el plugin del Panel de control";
$EditBlocks = "Editar bloques";
$Never = "Nunca";
-$YourAccountIsActiveYouCanLoginAndCheckYourCourses = "Estimado usuario
+$YourAccountIsActiveYouCanLoginAndCheckYourCourses = "Estimado usuario
Usted no esta activo en la plataforma, por favor inicie sesión nuevamente y revise sus cursos";
$SessionFields = "Campos de sesión";
$CopyLabelSuffix = "Copia";
@@ -5888,12 +5888,12 @@
$IsThisWhatYouWereLookingFor = "Corresponde a lo que busca?";
$WhatSkillsAreYouLookingFor = "Que competencias busca?";
$ProfileSearch = "Búsqueda de perfil";
-$CourseSettingsRegisterDirectLink = "Si su curso es público o abierto, puede usar el enlace directo abajo para invitar a nuevos usuarios, de tal manera que estén enviados directamente en este curso al finalizar el formulario de registro al portal. Si desea, puede añadir el parámetro e=1 a este enlace, remplazando \"1\" por el ID del ejercicio, para mandar los usuarios directamente a un ejercicio o examen. El ID del ejercicio se puede obtener en la URL del ejercicio cuando le de clic para entrar al mismo.
+$CourseSettingsRegisterDirectLink = "Si su curso es público o abierto, puede usar el enlace directo abajo para invitar a nuevos usuarios, de tal manera que estén enviados directamente en este curso al finalizar el formulario de registro al portal. Si desea, puede añadir el parámetro e=1 a este enlace, remplazando \"1\" por el ID del ejercicio, para mandar los usuarios directamente a un ejercicio o examen. El ID del ejercicio se puede obtener en la URL del ejercicio cuando le de clic para entrar al mismo.
%s";
$DirectLink = "Enlace directo";
$here = "aqui";
$GoAheadAndBrowseOurCourseCatalogXOnceRegisteredYouWillSeeTheCourseHereX = "Adelante, pulsa %s para acceder al catálogo de cursos e inscribirte en un curso que te interese. Una vez inscrito/a, el curso aparecerá en esta pantalla en lugar de este mensaje.";
-$HelloXAsYouCanSeeYourCourseListIsEmpty = "Hola %s, te damos la bienvenida,
+$HelloXAsYouCanSeeYourCourseListIsEmpty = "Hola %s, te damos la bienvenida,
Como puedes ver, tu lista de cursos todavía está vacía. Esto es porque todavía no estás inscrito/a en ningún curso.";
$UnsubscribeUsersAlreadyAddedInCourse = "Desinscribir todos los alumnos ya inscritos";
$ImportUsers = "Importar usuarios";
@@ -6106,7 +6106,7 @@
$EnableCourseValidation = "Solicitud de cursos";
$EnableCourseValidationComment = "Cuando la solicitud de cursos está activada, un profesor no podrá crear un curso por si mismo sino que tendrá que rellenar una solicitud. El administrador de la plataforma revisará la solicitud y la aprobará o rechazará. Esta funcionalidad se basa en mensajes de correo electrónico automáticos por lo que debe asegurarse de que su instalación de Chamilo usa un servidor de correo y una dirección de correo dedicada a ello.";
$CourseRequestAskInfoEmailSubject = "%s Solicitud de información %s";
-$CourseRequestAskInfoEmailText = "Hemos recibido su solicitud para la creación de un curso con el código %s. Antes de considerar su aprobación necesitamos alguna información adicional.\n\n
+$CourseRequestAskInfoEmailText = "Hemos recibido su solicitud para la creación de un curso con el código %s. Antes de considerar su aprobación necesitamos alguna información adicional.\n\n
Por favor, realice una breve descripción del contenido del curso, los objetivos y los estudiantes u otro tipo de usuarios que vayan a participar. Si es su caso, mencione el nombre de la institución u órgano en nombre de la cual Usted ha hecho la solicitud.";
$CourseRequestAcceptedEmailSubject = "%s La petición del curso %s ha sido aprobada";
$CourseRequestAcceptedEmailText = "Su solicitud del curso %s ha sido aprobada. Un nuevo curso %s ha sido creado y Usted ha quedado inscrito en él como profesor.\n\nPodrá acceder al curso creado desde: %s";
@@ -6157,9 +6157,9 @@
$LastConnexionDate = "Fecha de la última conexión";
$ToolVideoconference = "Videoconferencia";
$BigBlueButtonEnableTitle = "Herramienta de videoconferencia BigBlueButton";
-$BigBlueButtonEnableComment = "Seleccione si desea habilitar la herramienta de videoconferencia BigBlueButton. Una vez activada, se mostrará como una herramienta en la página principal todos los curso. Los profesores podrán lanzar una videoconferencia en cualquier momento, pero los estudiantes sólo podrán unirse a una ya lanzada.
-Si no dispone de un servidor BigBlueButton, pruebe a
-configurar uno o pida ayuda a los proveedores oficiales de Chamilo.
+$BigBlueButtonEnableComment = "Seleccione si desea habilitar la herramienta de videoconferencia BigBlueButton. Una vez activada, se mostrará como una herramienta en la página principal todos los curso. Los profesores podrán lanzar una videoconferencia en cualquier momento, pero los estudiantes sólo podrán unirse a una ya lanzada.
+Si no dispone de un servidor BigBlueButton, pruebe a
+configurar uno o pida ayuda a los proveedores oficiales de Chamilo.
BigBlueButton es libre, pero su instalación requiere ciertas habilidades técnicas que no todo el mundo posee. Puede instalarlo por su cuenta o buscar ayuda profesional con el consiguiente costo. En la lógica del software libre, nosotros le ofrecemos las herramientas para hacer más fácil su trabajo y le recomendamos profesionales (los proveedores oficiales de Chamilo) que serán capaces de ayudarle.";
$BigBlueButtonHostTitle = "Servidor BigBlueButton";
$BigBlueButtonHostComment = "Este es el nombre del servidor donde su servidor BigBlueButton está ejecutándose. Puede ser localhost, una dirección IP (ej., 192.168.14.54) o un nombre de dominio (por ej., my.video.com).";
@@ -6170,14 +6170,14 @@
$CreateAssignmentPage = "Esto creará una página wiki especial en la que el profesor describe la tarea, la cual se enlazará automáticamente a las páginas wiki donde los estudiantes la realizarán. Tanto las página del docente como la de los estudiantes se crean automáticamente. En este tipo de tareas los estudiantes sólo podrán editar y ver sus páginas, aunque esto puede cambiarlo si lo desea.";
$UserFolders = "Carpetas de los usuarios";
$UserFolder = "Carpeta del usuario";
-$HelpUsersFolder = "INFORMACIÓN SOLO VISIBLE POR EL PROFESORADO:\nLa carpeta de los usuarios contiene una carpeta de cada usuario que haya accedido a ella a través de la herramienta documentos, o bien que haya enviado algún fichero al curso a través del editor, salvo desde la herramienta grupos. Si ninguna de las dos circunstancias se ha producido la carpeta del usuario no estará creada. En el caso de los grupos, los archivos que se envíen a través del editor se depositarán en la carpeta de cada grupo, la cual sólo será accesible por los alumnos desde la herramienta grupos.
-
-La carpeta de los usuarios y las carpetas que contiene de cada uno de ellos, se mantendrán por ocultas por defecto, si bien cada alumno podrá ver el contenido de la suya cuando acceda a inspeccionar los archivos del servidor a través del editor. No obstante, si un alumno conoce la dirección de un archivo de la carpeta de otro alumno podrá visualizarlo.
-
-Si se hace visible la carpeta de los usuarios y la carpeta de uno o más alumnos, el resto de los alumnos podrán ver todo su contenido. En este caso, el alumno propietario de la carpeta también podrá desde la herramienta documentos (sólo dentro de su carpeta): crear y editar documentos web, convertir un documento web en una plantilla para uso personal, crear y editar dibujos SVG y PNG, grabar archivos de audio en formato WAV, convertir texto en audio en formato MP3, realizar capturas a través de su webcam, enviar documentos, crear carpetas, mover carpetas y archivos, borrar carpetas y archivos, y descargar copias de seguridad de su carpeta.
-
-Por otra parte, la herramienta documentos se sincroniza con el gestor de archivos del editor web, así que los cambios en la gestión de los documentos realizados en una u otra afectarán a ambas.
-
+$HelpUsersFolder = "INFORMACIÓN SOLO VISIBLE POR EL PROFESORADO:\nLa carpeta de los usuarios contiene una carpeta de cada usuario que haya accedido a ella a través de la herramienta documentos, o bien que haya enviado algún fichero al curso a través del editor, salvo desde la herramienta grupos. Si ninguna de las dos circunstancias se ha producido la carpeta del usuario no estará creada. En el caso de los grupos, los archivos que se envíen a través del editor se depositarán en la carpeta de cada grupo, la cual sólo será accesible por los alumnos desde la herramienta grupos.
+
+La carpeta de los usuarios y las carpetas que contiene de cada uno de ellos, se mantendrán por ocultas por defecto, si bien cada alumno podrá ver el contenido de la suya cuando acceda a inspeccionar los archivos del servidor a través del editor. No obstante, si un alumno conoce la dirección de un archivo de la carpeta de otro alumno podrá visualizarlo.
+
+Si se hace visible la carpeta de los usuarios y la carpeta de uno o más alumnos, el resto de los alumnos podrán ver todo su contenido. En este caso, el alumno propietario de la carpeta también podrá desde la herramienta documentos (sólo dentro de su carpeta): crear y editar documentos web, convertir un documento web en una plantilla para uso personal, crear y editar dibujos SVG y PNG, grabar archivos de audio en formato WAV, convertir texto en audio en formato MP3, realizar capturas a través de su webcam, enviar documentos, crear carpetas, mover carpetas y archivos, borrar carpetas y archivos, y descargar copias de seguridad de su carpeta.
+
+Por otra parte, la herramienta documentos se sincroniza con el gestor de archivos del editor web, así que los cambios en la gestión de los documentos realizados en una u otra afectarán a ambas.
+
Así pues, la carpeta de usuario no sólo es un lugar para depositar los archivos, sino que se convierte en un completo gestor de los documentos que los estudiantes utilizan durante el curso. Además, recuerde que cualquier usuario podrá copiar un archivo, que sea visible, de cualquier carpeta de la herramienta documentos (sea o no la suya) a su portafolios o área personal de documentos de la red social, donde estará disponible para que lo pueda usar en otros cursos.";
$HelpFolderChat = "INFORMACIÓN SOLO VISIBLE POR EL PROFESORADO:\nEsta carpeta contiene todas las sesiones que se han realizado en el chat. Aunque muchas veces las sesiones en el chat pueden ser triviales, en otras pueden ser dignas de ser tratadas como un documento más de trabajo. Para ello, sin cambiar la visibilidad de esta carpeta, haga visible el archivo y enlácelo donde considere oportuno. No se recomienda hacer visible esta carpeta.";
$HelpFolderCertificates = "INFORMACIÓN SOLO VISIBLE POR EL PROFESORADO:\nEsta carpeta contiene los distintos modelos de certificados que se han creado para la herramienta Evaluaciones. No se recomienda hacer visible esta carpeta.";
@@ -6191,7 +6191,7 @@
$Text2AudioTitle = "Activar servicios de conversión de texto en audio";
$Text2AudioComment = "Herramienta on-line para convertir texto en voz. Utiliza tecnología y sistemas de síntesis del habla para ofrecer recursos de voz.";
$ShowUsersFoldersTitle = "Mostrar las carpetas de los usuarios en la herramienta documentos";
-$ShowUsersFoldersComment = "
+$ShowUsersFoldersComment = "
Esta opción le permitirá mostrar u ocultar a los profesores las carpetas que el sistema genera para cada usuario que visita la herramienta documentos o envía un archivo a través del editor web. Si muestra estas carpetas a los profesores, éstos podrán hacerlas visibles o no a los estudiantes y permitirán a cada estudiante tener un lugar específico en el curso donde, no sólo almacenar documentos, sino donde también podrán crear y modificar páginas web y poder exportarlas a pdf, realizar dibujos, realizar plantillas web personales, enviar archivos, así como crear, mover y eliminar subdirectorios y archivos, y sacar copias de seguridad de sus carpetas. Cada usuario del curso dispondrá de un completo gestor de documentos. Además, recuerde que cualquier usuario podrá copiar un archivo, que sea visible, de cualquier carpeta de la herramienta documentos (sea o no la suya) a su portafolios o área personal de documentos de la red social, donde estará disponible para que lo pueda usar en otros cursos.";
$ShowDefaultFoldersTitle = "Mostrar en la herramienta documentos las carpetas que contienen los recursos multimedia suministrados por defecto.";
$ShowDefaultFoldersComment = "Las carpetas de archivos multimedia suministradas por defecto contienen archivos de libre distribución organizados en las categorías de video, audio, imagen y animaciones flash que para utilizar en sus cursos. Aunque las oculte en la herramienta documentos, podrá seguir usándolas en el editor web de la plataforma.";
@@ -6227,8 +6227,8 @@
$HelpPediaphon = "Admite textos con varios miles de caracteres, pudiéndose seleccionar varios tipos de voz masculinas y femeninas (según el idioma). Los archivos de audio se generarán y guardarán automáticamente en el directorio de Chamilo en el que Usted actualmente se encuentra.";
$FirstSelectALanguage = "Primero seleccione un idioma";
$MoveUserStats = "Mover los resultados de los usuarios desde/hacia una sesión de formación";
-$CompareUserResultsBetweenCoursesAndCoursesInASession = "Esta herramienta avanzada le permite mejorar manualmente el seguimiento de los resultados de los usuarios cuando cambia de un modelo de cursos a un modelo de sesiones de formación. En una mayoría de casos, no necesitará usarla.
-En esta pantalla, puede comparar los resultados que los usuarios tienen en el contexto de un curso y en el contexto del mismo curso dentro de una sesión de formación.
+$CompareUserResultsBetweenCoursesAndCoursesInASession = "Esta herramienta avanzada le permite mejorar manualmente el seguimiento de los resultados de los usuarios cuando cambia de un modelo de cursos a un modelo de sesiones de formación. En una mayoría de casos, no necesitará usarla.
+En esta pantalla, puede comparar los resultados que los usuarios tienen en el contexto de un curso y en el contexto del mismo curso dentro de una sesión de formación.
Una vez que decidida cuál es el mejor contexto para el seguimiento (resultados de ejercicios y seguimiento de lecciones), podrá moverlo de un curso a una sesión.";
$PDFExportWatermarkEnableTitle = "Marcas de agua en las exportaciones a PDF";
$PDFExportWatermarkEnableComment = "Si activa esta opción podrá cargar una imagen o un texto que serán automáticamente añadidos como marca de agua en los documentos resultantes de todas las exportaciones a PDF que realice el sistema.";
@@ -6363,8 +6363,8 @@
$MailNotifyMessage = "Notificar los mensajes por correo electrónico";
$MailNotifyGroupMessage = "Notificar en los grupos los mensajes por correo electrónico";
$SearchEnabledTitle = "Búsqueda a texto completo";
-$SearchEnabledComment = "Esta funcionalidad permite la indexación de la mayoría de los documentos subidos a su portal, con lo que permite la búsqueda para los usuarios.
-Esta funcionalidad no indexa los documentos que ya fueron subidos, por lo que es importante (si se quiere) activarla al comienzo de su implementación.
+$SearchEnabledComment = "Esta funcionalidad permite la indexación de la mayoría de los documentos subidos a su portal, con lo que permite la búsqueda para los usuarios.
+Esta funcionalidad no indexa los documentos que ya fueron subidos, por lo que es importante (si se quiere) activarla al comienzo de su implementación.
Una vez activada, una caja de búsqueda aparecerá en la lista de cursos de cada usuario. Buscar un término específico suministra una lista de documentos, ejercicios o temas de foro correspondientes, filtrados dependiendo de su disponibilidad para el usuario.";
$SpecificSearchFieldsAvailable = "Campos de búsqueda personalizados disponibles";
$XapianModuleInstalled = "Módulo Xapian instalado";
@@ -6662,7 +6662,7 @@
$ForumCategories = "Categorías de foro";
$Copy = "Copiar";
$ArchiveDirCleanup = "Limpieza de caché y archivos temporales";
-$ArchiveDirCleanupDescr = "Chamilo guarda una copia de los archivos temporales que genera (para los backups, las exportaciones, las copias, etc) dentro del directorio app/cache/. Pasado un tiempo, todo esto puede llegar a ocupar bastante espacio en el disco duro. Si hace clic en el siguiente botón ejecutará una limpieza manual de este directorio. Esta operación debería ser realizada regularmente mediante la utilidad cron de Linux, pero si esto no es posible en su entorno puede utilizar esta página para eliminar todos los archivos temporales cada cierto tiempo.
+$ArchiveDirCleanupDescr = "Chamilo guarda una copia de los archivos temporales que genera (para los backups, las exportaciones, las copias, etc) dentro del directorio app/cache/. Pasado un tiempo, todo esto puede llegar a ocupar bastante espacio en el disco duro. Si hace clic en el siguiente botón ejecutará una limpieza manual de este directorio. Esta operación debería ser realizada regularmente mediante la utilidad cron de Linux, pero si esto no es posible en su entorno puede utilizar esta página para eliminar todos los archivos temporales cada cierto tiempo.
Esta opción limpia el caché de temas también.";
$ArchiveDirCleanupProceedButton = "Ejecutar la limpieza";
$ArchiveDirCleanupSucceeded = "El contenido del directorio app/cache/ ha sido eliminado.";
@@ -7011,69 +7011,69 @@
$GradebookLockedAlert = "Esta evaluación ha sido bloqueada y no puede ser desbloqueada. Si necesita realmente desbloquearla, por favor contacte el administrador de la plataforma, explicando su razón (sino podría ser considerado como un intento de fraude).";
$GradebookEnableLockingTitle = "Activar bloqueo de Evaluaciones por los profesores";
$GradebookEnableLockingComment = "Una vez activada, esta opción permitirá a los profesores bloquear cualquier evaluación dentro de su curso. Esto prohibirá al profesor cualquier modificación posterior de los resultados de sus alumnos en los recursos usados para esta evaluación: exámenes, lecciones, tareas, etc. El único rol autorizado a desbloquear una evaluación es el administrador. El profesor estará informado de esta posibilidad al intentar desbloquear la evaluación. El bloqueo como el desbloqueo estarán guardados en el registro de actividades importantes del sistema.";
-$LdapDescriptionComment = "
-
- - Autentificación LDAP:
- Véase I. a continuación para configurar LDAP
- Véase II. a continuación para activar la autentificación LDAP
-
- - Actualizar los atributos de usuario, con los datos de LDAP, después de la autentificación CAS (véase Configuración CAS):
- Véase I. a continuación para configurar LDAP
- Para gestionar la autentificación de usuarios por CAS, no se requere la activación de LDAP.
-
-
-
- I. Configuración de LDAP
- Editar el archivo app/config/auth.conf.php
- -> Editar los valores del array \$extldap_config
-
- - base domain string (p. ej.: 'base_dn' => 'DC=cblue,DC=be')
- - admin distinguished name (p. ej.: 'admin_dn' =>'CN=admin,dc=cblue,dc=be')
- - admin password (p. ej.: 'admin_password' => '123456')
- - ldap host (p. ej.: 'host' => array('1.2.3.4', '2.3.4.5', '3.4.5.6'))
- - filter (p. ej.: 'filter' => '')
- - port (p. ej.: 'port' => 389)
- - protocol version (2 or 3) (p. ej.: 'protocol_version' => 3)
- - user_search (p. ej.: 'user_search' => 'sAMAccountName=%username%')
- - encoding (p. ej.: 'encoding' => 'UTF-8')
- - update_userinfo (p. ej.: 'update_userinfo' => true)
-
- -> Para actualizar las correspondencias entre los atributos de usuario y LDAP, editar el array \$extldap_user_correspondance
- Los valores del Array son <chamilo_field> => >ldap_field>
-
- II. Activar la atenticación LDAP
- Editar el archivo app/config/configuration.php
- -> Descomentar las líneas:
-
- -
- \$extAuthSource[\"extldap\"][\"login\"] = \$_configuration['root_sys'].\"main/auth/external_login/login.ldap.php\";
- - \$extAuthSource[\"extldap\"][\"newUser\"] = \$_configuration['root_sys'].\"main/auth/external_login/newUser.ldap.php\";
-
- N.B.: Los usuarios de LDAP usan los mismos campos que los usuarios de la plataforma para iniciar sesión.
+$LdapDescriptionComment = "
+
+ - Autentificación LDAP:
+ Véase I. a continuación para configurar LDAP
+ Véase II. a continuación para activar la autentificación LDAP
+
+ - Actualizar los atributos de usuario, con los datos de LDAP, después de la autentificación CAS (véase Configuración CAS):
+ Véase I. a continuación para configurar LDAP
+ Para gestionar la autentificación de usuarios por CAS, no se requere la activación de LDAP.
+
+
+
+ I. Configuración de LDAP
+ Editar el archivo app/config/auth.conf.php
+ -> Editar los valores del array \$extldap_config
+
+ - base domain string (p. ej.: 'base_dn' => 'DC=cblue,DC=be')
+ - admin distinguished name (p. ej.: 'admin_dn' =>'CN=admin,dc=cblue,dc=be')
+ - admin password (p. ej.: 'admin_password' => '123456')
+ - ldap host (p. ej.: 'host' => array('1.2.3.4', '2.3.4.5', '3.4.5.6'))
+ - filter (p. ej.: 'filter' => '')
+ - port (p. ej.: 'port' => 389)
+ - protocol version (2 or 3) (p. ej.: 'protocol_version' => 3)
+ - user_search (p. ej.: 'user_search' => 'sAMAccountName=%username%')
+ - encoding (p. ej.: 'encoding' => 'UTF-8')
+ - update_userinfo (p. ej.: 'update_userinfo' => true)
+
+ -> Para actualizar las correspondencias entre los atributos de usuario y LDAP, editar el array \$extldap_user_correspondance
+ Los valores del Array son <chamilo_field> => >ldap_field>
+
+ II. Activar la atenticación LDAP
+ Editar el archivo app/config/configuration.php
+ -> Descomentar las líneas:
+
+ -
+ \$extAuthSource[\"extldap\"][\"login\"] = \$_configuration['root_sys'].\"main/auth/external_login/login.ldap.php\";
+ - \$extAuthSource[\"extldap\"][\"newUser\"] = \$_configuration['root_sys'].\"main/auth/external_login/newUser.ldap.php\";
+
+ N.B.: Los usuarios de LDAP usan los mismos campos que los usuarios de la plataforma para iniciar sesión.
N.B.: La activación LDAP agrega un menú \"Autentificación externa\" [LDAP] en las páginas de \"agregar o modificar\" usuarios.
";
$ShibbolethMainActivateTitle = "Autenticación Shibboleth
";
-$ShibbolethMainActivateComment = "En primer lugar, tiene que configurar Shibboleth para su servidor web.
-
-Para configurarlo en Chamilo:
-
-editar el archivo main/auth/shibboleth/config/aai.class.php
-
-Modificar valores de \$result con el nombre de los atributos de Shibboleth
-
- \$result->unique_id = 'mail';
- \$result->firstname = 'cn';
- \$result->lastname = 'uid';
- \$result->email = 'mail';
- \$result->language = '-';
- \$result->gender = '-';
- \$result->address = '-';
- \$result->staff_category = '-';
- \$result->home_organization_type = '-';
- \$result->home_organization = '-';
- \$result->affiliation = '-';
- \$result->persistent_id = '-';
- ...
-
+$ShibbolethMainActivateComment = "En primer lugar, tiene que configurar Shibboleth para su servidor web.
+
+Para configurarlo en Chamilo:
+
+editar el archivo main/auth/shibboleth/config/aai.class.php
+
+Modificar valores de \$result con el nombre de los atributos de Shibboleth
+
+ \$result->unique_id = 'mail';
+ \$result->firstname = 'cn';
+ \$result->lastname = 'uid';
+ \$result->email = 'mail';
+ \$result->language = '-';
+ \$result->gender = '-';
+ \$result->address = '-';
+ \$result->staff_category = '-';
+ \$result->home_organization_type = '-';
+ \$result->home_organization = '-';
+ \$result->affiliation = '-';
+ \$result->persistent_id = '-';
+ ...
+
Ir a Plug-in para añadir el botón 'Shibboleth Login' en su campus de Chamilo.";
$LdapDescriptionTitle = "Autentificacion LDAP
";
$FacebookMainActivateTitle = "Autenticación con Facebook";
@@ -7502,8 +7502,8 @@
$CheckYourEmailAndFollowInstructions = "Revise su correo electrónico y siga las instrucciones.";
$LinkExpired = "Enlace expirado, por favor vuelva a iniciar el proceso.";
$ResetPasswordInstructions = "Instrucciones para el procedimiento de cambio de contraseña";
-$ResetPasswordCommentWithUrl = "Ha recibido este mensaje porque Usted (o alguien que intenta hacerse pasar por Ud) ha pedido que su contraseña sea generada nuevamente. Para configurar una nueva contraseña, necesita activarla. Para ello, por favor de clic en el siguiente enlace: %s.
-
+$ResetPasswordCommentWithUrl = "Ha recibido este mensaje porque Usted (o alguien que intenta hacerse pasar por Ud) ha pedido que su contraseña sea generada nuevamente. Para configurar una nueva contraseña, necesita activarla. Para ello, por favor de clic en el siguiente enlace: %s.
+
Si no ha pedido un cambio de contraseña, puede ignorar este mensaje. No obstante, si vuelve a recibirlo repetidamente, por favor comuníquese con el administrador de su portal.";
$CronRemindCourseExpirationActivateTitle = "Cron de Recordatorio de Expiración de Curso";
$CronRemindCourseExpirationActivateComment = "Habilitar el cron de envío de recordatorio de expiración de cursos";
@@ -7512,14 +7512,14 @@
$CronCourseFinishedActivateText = "Cron de finalización de curso";
$CronCourseFinishedActivateComment = "Activar el cron de finalización de curso";
$MailCronCourseFinishedSubject = "Fin del curso %s";
-$MailCronCourseFinishedBody = "Estimado %s,
-
-Gracias por participar en el curso %s. Esperamos que hayas aprendido y disfrutado del curso.
-
-Puedes ver tu rendimiento a lo largo del curso en la sección Mi Avance.
-
-Saludos cordiales,
-
+$MailCronCourseFinishedBody = "Estimado %s,
+
+Gracias por participar en el curso %s. Esperamos que hayas aprendido y disfrutado del curso.
+
+Puedes ver tu rendimiento a lo largo del curso en la sección Mi Avance.
+
+Saludos cordiales,
+
El equipo de %s";
$GenerateDefaultContent = "Generar contenido por defecto";
$ThanksForYourSubscription = "¡Gracias por su suscripción!";
@@ -7741,8 +7741,8 @@
$LoadTermConditionsSectionTitle = "Cargar la sección de términos y condiciones";
$LoadTermConditionsSectionDescription = "El acuerdo legal aparecerá durante el login o cuando entre a un curso.";
$SendTermsSubject = "Su contrato de aprendizaje está listo para firmar.";
-$SendTermsDescriptionToUrlX = "Hola,
-
+$SendTermsDescriptionToUrlX = "Hola,
+
Su tutor le ha enviado s contrato de aprendizaje. Puede ir a firmarlo siguiendo esta URL: %s";
$UserXSignedTheAgreement = "El usuario %s ha firmado el acuerdo.";
$UserXSignedTheAgreementTheY = "El usuario %s ha firmado el acuerdo el %s.";
@@ -7893,7 +7893,7 @@
$VisibleToSelf = "Visible para si mismo";
$VisibleToOthers = "Visible por otros";
$UpgradeVersion = "Actualizar la versión de Chamilo LMS";
-$CRSTablesIntro = "El script de instalación ha detectado tablas procedentes de versiones anteriores que podrían causar problemas durante el proceso de actualización.
+$CRSTablesIntro = "El script de instalación ha detectado tablas procedentes de versiones anteriores que podrían causar problemas durante el proceso de actualización.
Por favor, haga clic en el botón de abajo para eliminarlas. Recomendamos seriamente hacer una copia de seguridad completa de estas antes de confirmar este último paso de instalación.";
$Removing = "Removiendo";
$CheckForCRSTables = "Comprobar si hay tablas de versiones anteriores";
@@ -8039,12 +8039,12 @@
$BaseDate = "Envío en base a fecha de inicio/fin de la sesión";
$AfterOrBefore = "Antes o después";
$Before = "Antes de";
-$ScheduleAnnouncementDescription = "Este formulario permite programar anuncios/avisos para que sean enviados de manera automática a los alumnos que están realizando un curso en una sesión.
-
-Existe dos tipos de anuncios que se pueden enviar:
-
-Envío en una fecha concreta: En este caso se selecciona un día concreto para hacer el envío.
-
+$ScheduleAnnouncementDescription = "Este formulario permite programar anuncios/avisos para que sean enviados de manera automática a los alumnos que están realizando un curso en una sesión.
+
+Existe dos tipos de anuncios que se pueden enviar:
+
+Envío en una fecha concreta: En este caso se selecciona un día concreto para hacer el envío.
+
Envío en base a la fecha de inicio/finalización de la sesión: en este caso se ha de indicar el número de días que han de pasar antes de enviar el anuncio. Y esos días pueden estar asociados a antes o después de la fecha de inicio/finalización. Por ejemplo: 3 días después de fecha de inicio.";
$MandatorySurveyNoAnswered = "Usted tiene pendiente una encuesta obligatoria. Para ingresar al curso, primero deberá completarla";
$ShowPreviousButton = "Mostrar el botón 'anterior'";
@@ -8074,8 +8074,8 @@
$FeatureDisabledByAdministrator = "Funcionalidad desactivada por el administrador de la plataforma";
$SubscribeUsersToLpCategory = "Suscribir usuarios a la categoría de lecciones";
$SubscribeGroupsToLpCategory = "Suscribir grupos a la categoría de lecciones";
-$UserLpSubscriptionDescription = "Tenga en cuenta que si la inscripción de los usuarios en una categoría está disponible, entonces si ya ha suscrito a usuarios a la categoría, esta inuscripcion en la categoria sobrepasara la inscripción de los usuarios aquí en la leccion
-
+$UserLpSubscriptionDescription = "Tenga en cuenta que si la inscripción de los usuarios en una categoría está disponible, entonces si ya ha suscrito a usuarios a la categoría, esta inuscripcion en la categoria sobrepasara la inscripción de los usuarios aquí en la leccion
+
Tenga en cuenta que si la inscripción de los usuarios en una categoría está disponible, entonces, si ya ha suscrito a usuarios en la categoría, anulará la inscripción de usuarios aquí en la lección";
$UserLpCategorySubscriptionDescription = "Tenga en cuenta que la inscripción de los usuarios en una categoría sobre pasa la inscripción de los usuarios en las lecciones";
$FieldTypeSelectWithTextField = "Lista desplegable con campo de texto";
@@ -8176,10 +8176,10 @@
$TheExerciseAutoLaunchSettingIsONStudentsWillBeRedirectToTheExerciseList = "La funcionalidad de lanzamiento automático de ejercicios está activada. Los estudiantes serán automáticamente redirigidos a la lista de ejercicios.";
$PostedExpirationDate = "Fecha límite publicada para enviar el trabajo (visible para el alumno)";
$BossAlertMsgSentToUserXTitle = "Mensaje de seguimiento sobre alumno %s";
-$BossAlertUserXSentMessageToUserYWithLinkZ = "Hola,
-
-El usuario %s ha enviado un mensaje de seguimiento sobre el alumno %s.
-
+$BossAlertUserXSentMessageToUserYWithLinkZ = "Hola,
+
+El usuario %s ha enviado un mensaje de seguimiento sobre el alumno %s.
+
El mensaje se puede ver en %s";
$include_services = "Incluir los servicios";
$culqi_enable = "Activar Culqi";
@@ -8221,11 +8221,11 @@
$YourResultsByDiscipline = "Sus notas, disciplina por disciplina";
$ForComparisonYourLastResultToThisTest = "En comparación, su última nota para esta prueba";
$YourOverallResultForTheTest = "Su nota para la prueba en general";
-$QuestionDegreeCertaintyHTMLMail = "Encontrará su nota a continuación para la prueba %s.
-Para ver más detalles:
-
-1. Conectarse a la plataforma (usuario/contraseña usual): Hacia la plataforma.
-
+$QuestionDegreeCertaintyHTMLMail = "Encontrará su nota a continuación para la prueba %s.
+Para ver más detalles:
+
+1. Conectarse a la plataforma (usuario/contraseña usual): Hacia la plataforma.
+
2. Seguir este enlace: Ver resultados más detallados.";
$DegreeOfCertaintyVerySure = "Muy seguro";
$DegreeOfCertaintyVerySureDescription = "Dio la respuesta correcta y estaba seguro de ella al 80% ¡Felicitaciones!";
@@ -8287,8 +8287,8 @@
$AddMultipleUsersToCalendar = "Agregar múltiples usuarios al calendario";
$UpdateCalendar = "Actualizar calendario";
$ControlPoint = "Punto de control";
-$MessageQuestionCertainty = "Siga las instrucciones a continuación para ver sus resultados de la prueba '%s' a detalle:
-1. Conéctese a la plataforma (con login/constraseña) en: %s
+$MessageQuestionCertainty = "Siga las instrucciones a continuación para ver sus resultados de la prueba '%s' a detalle:
+1. Conéctese a la plataforma (con login/constraseña) en: %s
2. De click en el enlace siguiente: Ms
";
$SessionMinDuration = "Duración mín de sesión";
$CanNotTranslate = "No se pudo traducir";
@@ -8313,9 +8313,9 @@
$InformationRightToBeForgottenLinkX = "Puede encontrar más información sobre el derecho al olvido en la página siguiente: %s";
$ExplanationDeleteLegal = "Por favor indíquenos porqué desea eliminar su acuerda a nuestras condiciones de uso, para asegurar que lo podamos hacer de la mejor manera posible.";
$ExplanationDeleteAccount = "Por favor indíquenos porqué desea que eliminemos su cuenta, para asegurar que lo podamos hacer de la mejor manera.";
-$WhyYouWantToDeleteYourLegalAgreement = "Puede solicitar a bajo la eliminación de su acuerdo a nuestras condiciones de uso o la eliminación de su cuenta.
-En el caso de la eliminación de su acuerdo, tendrá que volver a aceptar nuestras condiciones en su próxima conexión, pues no nos es posible proveerle una experiencia personalizada sin al mismo tiempo gestionar algunos de sus datos personales.
-En el caso de la eliminación completa de su cuenta, ésta será eliminada junta con todas sus suscripciones a cursos y toda la información relacionada con su cuenta.
+$WhyYouWantToDeleteYourLegalAgreement = "Puede solicitar a bajo la eliminación de su acuerdo a nuestras condiciones de uso o la eliminación de su cuenta.
+En el caso de la eliminación de su acuerdo, tendrá que volver a aceptar nuestras condiciones en su próxima conexión, pues no nos es posible proveerle una experiencia personalizada sin al mismo tiempo gestionar algunos de sus datos personales.
+En el caso de la eliminación completa de su cuenta, ésta será eliminada junta con todas sus suscripciones a cursos y toda la información relacionada con su cuenta.
Por favor seleccione la opción correspondiente con mucho cuidado. En ambos casos, su solicitud será revisada por uno de nuestros administradores, con el fin de evitar cualquier malentendimiento y/o pérdida definitiva de sus datos.";
$PersonalDataPrivacy = "Protección de datos personales";
$RequestForAccountDeletion = "Pedido de eliminación de cuenta";
@@ -8343,9 +8343,9 @@
$CreateNewSurveyDoodle = "Crear una nueva encuesta de tipo Doodle";
$RemoveMultiplicateQuestions = "Eliminar las preguntas demultiplicadas";
$MultiplicateQuestions = "Multiplicar las preguntas";
-$QuestionTags = "Puedes usar las etiquetas {{class_name}} y {{student_full_name}} en la pregunta para poder multiplicar las preguntas.
-En la página de la lista de encuestas en la columna de acción, hay un botón para multiplicar las preguntas que buscará la etiqueta {{class_name}} y duplicará la pregunta para todas las clases inscritas al curso y le cambiará el nombre con el nombre de la clase.
-También agregará un separador de página para hacer una nueva página para cada clase.
+$QuestionTags = "Puedes usar las etiquetas {{class_name}} y {{student_full_name}} en la pregunta para poder multiplicar las preguntas.
+En la página de la lista de encuestas en la columna de acción, hay un botón para multiplicar las preguntas que buscará la etiqueta {{class_name}} y duplicará la pregunta para todas las clases inscritas al curso y le cambiará el nombre con el nombre de la clase.
+También agregará un separador de página para hacer una nueva página para cada clase.
Luego buscará la etiqueta {{student_full_name}} y duplicará la pregunta para todos los estudiantes de la clase (para cada clase) y le cambiará el nombre con el nombre completo del estudiante.";
$CreateMeeting = "Crear encuesta de reunión";
$QuestionForNextClass = "Preguntas para la siguiente clase";
@@ -8585,8 +8585,8 @@
$CertificatesSessions = "Certificados en sesiones";
$SessionFilterReport = "Filtro de certificados en sesiones";
$UpdateUserListXMLCSV = "Actualizar lista de usuarios";
-$DonateToTheProject = "Chamilo es un proyecto Open Source (o \"Software Libre\") y este portal está proveído a nuestra comunidad sin costo por la Asociación Chamilo, que persigue el objetivo de mejorar la calidad de una educación de calidad en todo el mundo.
-Desarrollar Chamilo y proveer este servicio son, no obstante, tareas costosas, y su ayuda contribuiría de manera significativa en asegurar que estos servicios se mejoren más rápido en el tiempo.
+$DonateToTheProject = "Chamilo es un proyecto Open Source (o \"Software Libre\") y este portal está proveído a nuestra comunidad sin costo por la Asociación Chamilo, que persigue el objetivo de mejorar la calidad de una educación de calidad en todo el mundo.
+Desarrollar Chamilo y proveer este servicio son, no obstante, tareas costosas, y su ayuda contribuiría de manera significativa en asegurar que estos servicios se mejoren más rápido en el tiempo.
Crear un curso en este portal es una de las operaciones más exigentes en términos de recursos para nuestro servicio. Le rogamos considere contribuir simbólicamente un monto pequeño para la Asociación Chamilo antes de crear este curso, con el objetivo de ayudarnos a mantener este servicio de buena calidad y gratuito para todos!";
$MyStudentPublications = "Mis tareas";
$AddToEditor = "Añadir al editor";
@@ -9004,8 +9004,8 @@
$AIQuestionsGenerator = "Generador de preguntas por IA";
$AIQuestionsGeneratorNumberHelper = "La mayoría de los generadores de IA son limitados en número de caracteres que pueden devolver, y vuestra organización muchas veces será facturada en base a la cantidad de caracteres devueltos. Por lo tanto, recomendamos proceder con moderación, solicitando bajas cantidades de preguntas en un primer momento, y extendiendo mientra va tomando confianza. Un buen número inicial es de 3 preguntas.";
$LPEndStepAddTagsToShowCertificateOrSkillAutomatically = "Use una (o más) de las siguientes etiquetas propuestas para generar automáticamente un certificado o una competencia y muéstrelas aquí cuando el alumno llegue a este paso, que requiere que todos los demás pasos se completen primero.";
-$ImportSessionAgendaReminderDescriptionDefault = "Hola ((user_complete_name)).
-
+$ImportSessionAgendaReminderDescriptionDefault = "Hola ((user_complete_name)).
+
Está invitado a seguir la sesión ((session_name)) desde ((date_start)) hasta ((date_end)).";
$ImportSessionAgendaReminderTitleDefault = "Invitación a la sesión ((session_name))";
$FillBlanksCombination = "Rellenar blancos con combinación exacta";
@@ -9113,4 +9113,4 @@
$SubscribeSessionWhenFinishedFailure = "Suscribir a la sesión al final del examen cuando el usuario no ha aprobado";
$progressBasedOnVisiblesLPsInEachCourse = "El progreso es calculado en base a lecciones visibles en cada curso";
$progressBasedOnXVisiblesLPs = "El progreso es calculado en base a %s lecciones visibles en el contexto presente.";
-?>
\ No newline at end of file
+?>