浏览代码

Merge branch 'merge110' into 1.11.x

Angel Fernando Quiroz Campos 8 年之前
父节点
当前提交
20e5d18788

+ 0 - 1
app/config/mail.conf.dist.php

@@ -1,5 +1,4 @@
 <?php
 <?php
-
 /**
 /**
  *	This file holds the configuration settings
  *	This file holds the configuration settings
  *	for phpmailer Class.
  *	for phpmailer Class.

+ 1 - 0
documentation/installation_guide.html

@@ -336,6 +336,7 @@ Please note that if you (unluckily) upgraded from any of the 1.9 versions to 1.1
   <li> make sure "AllowOverride All" is present in your Apache configuration, as interpreting the .htaccess files is very important for Chamilo to work (note that the Order-Allow directive has been replaced by "Require all granted" in Apache 2.4)</li>
   <li> make sure "AllowOverride All" is present in your Apache configuration, as interpreting the .htaccess files is very important for Chamilo to work (note that the Order-Allow directive has been replaced by "Require all granted" in Apache 2.4)</li>
   <li> point your browser on your portal URL + main/install/</li>
   <li> point your browser on your portal URL + main/install/</li>
   <li> click&nbsp;<span style="font-style: italic;">Install</span>, then choose <span style="font-style: italic;">Upgrade from 1.9.*</span></li>
   <li> click&nbsp;<span style="font-style: italic;">Install</span>, then choose <span style="font-style: italic;">Upgrade from 1.9.*</span></li>
+  <li> once your portal is upgraded, clean your app/cache/twig directory: delete all the contents *in* this directory (do NOT remove the directory itself, only its contents!). It will all be re-generated. You can also delete the contents of this directory through the "Archive directory cleanup" option in the "System" box of the Administration page.</li>
 </ul>
 </ul>
 
 
 <br />
 <br />

+ 1 - 1
main/auth/courses.php

@@ -216,7 +216,7 @@ switch ($action) {
         if (!$user_can_view_page) {
         if (!$user_can_view_page) {
             api_not_allowed(true);
             api_not_allowed(true);
         }
         }
-        
+
         $courses_controller->courses_categories(
         $courses_controller->courses_categories(
             $action,
             $action,
             $categoryCode,
             $categoryCode,

+ 2 - 2
main/course_progress/index.php

@@ -50,8 +50,8 @@ $actions = array(
 );
 );
 
 
 $action  = 'thematic_details';
 $action  = 'thematic_details';
-if (isset($_GET['action']) && in_array($_GET['action'],$actions)) {
-    $action = $_GET['action'];
+if (isset($_REQUEST['action']) && in_array($_REQUEST['action'], $actions)) {
+    $action = $_REQUEST['action'];
 }
 }
 
 
 if (isset($_POST['action']) && $_POST['action'] == 'thematic_delete_select') {
 if (isset($_POST['action']) && $_POST['action'] == 'thematic_delete_select') {

+ 36 - 2
main/course_progress/thematic_advance.php

@@ -22,8 +22,7 @@ if ($action === 'thematic_advance_add' || $action === 'thematic_advance_edit') {
     $form = new FormValidator(
     $form = new FormValidator(
         'thematic_advance',
         'thematic_advance',
         'POST',
         'POST',
-        'index.php?action=thematic_advance_list&thematic_id='.$thematic_id.'&'.api_get_cidreq(
-        )
+        api_get_self() . '?' . api_get_cidreq()
     );
     );
     $form->addElement('header', $header_form);
     $form->addElement('header', $header_form);
     //$form->addElement('hidden', 'thematic_advance_token',$token);
     //$form->addElement('hidden', 'thematic_advance_token',$token);
@@ -186,6 +185,41 @@ if ($action === 'thematic_advance_add' || $action === 'thematic_advance_edit') {
         }
         }
     }
     }
     $form->setDefaults($default);
     $form->setDefaults($default);
+
+    if ($form->validate()) {
+        $values = $form->exportValues();
+
+        $thematic = new Thematic();
+        $thematic->set_thematic_advance_attributes(
+            isset($values['thematic_advance_id']) ? $values['thematic_advance_id']: null,
+            $values['thematic_id'],
+            $values['start_date_type'] == 1 && isset($values['attendance_select']) ? $values['attendance_select'] : 0,
+            $values['content'],
+            $values['start_date_type'] == 2 ? $values['custom_start_date'] : $values['start_date_by_attendance'],
+            $values['duration_in_hours']
+        );
+
+        $affected_rows = $thematic->thematic_advance_save();
+
+        if ($affected_rows) {
+            // get last done thematic advance before move thematic list
+            $last_done_thematic_advance = $thematic->get_last_done_thematic_advance();
+            // update done advances with de current thematic list
+            if (!empty($last_done_thematic_advance)) {
+                $thematic->update_done_thematic_advances($last_done_thematic_advance);
+            }
+        }
+
+        $redirectUrlParams = 'course_progress/index.php?' .  api_get_cidreq() . '&' .
+            http_build_query([
+                'action' => 'thematic_advance_list',
+                'thematic_id' => $values['thematic_id']
+            ]);
+
+        header('Location: ' . api_get_path(WEB_CODE_PATH) . $redirectUrlParams);
+        exit;
+    }
+
     $form->display();
     $form->display();
 
 
 } else if ($action == 'thematic_advance_list') {
 } else if ($action == 'thematic_advance_list') {

+ 7 - 54
main/course_progress/thematic_controller.php

@@ -425,60 +425,13 @@ class ThematicController
                     exit;
                     exit;
                 }
                 }
 
 
-                if ((isset($_REQUEST['start_date_type']) && $_REQUEST['start_date_type'] == 1 && empty($_REQUEST['start_date_by_attendance'])) ||
-                    (!empty($_REQUEST['duration_in_hours']) && !is_numeric($_REQUEST['duration_in_hours']))
-                ) {
-                    if ($_REQUEST['start_date_type'] == 1 && empty($_REQUEST['start_date_by_attendance'])) {
-                        $start_date_error = true;
-                        $data['start_date_error'] = $start_date_error;
-                    }
-
-                    if (!empty($_REQUEST['duration_in_hours']) && !is_numeric($_REQUEST['duration_in_hours'])) {
-                        $duration_error = true;
-                        $data['duration_error'] = $duration_error;
-                    }
-
-                    $data['action'] = $_REQUEST['action'];
-                    $data['thematic_id'] = $_REQUEST['thematic_id'];
-                    $data['attendance_select'] = $attendance_select;
-                    if (isset($_REQUEST['thematic_advance_id'])) {
-                        $data['thematic_advance_id'] = $_REQUEST['thematic_advance_id'];
-                        $thematic_advance_data = $thematic->get_thematic_advance_list($_REQUEST['thematic_advance_id']);
-                        $data['thematic_advance_data'] = $thematic_advance_data;
-                    }
-                } else {
-                    if (api_is_allowed_to_edit(null, true)) {
-                        $thematic_advance_id = isset($_REQUEST['thematic_advance_id']) ? $_REQUEST['thematic_advance_id'] : null;
-                        $thematic_id = $_REQUEST['thematic_id'];
-                        $content = isset($_REQUEST['content']) ? $_REQUEST['content'] : null;
-                        $duration = isset($_REQUEST['duration_in_hours']) ? $_REQUEST['duration_in_hours'] : null;
-                        if (isset($_REQUEST['start_date_type']) && $_REQUEST['start_date_type'] == 2) {
-                            $start_date = $_REQUEST['custom_start_date'];
-                            $attendance_id = 0;
-                        } else {
-                            $start_date = isset($_REQUEST['start_date_by_attendance']) ? $_REQUEST['start_date_by_attendance'] : null;
-                            $attendance_id = isset($_REQUEST['attendance_select']) ? $_REQUEST['attendance_select'] : null;
-                        }
-                        $thematic->set_thematic_advance_attributes(
-                            $thematic_advance_id,
-                            $thematic_id,
-                            $attendance_id,
-                            $content,
-                            $start_date,
-                            $duration
-                        );
-
-                        $affected_rows = $thematic->thematic_advance_save();
-
-                        if ($affected_rows) {
-                            // get last done thematic advance before move thematic list
-                            $last_done_thematic_advance = $thematic->get_last_done_thematic_advance();
-                            // update done advances with de current thematic list
-                            if (!empty($last_done_thematic_advance)) {
-                                $thematic->update_done_thematic_advances($last_done_thematic_advance);
-                            }
-                        }
-                    }
+                $data['action'] = $_REQUEST['action'];
+                $data['thematic_id'] = $_REQUEST['thematic_id'];
+                $data['attendance_select'] = $attendance_select;
+                if (isset($_REQUEST['thematic_advance_id'])) {
+                    $data['thematic_advance_id'] = $_REQUEST['thematic_advance_id'];
+                    $thematic_advance_data = $thematic->get_thematic_advance_list($_REQUEST['thematic_advance_id']);
+                    $data['thematic_advance_data'] = $thematic_advance_data;
                 }
                 }
                 break;
                 break;
             default:
             default:

+ 2 - 2
main/inc/ajax/model.ajax.php

@@ -1033,8 +1033,8 @@ switch ($action) {
 
 
                 $detailButtons = [];
                 $detailButtons = [];
                 $detailButtons[] = Display::url(
                 $detailButtons[] = Display::url(
-                    Display::return_icon('works.png', get_lang('Works')),
-                    api_get_path(WEB_CODE_PATH) . 'mySpace/works_in_session_report.php'
+                    Display::return_icon('works.png', get_lang('WorksReport')),
+                    api_get_path(WEB_CODE_PATH) . 'mySpace/works_in_session_report.php?session=' . $session['id']
                 );
                 );
                 $detailButtons[] = Display::url(
                 $detailButtons[] = Display::url(
                     Display::return_icon('2rightarrow.png'),
                     Display::return_icon('2rightarrow.png'),

+ 1 - 1
main/inc/lib/agenda.lib.php

@@ -1594,7 +1594,7 @@ class Agenda
 
 
         $coachCanEdit = false;
         $coachCanEdit = false;
         if (!empty($session_id)) {
         if (!empty($session_id)) {
-            $coachCanEdit = api_is_coach($session_id, $course_id);
+            $coachCanEdit = api_is_coach($session_id, $course_id) || api_is_platform_admin();
         }
         }
 
 
         if (Database::num_rows($result)) {
         if (Database::num_rows($result)) {

+ 11 - 7
main/inc/lib/course.lib.php

@@ -3720,6 +3720,8 @@ class CourseManager
             $course_title_url = '';
             $course_title_url = '';
             $course_title_url = api_get_path(WEB_COURSE_PATH) . $course_info['path'] . '/index.php?id_session=0';
             $course_title_url = api_get_path(WEB_COURSE_PATH) . $course_info['path'] . '/index.php?id_session=0';
 
 
+            $teachers = '';
+
             if (api_get_setting('display_teacher_in_courselist') === 'true') {
             if (api_get_setting('display_teacher_in_courselist') === 'true') {
                 $teachers = CourseManager::getTeachersFromCourseByCode($course['code']);
                 $teachers = CourseManager::getTeachersFromCourseByCode($course['code']);
             }
             }
@@ -4026,7 +4028,7 @@ class CourseManager
         if (1) {
         if (1) {
             $session = '';
             $session = '';
             $active = false;
             $active = false;
-            if (!empty($course_info['session_name'])) {
+            if (!empty($course_info['id_session'])) {
 
 
                 // Request for the name of the general coach
                 // Request for the name of the general coach
                 $sql = 'SELECT lastname, firstname,sc.name
                 $sql = 'SELECT lastname, firstname,sc.name
@@ -4040,13 +4042,12 @@ class CourseManager
 
 
                 $rs = Database::query($sql);
                 $rs = Database::query($sql);
                 $sessioncoach = Database::store_result($rs);
                 $sessioncoach = Database::store_result($rs);
-                $sessioncoach = $sessioncoach[0];
+                $sessioncoach = $sessioncoach ? $sessioncoach[0] : null;
 
 
-                $session = array();
-                $session['title'] = $course_info['session_name'];
+                $session = api_get_session_info($course_info['id_session']);
                 $session_category_id = CourseManager::get_session_category_id_by_session_id($course_info['id_session']);
                 $session_category_id = CourseManager::get_session_category_id_by_session_id($course_info['id_session']);
                 $session['category'] = $sessioncoach['name'];
                 $session['category'] = $sessioncoach['name'];
-                if ($course_info['access_start_date'] == '0000-00-00') {
+                if ($session['access_start_date'] == '0000-00-00') {
                     //$session['dates'] = get_lang('WithoutTimeLimits');
                     //$session['dates'] = get_lang('WithoutTimeLimits');
                     $session['dates'] = '';
                     $session['dates'] = '';
                     if (api_get_setting('show_session_coach') === 'true') {
                     if (api_get_setting('show_session_coach') === 'true') {
@@ -4055,12 +4056,15 @@ class CourseManager
                     }
                     }
                     $active = true;
                     $active = true;
                 } else {
                 } else {
-                    $session ['dates'] = ' - ' . get_lang('From') . ' ' . $course_info['access_start_date'] . ' ' . get_lang('To') . ' ' . $course_info['access_end_date'];
+                    $session ['dates'] = ' - ' . get_lang('From') . ' ' . $session['access_start_date'] . ' ' . get_lang('To') . ' ' . $session['access_end_date'];
                     if (api_get_setting('show_session_coach') === 'true') {
                     if (api_get_setting('show_session_coach') === 'true') {
                         $session['coach'] = get_lang('GeneralCoach') . ': ' . api_get_person_name($sessioncoach['firstname'],
                         $session['coach'] = get_lang('GeneralCoach') . ': ' . api_get_person_name($sessioncoach['firstname'],
                                 $sessioncoach['lastname']);
                                 $sessioncoach['lastname']);
                     }
                     }
-                    $active = ($date_start <= $now && $date_end >= $now);
+                    $date_start = $session['access_start_date'];
+                    $date_end = $session['access_end_date'];
+
+                    $active = !$date_end ? ($date_start <= $now) : ($date_start <= $now && $date_end >= $now);
                 }
                 }
             }
             }
             $user_course_category = '';
             $user_course_category = '';

+ 1 - 0
main/inc/lib/extra_field_value.lib.php

@@ -654,6 +654,7 @@ class ExtraFieldValue extends Model
             $sql .= " AND visible = $visibility ";
             $sql .= " AND visible = $visibility ";
         }
         }
         $sql .= " ORDER BY id";
         $sql .= " ORDER BY id";
+
         $result = Database::query($sql);
         $result = Database::query($sql);
         if (Database::num_rows($result)) {
         if (Database::num_rows($result)) {
             $result = Database::fetch_array($result, 'ASSOC');
             $result = Database::fetch_array($result, 'ASSOC');

+ 2 - 2
main/inc/lib/login.lib.php

@@ -584,8 +584,8 @@ class Login
                 $sql = "SELECT * FROM $course_user_table
                 $sql = "SELECT * FROM $course_user_table
                        WHERE
                        WHERE
                         user_id  = '" . $user_id . "' AND
                         user_id  = '" . $user_id . "' AND
-                        relation_type <> ".COURSE_RELATION_TYPE_RRHH." AND
-                        course_code = '$course_id'";
+                        relation_type <> " . COURSE_RELATION_TYPE_RRHH . " AND
+                        c_id = '".$_real_cid."'";
                 $result = Database::query($sql);
                 $result = Database::query($sql);
 
 
                 $cuData = null;
                 $cuData = null;

+ 1 - 0
main/inc/lib/statistics.lib.php

@@ -327,6 +327,7 @@ class Statistics
                     $row[6] = get_lang('Unknown');
                     $row[6] = get_lang('Unknown');
                 }
                 }
             }
             }
+
             $activities[] = $row;
             $activities[] = $row;
         }
         }
 
 

+ 3 - 3
main/inc/lib/usermanager.lib.php

@@ -1939,7 +1939,7 @@ class UserManager
                     0 => $rowf['id'],
                     0 => $rowf['id'],
                     1 => $rowf['variable'],
                     1 => $rowf['variable'],
                     2 => $rowf['field_type'],
                     2 => $rowf['field_type'],
-                    3 => (empty($rowf['display_text']) ? '' : $rowf['display_text']),
+                    3 => empty($rowf['display_text']) ? '' : $rowf['display_text'],
                     4 => $rowf['default_value'],
                     4 => $rowf['default_value'],
                     5 => $rowf['field_order'],
                     5 => $rowf['field_order'],
                     6 => $rowf['visible'],
                     6 => $rowf['visible'],
@@ -1958,7 +1958,7 @@ class UserManager
                         $fields[$rowf['id']][9][$rowo['id']] = array(
                         $fields[$rowf['id']][9][$rowo['id']] = array(
                             0 => $rowo['id'],
                             0 => $rowo['id'],
                             1 => $rowo['option_value'],
                             1 => $rowo['option_value'],
-                            2 => (empty($rowo['display_text']) ? '' : $rowo['display_text']),
+                            2 => empty($rowo['display_text']) ? '' : $rowo['display_text'],
                             3 => $rowo['option_order']
                             3 => $rowo['option_order']
                         );
                         );
                     }
                     }
@@ -2093,7 +2093,7 @@ class UserManager
 
 
     /**
     /**
      * Check if a field is available
      * Check if a field is available
-     * @param    string    th$variable
+     * @param    string    $variable
      * @return    boolean
      * @return    boolean
      */
      */
     public static function is_extra_field_available($variable)
     public static function is_extra_field_available($variable)

+ 110 - 110
main/lang/english/trad4all.inc.php

@@ -325,18 +325,18 @@ $DeleteUsersNotInList = "Unsubscribe students which are not in the imported list
 $IfSessionExistsUpdate = "If a session exists, update it";
 $IfSessionExistsUpdate = "If a session exists, update it";
 $CreatedByXYOnZ = "Create by <a href=\"%s\">%s</a> on %s";
 $CreatedByXYOnZ = "Create by <a href=\"%s\">%s</a> on %s";
 $LoginWithExternalAccount = "Login without an institutional account";
 $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
+$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.";
 ANSWER_EXPLANATION: this is an optional feedback comment that will appear next to the correct answer.";
 $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.";
 $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";
 $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";
@@ -425,18 +425,18 @@ $VersionUpToDate = "Your version is up-to-date";
 $LatestVersionIs = "The latest version is";
 $LatestVersionIs = "The latest version is";
 $YourVersionNotUpToDate = "Your version is not up-to-date";
 $YourVersionNotUpToDate = "Your version is not up-to-date";
 $Hotpotatoes = "Hotpotatoes";
 $Hotpotatoes = "Hotpotatoes";
-$ZeroMeansNoQuestionWillBeSelectedMinusOneMeansThatAllQuestionsWillBeSelected = "-1 = All questions will be selected.
+$ZeroMeansNoQuestionWillBeSelectedMinusOneMeansThatAllQuestionsWillBeSelected = "-1 = All questions will be selected.
  0 = No 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 }}";
 9. {{ course.code }}";
 $EmailNotificationTemplate = "Email notification template";
 $EmailNotificationTemplate = "Email notification template";
 $ExerciseEndButtonDisconnect = "Logout";
 $ExerciseEndButtonDisconnect = "Logout";
@@ -844,10 +844,10 @@ $AllowVisitors = "Allow visitors";
 $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.";
 $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.";
 $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";
 $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)).";
 \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.";
 $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.<br>Use the <b>Back</b> button on your browser and try again.";
 $CodeTaken = "This course code is already in use.<br>Use the <b>Back</b> button on your browser and try again.";
@@ -2640,16 +2640,16 @@ $NoPosts = "No posts";
 $WithoutAchievedSkills = "Without achieved skills";
 $WithoutAchievedSkills = "Without achieved skills";
 $TypeMessage = "Please type your message!";
 $TypeMessage = "Please type your message!";
 $ConfirmReset = "Do you really want to delete all messages?";
 $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";
 %s Team";
 $MailCronCourseExpirationReminderSubject = "Urgent: %s course expiration reminder";
 $MailCronCourseExpirationReminderSubject = "Urgent: %s course expiration reminder";
 $ExerciseAndLearningPath = "Exercise and learning path";
 $ExerciseAndLearningPath = "Exercise and learning path";
@@ -5778,8 +5778,8 @@ $CheckThatYouHaveEnoughQuestionsInYourCategories = "Make sure you have enough qu
 $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.";
 $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.";
 $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.";
 $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.";
 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";
 $LinkOpenSelf = "Open self";
 $LinkOpenBlank = "Open blank";
 $LinkOpenBlank = "Open blank";
@@ -5832,8 +5832,8 @@ $Item = "Item";
 $ConfigureDashboardPlugin = "Configure Dashboard Plugin";
 $ConfigureDashboardPlugin = "Configure Dashboard Plugin";
 $EditBlocks = "Edit blocks";
 $EditBlocks = "Edit blocks";
 $Never = "Never";
 $Never = "Never";
-$YourAccountIsActiveYouCanLoginAndCheckYourCourses = "Dear user, 
-
+$YourAccountIsActiveYouCanLoginAndCheckYourCourses = "Dear user, 
+
 Your account has now been activated on the platform. Please login and enjoy your courses.";
 Your account has now been activated on the platform. Please login and enjoy your courses.";
 $SessionFields = "Session fields";
 $SessionFields = "Session fields";
 $CopyLabelSuffix = "Copy";
 $CopyLabelSuffix = "Copy";
@@ -5895,7 +5895,7 @@ $CourseSettingsRegisterDirectLink = "If your course is public or open, you can u
 $DirectLink = "Direct link";
 $DirectLink = "Direct link";
 $here = "here";
 $here = "here";
 $GoAheadAndBrowseOurCourseCatalogXOnceRegisteredYouWillSeeTheCourseHereX = "<p>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.</p>";
 $GoAheadAndBrowseOurCourseCatalogXOnceRegisteredYouWillSeeTheCourseHereX = "<p>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.</p>";
-$HelloXAsYouCanSeeYourCourseListIsEmpty = "<p>Hello <strong>%s</strong> and welcome,</p>
+$HelloXAsYouCanSeeYourCourseListIsEmpty = "<p>Hello <strong>%s</strong> and welcome,</p>
 <p>As you can see, your courses list is still empty. That's because you are not registered to any course yet! </p>";
 <p>As you can see, your courses list is still empty. That's because you are not registered to any course yet! </p>";
 $UnsubscribeUsersAlreadyAddedInCourse = "Unsubscribe users already added";
 $UnsubscribeUsersAlreadyAddedInCourse = "Unsubscribe users already added";
 $ImportUsers = "Import users";
 $ImportUsers = "Import users";
@@ -6159,7 +6159,7 @@ $AverageScore = "Average score";
 $LastConnexionDate = "Last connexion date";
 $LastConnexionDate = "Last connexion date";
 $ToolVideoconference = "Videoconference";
 $ToolVideoconference = "Videoconference";
 $BigBlueButtonEnableTitle = "BigBlueButton videoconference tool";
 $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 <a href=\"http://bigbluebutton.org/\" target=\"_blank\">set one up</a> or ask the <a href=\"http://www.chamilo.org/en/providers\" target=\"_blank\">Chamilo official providers</a> 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 <a href=\"http://bigbluebutton.org/\" target=\"_blank\">set one up</a> or ask the <a href=\"http://www.chamilo.org/en/providers\" target=\"_blank\">Chamilo official providers</a> 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.";
 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";
 $BigBlueButtonHostTitle = "BigBlueButton server host";
 $BigBlueButtonHostComment = "This is the name of the server where your BigBlueButton server is running. Might be <i>localhost</i>, an IP address (e.g. 192.168.13.54) or a domain name (e.g. my.video.com).";
 $BigBlueButtonHostComment = "This is the name of the server where your BigBlueButton server is running. Might be <i>localhost</i>, an IP address (e.g. 192.168.13.54) or a domain name (e.g. my.video.com).";
@@ -6170,14 +6170,14 @@ $OnlyAccessFromYourGroup = "Only accessible from your group";
 $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.";
 $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";
 $UserFolders = "Folders of users";
 $UserFolder = "User folder";
 $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.
-<br /><br />
-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.
-<br /><br />
-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.
-<br /><br />
-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.
-<br /><br />
+$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.
+<br /><br />
+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.
+<br /><br />
+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.
+<br /><br />
+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.
+<br /><br />
 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.";
 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.";
 $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.";
 $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.";
@@ -6226,8 +6226,8 @@ $Pediaphon = "Use Pediaphon audio services";
 $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.";
 $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";
 $FirstSelectALanguage = "Please select a language";
 $MoveUserStats = "Move users results from/to a session";
 $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.<br />
-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.<br />
+$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.<br />
+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.<br />
 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.";
 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";
 $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.";
 $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.";
@@ -6362,8 +6362,8 @@ $MailNotifyInvitation = "Notify by mail on new invitation received";
 $MailNotifyMessage = "Notify by mail on new personal message received";
 $MailNotifyMessage = "Notify by mail on new personal message received";
 $MailNotifyGroupMessage = "Notify by mail on new message received in group";
 $MailNotifyGroupMessage = "Notify by mail on new message received in group";
 $SearchEnabledTitle = "Fulltext search";
 $SearchEnabledTitle = "Fulltext search";
-$SearchEnabledComment = "This feature allows you to index most of the documents uploaded to your portal, then provide a search feature for users.<br />
-This feature will not index documents that have already been uploaded, so it is important to enable (if wanted) at the beginning of your implementation.<br />
+$SearchEnabledComment = "This feature allows you to index most of the documents uploaded to your portal, then provide a search feature for users.<br />
+This feature will not index documents that have already been uploaded, so it is important to enable (if wanted) at the beginning of your implementation.<br />
 Once enabled, a search box will appear in the courses list of every user. Searching for a specific term will bring a list of corresponding documents, exercises or forum topics, filtered depending on the availability of these contents to the user.";
 Once enabled, a search box will appear in the courses list of every user. Searching for a specific term will bring a list of corresponding documents, exercises or forum topics, filtered depending on the availability of these contents to the user.";
 $SpecificSearchFieldsAvailable = "Available custom search fields";
 $SpecificSearchFieldsAvailable = "Available custom search fields";
 $XapianModuleInstalled = "Xapian module installed";
 $XapianModuleInstalled = "Xapian module installed";
@@ -7009,45 +7009,45 @@ $ResourceLockedByGradebook = "This option is not available because this activity
 $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).";
 $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";
 $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";
 $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 = "    <div class=\"alert alert-info\">
-        <ul>
-            <li>LDAP authentication : <br>
-                See I. below to configure LDAP <br>
-                See II. below to activate LDAP authentication
-            </li>
-            <li>Update user attributes, with LDAP data, after CAS authentication(see <a href=\"settings.php?category=CAS\">CAS configuration </a>) : <br>
-                See I. below to configure LDAP <br>
-                CAS manage user authentication, LDAP activation isn't required.
-            </li>
-        </ul>
-    </div>
-    <h4>I. LDAP configuration</h4>
-    <h5>Edit file app/config/auth.conf.php </h5>
-    <p>-&gt; Edit values of array <code>\$extldap_config</code></p>
-    <ul>
-        <li>base domain string (ex : 'base_dn' =&gt; 'DC=cblue,DC=be')</li>
-        <li>admin distinguished name (ex : 'admin_dn' =&gt;'CN=admin,dc=cblue,dc=be')</li>
-        <li>admin password (ex : 'admin_password' =&gt; '123456') </li>
-        <li>ldap host (ex : 'host' =&gt; array('1.2.3.4', '2.3.4.5', '3.4.5.6'))</li>
-        <li>filter (ex : 'filter' =&gt; '') </li>
-        <li>port (ex : 'port' =&gt; 389) </li>
-        <li>protocol version (2 or 3) (ex : 'protocol_version' =&gt; 3)</li>
-        <li>user_search (ex : 'user_search' =&gt; 'sAMAccountName=%username%') </li>
-        <li>encoding (ex : 'encoding' =&gt; 'UTF-8')</li>
-        <li>update_userinfo (ex : 'update_userinfo' =&gt; true) </li>
-    </ul>
-    <p>-&gt; To update correspondences between user and LDAP attributes, edit array <code>\$extldap_user_correspondance</code></p>
-    <p>Array values are &lt;chamilo_field&gt; =&gt; &gt;ldap_field&gt;</p><p>
-    </p>
-    <h4>II. Activate LDAP authentication </h4>
-    <h5>Edit file main/inc/conf/configuration.php </h5>
-    <p>-&gt; Uncomment lines:</p>
-    <ul>
-        <li>
-    \$extAuthSource[\"extldap\"][\"login\"] = \$_configuration['root_sys'].\"main/auth/external_login/login.ldap.php\";</li>
-        <li>\$extAuthSource[\"extldap\"][\"newUser\"] = \$_configuration['root_sys'].\"main/auth/external_login/newUser.ldap.php\";</li>
-    </ul>
-    <p>N.B.: LDAP users use same fields than platform users to login. <br>
+$LdapDescriptionComment = "    <div class=\"alert alert-info\">
+        <ul>
+            <li>LDAP authentication : <br>
+                See I. below to configure LDAP <br>
+                See II. below to activate LDAP authentication
+            </li>
+            <li>Update user attributes, with LDAP data, after CAS authentication(see <a href=\"settings.php?category=CAS\">CAS configuration </a>) : <br>
+                See I. below to configure LDAP <br>
+                CAS manage user authentication, LDAP activation isn't required.
+            </li>
+        </ul>
+    </div>
+    <h4>I. LDAP configuration</h4>
+    <h5>Edit file app/config/auth.conf.php </h5>
+    <p>-&gt; Edit values of array <code>\$extldap_config</code></p>
+    <ul>
+        <li>base domain string (ex : 'base_dn' =&gt; 'DC=cblue,DC=be')</li>
+        <li>admin distinguished name (ex : 'admin_dn' =&gt;'CN=admin,dc=cblue,dc=be')</li>
+        <li>admin password (ex : 'admin_password' =&gt; '123456') </li>
+        <li>ldap host (ex : 'host' =&gt; array('1.2.3.4', '2.3.4.5', '3.4.5.6'))</li>
+        <li>filter (ex : 'filter' =&gt; '') </li>
+        <li>port (ex : 'port' =&gt; 389) </li>
+        <li>protocol version (2 or 3) (ex : 'protocol_version' =&gt; 3)</li>
+        <li>user_search (ex : 'user_search' =&gt; 'sAMAccountName=%username%') </li>
+        <li>encoding (ex : 'encoding' =&gt; 'UTF-8')</li>
+        <li>update_userinfo (ex : 'update_userinfo' =&gt; true) </li>
+    </ul>
+    <p>-&gt; To update correspondences between user and LDAP attributes, edit array <code>\$extldap_user_correspondance</code></p>
+    <p>Array values are &lt;chamilo_field&gt; =&gt; &gt;ldap_field&gt;</p><p>
+    </p>
+    <h4>II. Activate LDAP authentication </h4>
+    <h5>Edit file main/inc/conf/configuration.php </h5>
+    <p>-&gt; Uncomment lines:</p>
+    <ul>
+        <li>
+    \$extAuthSource[\"extldap\"][\"login\"] = \$_configuration['root_sys'].\"main/auth/external_login/login.ldap.php\";</li>
+        <li>\$extAuthSource[\"extldap\"][\"newUser\"] = \$_configuration['root_sys'].\"main/auth/external_login/newUser.ldap.php\";</li>
+    </ul>
+    <p>N.B.: LDAP users use same fields than platform users to login. <br>
     N.B.: LDAP activation adds a menu External authentication [LDAP] in \"add or modify\" user pages.</p>";
     N.B.: LDAP activation adds a menu External authentication [LDAP] in \"add or modify\" user pages.</p>";
 $ShibbolethMainActivateTitle = "<h3>Shibboleth authentication</h3>";
 $ShibbolethMainActivateTitle = "<h3>Shibboleth authentication</h3>";
 $ShibbolethMainActivateComment = "<p>First of all, you have to configure Shibboleth for your web server.</p>To configure it for Chamilo<h5>edit file main/auth/shibboleth/config/aai.class.php</h5><p>Modify object &#36;result values with the name of your Shibboleth attributes</p><ul><li>&#36;result-&gt;unique_id = 'mail';</li><li>&#36;result-&gt;firstname = 'cn';</li><li>&#36;result-&gt;lastname = 'uid';</li><li>&#36;result-&gt;email = 'mail';</li><li>&#36;result-&gt;language = '-';</li><li>&#36;result-&gt;gender = '-';</li><li>&#36;result-&gt;address = '-';</li><li>&#36;result-&gt;staff_category = '-';</li><li>&#36;result-&gt;home_organization_type = '-'; </li><li>&#36;result-&gt;home_organization = '-';</li><li>&#36;result-&gt;affiliation = '-';</li><li>&#36;result-&gt;persistent_id = '-';</li><li>...</li></ul><br/>Go to <a href='settings.php?category=Shibboleth'>Plugin</a> to add a configurable 'Shibboleth Login' button for your Chamilo campus.";
 $ShibbolethMainActivateComment = "<p>First of all, you have to configure Shibboleth for your web server.</p>To configure it for Chamilo<h5>edit file main/auth/shibboleth/config/aai.class.php</h5><p>Modify object &#36;result values with the name of your Shibboleth attributes</p><ul><li>&#36;result-&gt;unique_id = 'mail';</li><li>&#36;result-&gt;firstname = 'cn';</li><li>&#36;result-&gt;lastname = 'uid';</li><li>&#36;result-&gt;email = 'mail';</li><li>&#36;result-&gt;language = '-';</li><li>&#36;result-&gt;gender = '-';</li><li>&#36;result-&gt;address = '-';</li><li>&#36;result-&gt;staff_category = '-';</li><li>&#36;result-&gt;home_organization_type = '-'; </li><li>&#36;result-&gt;home_organization = '-';</li><li>&#36;result-&gt;affiliation = '-';</li><li>&#36;result-&gt;persistent_id = '-';</li><li>...</li></ul><br/>Go to <a href='settings.php?category=Shibboleth'>Plugin</a> to add a configurable 'Shibboleth Login' button for your Chamilo campus.";
@@ -7478,12 +7478,12 @@ $AreYouSureToSubscribe = "Are you sure to subscribe?";
 $CheckYourEmailAndFollowInstructions = "Check your email and follow the instructions.";
 $CheckYourEmailAndFollowInstructions = "Check your email and follow the instructions.";
 $LinkExpired = "Link expired, please try again.";
 $LinkExpired = "Link expired, please try again.";
 $ResetPasswordInstructions = "Instructions for the password change procedure";
 $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.
-
-To set a the new password you need to activate it. To do this, please click this link:
-
-%s
-
+$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.";
 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";
 $CronRemindCourseExpirationActivateTitle = "Remind Course Expiration cron";
 $CronRemindCourseExpirationActivateComment = "Enable the Remind Course Expiration cron";
 $CronRemindCourseExpirationActivateComment = "Enable the Remind Course Expiration cron";
@@ -7492,14 +7492,14 @@ $CronRemindCourseExpirationFrequencyComment = "Number of days before the expirat
 $CronCourseFinishedActivateText = "Course Finished cron";
 $CronCourseFinishedActivateText = "Course Finished cron";
 $CronCourseFinishedActivateComment = "Activate the Course Finished cron";
 $CronCourseFinishedActivateComment = "Activate the Course Finished cron";
 $MailCronCourseFinishedSubject = "End of course %s";
 $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";
 %s Team";
 $GenerateDefaultContent = "Generate default content";
 $GenerateDefaultContent = "Generate default content";
 $ThanksForYourSubscription = "Thanks for your subscription";
 $ThanksForYourSubscription = "Thanks for your subscription";
@@ -7721,8 +7721,8 @@ $LegalAccepted = "Legal accepted";
 $LoadTermConditionsSectionTitle = "Load term conditions section";
 $LoadTermConditionsSectionTitle = "Load term conditions section";
 $LoadTermConditionsSectionDescription = "The legal agreement will appear during the login or when enter to a course.";
 $LoadTermConditionsSectionDescription = "The legal agreement will appear during the login or when enter to a course.";
 $SendTermsSubject = "Your terms and conditions are ready to be signed";
 $SendTermsSubject = "Your terms and conditions are ready to be signed";
-$SendTermsDescriptionToUrlX = "Hello,
-
+$SendTermsDescriptionToUrlX = "Hello,
+
 Your tutor sent you your terms and conditions. You can sign it following this url: %s";
 Your tutor sent you your terms and conditions. You can sign it following this url: %s";
 $UserXSignedTheAgreement = "User %s signed the agreement.";
 $UserXSignedTheAgreement = "User %s signed the agreement.";
 $UserXSignedTheAgreementTheY = "User %s signed the agreement the %s.";
 $UserXSignedTheAgreementTheY = "User %s signed the agreement the %s.";

+ 57 - 57
main/lang/french/trad4all.inc.php

@@ -239,7 +239,7 @@ $WithoutCategory = "Sans catégorie";
 $IncorrectScore = "Score réponse incorrecte";
 $IncorrectScore = "Score réponse incorrecte";
 $CorrectScore = "Score réponse correcte";
 $CorrectScore = "Score réponse correcte";
 $UseCustomScoreForAllQuestions = "Utiliser le score sur mesure pour toutes les questions";
 $UseCustomScoreForAllQuestions = "Utiliser le score sur mesure pour toutes les questions";
-$YouShouldAddItemsBeforeAttachAudio = "
+$YouShouldAddItemsBeforeAttachAudio = "
 Vous devez ajouter des étapes à votre parcours avant de pouvoir leur affecter des fichiers audio";
 Vous devez ajouter des étapes à votre parcours avant de pouvoir leur affecter des fichiers audio";
 $InactiveDays = "Joours inactifs";
 $InactiveDays = "Joours inactifs";
 $FollowedHumanResources = "DRH suivis";
 $FollowedHumanResources = "DRH suivis";
@@ -326,23 +326,23 @@ $DeleteUsersNotInList = "Désinscrite les apprenants qui ne sont pas dans la lis
 $IfSessionExistsUpdate = "Si une session existe, la mettre à jour";
 $IfSessionExistsUpdate = "Si une session existe, la mettre à jour";
 $CreatedByXYOnZ = "Créé(e) par <a href=\"%s\">%s</a>, le %s";
 $CreatedByXYOnZ = "Créé(e) par <a href=\"%s\">%s</a>, le %s";
 $LoginWithExternalAccount = "S'authentifier avec un compte extérieur à l'établissement";
 $LoginWithExternalAccount = "S'authentifier avec un compte extérieur à l'établissement";
-$ImportAikenQuizExplanationExample = "Ceci est le texte de la question 1 
-A. Réponse 1 
-B. Réponse 2 
-C. Réponse 3
-ANSWER: B 
-
-Ceci est le texte de la question 2 
-A. Réponse 1 
-B. Réponse 2 
-C. Réponse 3
-D. Réponse 4
-ANSWER: D
-
+$ImportAikenQuizExplanationExample = "Ceci est le texte de la question 1 
+A. Réponse 1 
+B. Réponse 2 
+C. Réponse 3
+ANSWER: B 
+
+Ceci est le texte de la question 2 
+A. Réponse 1 
+B. Réponse 2 
+C. Réponse 3
+D. Réponse 4
+ANSWER: D
+
 ANSWER_EXPLANATION: C'est un retour éventuel commentaire qui apparaîtra à côté de la bonne réponse.";
 ANSWER_EXPLANATION: C'est un retour éventuel commentaire qui apparaîtra à côté de la bonne réponse.";
-$ImportAikenQuizExplanation = "Le format Aiken est un fichier (.txt) avec un texte simple, avec plusieurs blocs de questions, chacune séparée par une ligne blanche. La première ligne est la question, les lignes de réponse sont préfixés par une lettre et un point, et la bonne réponse vient avec le préfixe 'ANSWER'.
+$ImportAikenQuizExplanation = "Le format Aiken est un fichier (.txt) avec un texte simple, avec plusieurs blocs de questions, chacune séparée par une ligne blanche. La première ligne est la question, les lignes de réponse sont préfixés par une lettre et un point, et la bonne réponse vient avec le préfixe 'ANSWER'.
 Voir l'exemple ci-dessous.";
 Voir l'exemple ci-dessous.";
-$ExerciseAikenErrorNoAnswerOptionGiven = "Le fichier importé comporte au moins une question sans réponse (ou les réponses ne comprennent pas la lettre de préfixe requis). Assurez vous que chaque question a au moins une réponse et qu'il est précédé par une lettre et un point ou une parenthèse, comme ceci: 
+$ExerciseAikenErrorNoAnswerOptionGiven = "Le fichier importé comporte au moins une question sans réponse (ou les réponses ne comprennent pas la lettre de préfixe requis). Assurez vous que chaque question a au moins une réponse et qu'il est précédé par une lettre et un point ou une parenthèse, comme ceci: 
 A. Réponse 1";
 A. Réponse 1";
 $ExerciseAikenErrorNoCorrectAnswerDefined = "Le fichier importé comporte au moins une question sans réponse correcte défini. Assurez vous que toutes les questions comprennent la réponse: [Lettre] ligne.";
 $ExerciseAikenErrorNoCorrectAnswerDefined = "Le fichier importé comporte au moins une question sans réponse correcte défini. Assurez vous que toutes les questions comprennent la réponse: [Lettre] ligne.";
 $SearchCourseBySession = "Recherche de cours par session";
 $SearchCourseBySession = "Recherche de cours par session";
@@ -837,10 +837,10 @@ $AllowVisitors = "Permettre des visiteurs externes";
 $EnableIframeInclusionComment = "Autoriser les balises iframe dans l'éditeur HTML améliore l'édition de documents mais peut représenter un risque pour la sécurité.";
 $EnableIframeInclusionComment = "Autoriser les balises iframe dans l'éditeur HTML améliore l'édition de documents mais peut représenter un risque pour la sécurité.";
 $AddedToLPCannotBeAccessed = "Cet exercice fait partie d'un parcour d'apprentissage, il n'est donc pas accessible par les étudiants depuis cette page. Si vous voulez rendre cet exercice disponible depuis l'outil exercice vous devez en faire une copie en utilisant l'icône \"copie\"";
 $AddedToLPCannotBeAccessed = "Cet exercice fait partie d'un parcour d'apprentissage, il n'est donc pas accessible par les étudiants depuis cette page. Si vous voulez rendre cet exercice disponible depuis l'outil exercice vous devez en faire une copie en utilisant l'icône \"copie\"";
 $EnableIframeInclusionTitle = "Autoriser les balises iframe dans l'éditeur HTML.";
 $EnableIframeInclusionTitle = "Autoriser les balises iframe dans l'éditeur HTML.";
-$MailTemplateRegistrationMessage = "Cher(ère) ((firstname)) ((lastname)), Vous êtes inscrit(e) sur
-((sitename) avec les paramètres suivants: Nom d'utilisateur :
-((username)) Mot de passe : ((password)) L'adresse de ((sitename)) est :
-((url)) En cas de problème, n'hésitez pas à prendre contact avec nous
+$MailTemplateRegistrationMessage = "Cher(ère) ((firstname)) ((lastname)), Vous êtes inscrit(e) sur
+((sitename) avec les paramètres suivants: Nom d'utilisateur :
+((username)) Mot de passe : ((password)) L'adresse de ((sitename)) est :
+((url)) En cas de problème, n'hésitez pas à prendre contact avec nous
 Cordialement, le responsable ((admin_name)) ((admin_surname)).";
 Cordialement, le responsable ((admin_name)) ((admin_surname)).";
 $Explanation = "Une fois que vous aurez cliqué sur OK, un cours contenant Tests, Documents, Parcours d'Apprentissage SCORM... sera créé. Grâce à votre identifiant de responsable du cours vous pourrez en modifier le contenu";
 $Explanation = "Une fois que vous aurez cliqué sur OK, un cours contenant Tests, Documents, Parcours d'Apprentissage SCORM... sera créé. Grâce à votre identifiant de responsable du cours vous pourrez en modifier le contenu";
 $CodeTaken = "Ce code est déjà pris.<br />Utilisez le bouton de retour en arrière de votre navigateur et recommencez";
 $CodeTaken = "Ce code est déjà pris.<br />Utilisez le bouton de retour en arrière de votre navigateur et recommencez";
@@ -2633,14 +2633,14 @@ $NoPosts = "Aucune publication";
 $WithoutAchievedSkills = "Aucune compétence acquise";
 $WithoutAchievedSkills = "Aucune compétence acquise";
 $TypeMessage = "Veuillez introduire votre message !";
 $TypeMessage = "Veuillez introduire votre message !";
 $ConfirmReset = "Etes-vous sûr de vouloir supprimer tous les messages ?";
 $ConfirmReset = "Etes-vous sûr de vouloir supprimer tous les messages ?";
-$MailCronCourseExpirationReminderBody = "Cher/Chère %s,
-
-Nous avons remarqué que vous n'avez pas terminé le cours %s alors que sa date de fin a été établie au %s, vous laissant %s jour(s) pour le terminer. Nous vous rappelons que vous ne disposez de la possibilité de suivre ce cours qu'une fois par an. Nous vous invitons donc avec insistance à le compléter dans le délai qu'il vous reste. Vous pouvez retrouver le cours en vous connectant à la plate-forme à cette adresse: %s
-
--- 
-
-Cordialement,
-
+$MailCronCourseExpirationReminderBody = "Cher/Chère %s,
+
+Nous avons remarqué que vous n'avez pas terminé le cours %s alors que sa date de fin a été établie au %s, vous laissant %s jour(s) pour le terminer. Nous vous rappelons que vous ne disposez de la possibilité de suivre ce cours qu'une fois par an. Nous vous invitons donc avec insistance à le compléter dans le délai qu'il vous reste. Vous pouvez retrouver le cours en vous connectant à la plate-forme à cette adresse: %s
+
+-- 
+
+Cordialement,
+
 L'équipe de support de %s";
 L'équipe de support de %s";
 $MailCronCourseExpirationReminderSubject = "Urgent: Rappel d'expiration prochaine du cours %s";
 $MailCronCourseExpirationReminderSubject = "Urgent: Rappel d'expiration prochaine du cours %s";
 $ExerciseAndLearningPath = "Exercices et parcours";
 $ExerciseAndLearningPath = "Exercices et parcours";
@@ -5548,7 +5548,7 @@ $AssignCoursesToHumanResourcesManager = "Assigner des cours au directeur RH";
 $TimezoneValueTitle = "Zone de temps";
 $TimezoneValueTitle = "Zone de temps";
 $TimezoneValueComment = "Ceci est la zone de temps configurée pour ce portail. Si vous ne configurez pas de zone de temps, la zone de temps du serveur sera utilisée. Si vous configurez une zone de temps, tous les temps de cette plateforme seront basés sur cette zone de temps. Ce";
 $TimezoneValueComment = "Ceci est la zone de temps configurée pour ce portail. Si vous ne configurez pas de zone de temps, la zone de temps du serveur sera utilisée. Si vous configurez une zone de temps, tous les temps de cette plateforme seront basés sur cette zone de temps. Ce";
 $UseUsersTimezoneTitle = "Utiliser les zones de temps utilisateurs";
 $UseUsersTimezoneTitle = "Utiliser les zones de temps utilisateurs";
-$UseUsersTimezoneComment = "Activer la possibilité pour les utilisateurs de sélectionner leur zone horaire. Le champ de zone horaire doit être rendu visible et modifiable dans les options de profiling du panneau d'administration avant que les utilisateurs ne puissent choisir leur propre zone.
+$UseUsersTimezoneComment = "Activer la possibilité pour les utilisateurs de sélectionner leur zone horaire. Le champ de zone horaire doit être rendu visible et modifiable dans les options de profiling du panneau d'administration avant que les utilisateurs ne puissent choisir leur propre zone.
 Une fois configurée, les utilisateurs pourront voir toutes les heures du portail (heure de remise des travaux, événements, etc) converties dans leur propre zone horaire.";
 Une fois configurée, les utilisateurs pourront voir toutes les heures du portail (heure de remise des travaux, événements, etc) converties dans leur propre zone horaire.";
 $FieldTypeTimezone = "Zone horaire";
 $FieldTypeTimezone = "Zone horaire";
 $Timezone = "Zones horaires";
 $Timezone = "Zones horaires";
@@ -5822,8 +5822,8 @@ $Item = "Élément";
 $ConfigureDashboardPlugin = "Configurer le plugin de tableau de bord";
 $ConfigureDashboardPlugin = "Configurer le plugin de tableau de bord";
 $EditBlocks = "Éditer les blocs";
 $EditBlocks = "Éditer les blocs";
 $Never = "Jamais";
 $Never = "Jamais";
-$YourAccountIsActiveYouCanLoginAndCheckYourCourses = "Cher utilisateur,
-
+$YourAccountIsActiveYouCanLoginAndCheckYourCourses = "Cher utilisateur,
+
 Votre compte a été activé. Vous pouvez à présent vous connecter et consulter vos cours.";
 Votre compte a été activé. Vous pouvez à présent vous connecter et consulter vos cours.";
 $SessionFields = "Champs de session";
 $SessionFields = "Champs de session";
 $CopyLabelSuffix = "Copie";
 $CopyLabelSuffix = "Copie";
@@ -5885,7 +5885,7 @@ $CourseSettingsRegisterDirectLink = "Si votre cours est public ou ouvert, utilis
 $DirectLink = "Lien direct";
 $DirectLink = "Lien direct";
 $here = "ici";
 $here = "ici";
 $GoAheadAndBrowseOurCourseCatalogXOnceRegisteredYouWillSeeTheCourseHereX = "Révisez notre catalogue de cours %s pour vous inscrire à votre cours préféré. Une fois inscrit(e), votre cours apparaîtra %s, à la place de ce message.";
 $GoAheadAndBrowseOurCourseCatalogXOnceRegisteredYouWillSeeTheCourseHereX = "Révisez notre catalogue de cours %s pour vous inscrire à votre cours préféré. Une fois inscrit(e), votre cours apparaîtra %s, à la place de ce message.";
-$HelloXAsYouCanSeeYourCourseListIsEmpty = "Bonjour %s, nous vous souhaitons la bienvenue,<br />
+$HelloXAsYouCanSeeYourCourseListIsEmpty = "Bonjour %s, nous vous souhaitons la bienvenue,<br />
 Comme vous pouvez le voir, votre liste de cours est vide. C'est parce que vous ne nous êtes pas encore inscrit à un cours!";
 Comme vous pouvez le voir, votre liste de cours est vide. C'est parce que vous ne nous êtes pas encore inscrit à un cours!";
 $UnsubscribeUsersAlreadyAddedInCourse = "Désinscrire les utilisateurs actuellement inscrits";
 $UnsubscribeUsersAlreadyAddedInCourse = "Désinscrire les utilisateurs actuellement inscrits";
 $ImportUsers = "Importer des utilisateurs";
 $ImportUsers = "Importer des utilisateurs";
@@ -5967,11 +5967,11 @@ $ContactInformationHasBeenSent = "L'information de contact a été envoyée. Mer
 $EditExtraFieldOptions = "Modifier les options de champs";
 $EditExtraFieldOptions = "Modifier les options de champs";
 $ExerciseDescriptionLabel = "Description";
 $ExerciseDescriptionLabel = "Description";
 $UserInactivedSinceX = "Utilisateur inactif depuis %s";
 $UserInactivedSinceX = "Utilisateur inactif depuis %s";
-$ContactInformationDescription = "Cher utilisateur,<br />
-<br />
-Vous êtes sur le point de commencer à utiliser l'une des meilleures plateformes e-learning de logiciel libre du marché. Comme beaucoup d'autres projets de logiciel libre, celui-ci est supporté par une grande communauté d'étudiants, d'enseignants, de développeurs et de créateurs de contenu qui aimeraient pouvoir promouvoir le projet dans les meilleures conditions.<br /><br />
-Au travers d'une meilleure connaissance de notre public et de l'un de nos plus importants utilisateurs, vous, qui gèrerez ce système e-learning, nous pourrons nous assurer de faire savoir au plus grand nombre que notre logiciel est utilisé, et nous pourrons vous informer directement sur les évènements importants à vos yeux.<br /><br />
-En remplissant ce formulaire, vous acceptez que l'association Chamilo ou ses membres puissent vous envoyer des informations par e-mail au sujet d'évènements importants ou de mises à jours du software ou de la communauté. Ceci aidera la communauté à grandir comme une entité organisée au sein de laquelle l'information se propage, au travers d'un respect permanent de votre temps et de votre privacité.<br /><br />
+$ContactInformationDescription = "Cher utilisateur,<br />
+<br />
+Vous êtes sur le point de commencer à utiliser l'une des meilleures plateformes e-learning de logiciel libre du marché. Comme beaucoup d'autres projets de logiciel libre, celui-ci est supporté par une grande communauté d'étudiants, d'enseignants, de développeurs et de créateurs de contenu qui aimeraient pouvoir promouvoir le projet dans les meilleures conditions.<br /><br />
+Au travers d'une meilleure connaissance de notre public et de l'un de nos plus importants utilisateurs, vous, qui gèrerez ce système e-learning, nous pourrons nous assurer de faire savoir au plus grand nombre que notre logiciel est utilisé, et nous pourrons vous informer directement sur les évènements importants à vos yeux.<br /><br />
+En remplissant ce formulaire, vous acceptez que l'association Chamilo ou ses membres puissent vous envoyer des informations par e-mail au sujet d'évènements importants ou de mises à jours du software ou de la communauté. Ceci aidera la communauté à grandir comme une entité organisée au sein de laquelle l'information se propage, au travers d'un respect permanent de votre temps et de votre privacité.<br /><br />
 Veuillez prendre en considération que vous n'êtes <b>pas obligé</b> de remplir ce formulaire. Si vous désirez rester anonyme, nous perdrons la possibilité de vous offrir les privilèges d'être un administrateur de portail enregistré, mais nous respecterons votre décision. Laissez simplement ce formulaire vide et cliquez sur \"Suivant\". De la même façon, une fois l'envoi de l'information du formulaire ci-dessous confirmé, vous devrez cliquer sur \"Suivant\".";
 Veuillez prendre en considération que vous n'êtes <b>pas obligé</b> de remplir ce formulaire. Si vous désirez rester anonyme, nous perdrons la possibilité de vous offrir les privilèges d'être un administrateur de portail enregistré, mais nous respecterons votre décision. Laissez simplement ce formulaire vide et cliquez sur \"Suivant\". De la même façon, une fois l'envoi de l'information du formulaire ci-dessous confirmé, vous devrez cliquer sur \"Suivant\".";
 $CompanyActivity = "Activité de votre entreprise";
 $CompanyActivity = "Activité de votre entreprise";
 $PleaseAllowUsALittleTimeToSubscribeYouToOneOfOurCourses = "Merci de nous donner un moment pour vous inscrire à l'un de nos cours. Si vous pensez avoir été oublié, merci de contacter les administrateurs du site. Vous pouvez généralement trouver leurs informations de contact dans le pied de page.";
 $PleaseAllowUsALittleTimeToSubscribeYouToOneOfOurCourses = "Merci de nous donner un moment pour vous inscrire à l'un de nos cours. Si vous pensez avoir été oublié, merci de contacter les administrateurs du site. Vous pouvez généralement trouver leurs informations de contact dans le pied de page.";
@@ -6154,9 +6154,9 @@ $AverageScore = "Score moyen";
 $LastConnexionDate = "Date de dernière connexion";
 $LastConnexionDate = "Date de dernière connexion";
 $ToolVideoconference = "Vidéoconférence";
 $ToolVideoconference = "Vidéoconférence";
 $BigBlueButtonEnableTitle = "Outil de vidéoconférence BigBlueButton";
 $BigBlueButtonEnableTitle = "Outil de vidéoconférence BigBlueButton";
-$BigBlueButtonEnableComment = "Choisissez si vous désirez activer l'outil de vidéoconférence BigBlueButton. Une fois activé, il apparaît comme un outil de cours additionnel sur toutes les pages d'accueil de cours, et les enseignants peuvent lancer une conférence à tout moment. Les étudiants ne peuvent pas lancer de conférence, seulement en rejoindre.
-Si vous n'avez pas de serveur BigBlueButton fonctionnel, veuillez <a target=\"_blank\" href=\"http://bigbluebutton.org/\">en installer un</a> ou vous adresser aux <a target=\"_blank\" href=\"http://www.chamilo.org/en/providers\">fournisseurs officiels de Chamilo</a> pour pouvoir bénéficier de cette fonctionnalité.
-BigBlueButton est un logiciel libre et gratuit. Son installation requiert des compétences techniques particulières, ce qui demande un travail considérable et peut résulter coûteux si vous ne disposez pas desdites compétences.
+$BigBlueButtonEnableComment = "Choisissez si vous désirez activer l'outil de vidéoconférence BigBlueButton. Une fois activé, il apparaît comme un outil de cours additionnel sur toutes les pages d'accueil de cours, et les enseignants peuvent lancer une conférence à tout moment. Les étudiants ne peuvent pas lancer de conférence, seulement en rejoindre.
+Si vous n'avez pas de serveur BigBlueButton fonctionnel, veuillez <a target=\"_blank\" href=\"http://bigbluebutton.org/\">en installer un</a> ou vous adresser aux <a target=\"_blank\" href=\"http://www.chamilo.org/en/providers\">fournisseurs officiels de Chamilo</a> pour pouvoir bénéficier de cette fonctionnalité.
+BigBlueButton est un logiciel libre et gratuit. Son installation requiert des compétences techniques particulières, ce qui demande un travail considérable et peut résulter coûteux si vous ne disposez pas desdites compétences.
 Dans la logique du développement durable de notre projet, nous vous offrons la possibilité d'installer vous-même la solution ou de vous faire aider par des professionnels à l'expérience démontrée.";
 Dans la logique du développement durable de notre projet, nous vous offrons la possibilité d'installer vous-même la solution ou de vous faire aider par des professionnels à l'expérience démontrée.";
 $BigBlueButtonHostTitle = "Adresse du serveur BigBlueButton";
 $BigBlueButtonHostTitle = "Adresse du serveur BigBlueButton";
 $BigBlueButtonHostComment = "Veuillez indiquer l'adresse du serveur BigBlueButton. Ceci peut être <i>localhost</i>, une adresse IP (par exemple <i>192.168.13.54</i> ou un nom de domaine (par exemple <i>my.video.com</i>).";
 $BigBlueButtonHostComment = "Veuillez indiquer l'adresse du serveur BigBlueButton. Ceci peut être <i>localhost</i>, une adresse IP (par exemple <i>192.168.13.54</i> ou un nom de domaine (par exemple <i>my.video.com</i>).";
@@ -6215,8 +6215,8 @@ $Pediaphon = "Utiliser les services audio de Pediaphon";
 $HelpPediaphon = "Supporte des textes de plusieurs milliers de caractères et vous permet de choisir entre plusieurs types de voix masculines et féminines (dépendant de la langue). Les fichiers audio seront générés et automatiquement sauvegardés dans le répertoire Chamilo dans lequel vous vous trouvez.";
 $HelpPediaphon = "Supporte des textes de plusieurs milliers de caractères et vous permet de choisir entre plusieurs types de voix masculines et féminines (dépendant de la langue). Les fichiers audio seront générés et automatiquement sauvegardés dans le répertoire Chamilo dans lequel vous vous trouvez.";
 $FirstSelectALanguage = "Sélectionnez d'abord une langue";
 $FirstSelectALanguage = "Sélectionnez d'abord une langue";
 $MoveUserStats = "Déplacer les résultats utilisateurs dans/vers une session";
 $MoveUserStats = "Déplacer les résultats utilisateurs dans/vers une session";
-$CompareUserResultsBetweenCoursesAndCoursesInASession = "Cet outil avancé vous permet d'améliorer le suivi des résultats utilisateurs lorsque vous changez d'une méthodologie de purs cours vers une méthodologie de sessions (ou cycles de cours). Dans la plupart des cas, vous n'aurez pas besoin de cet outil.<br />
-Sur cet écran, vous pouvez comparer les résultats des utilisateurs entre un contexte de cours isolé et un contexte de session.<br />
+$CompareUserResultsBetweenCoursesAndCoursesInASession = "Cet outil avancé vous permet d'améliorer le suivi des résultats utilisateurs lorsque vous changez d'une méthodologie de purs cours vers une méthodologie de sessions (ou cycles de cours). Dans la plupart des cas, vous n'aurez pas besoin de cet outil.<br />
+Sur cet écran, vous pouvez comparer les résultats des utilisateurs entre un contexte de cours isolé et un contexte de session.<br />
 Une fois que vous vous êtes décidé sur le meilleur contexte au sein duquel devrait exister le suivi des utilisateurs (score des exercices et suivi des parcours), vous pourrez déplacer ce suivi d'un cours vers une session.";
 Une fois que vous vous êtes décidé sur le meilleur contexte au sein duquel devrait exister le suivi des utilisateurs (score des exercices et suivi des parcours), vous pourrez déplacer ce suivi d'un cours vers une session.";
 $PDFExportWatermarkEnableTitle = "Activer les filigranes dans les exports PDF";
 $PDFExportWatermarkEnableTitle = "Activer les filigranes dans les exports PDF";
 $PDFExportWatermarkEnableComment = "En activant cette fonctionnalité, vous pourrez utiliser une image ou un texte comme filigranne qui sera ajouté aux documents exportés en PDF.";
 $PDFExportWatermarkEnableComment = "En activant cette fonctionnalité, vous pourrez utiliser une image ou un texte comme filigranne qui sera ajouté aux documents exportés en PDF.";
@@ -6351,8 +6351,8 @@ $MailNotifyInvitation = "Avertir par mail de la réception d'une invitation";
 $MailNotifyMessage = "Avertir par mail de la réception d'un message";
 $MailNotifyMessage = "Avertir par mail de la réception d'un message";
 $MailNotifyGroupMessage = "Avertir par mail de la réception d'un message de groupe";
 $MailNotifyGroupMessage = "Avertir par mail de la réception d'un message de groupe";
 $SearchEnabledTitle = "Recherche full-text";
 $SearchEnabledTitle = "Recherche full-text";
-$SearchEnabledComment = "Cette fonctionnalité vous permet d'indexer la plupart des documents envoyés sur votre portail, et ainsi fournir à vos utilisateurs une fonctionnalité complète de recherche de contenus.<br />
-Cette fonctionnalité n'indexera pas les documents qui ont déjà été envoyés, c'est pourquoi il est important de l'activer au début d'une implémentation.<br />
+$SearchEnabledComment = "Cette fonctionnalité vous permet d'indexer la plupart des documents envoyés sur votre portail, et ainsi fournir à vos utilisateurs une fonctionnalité complète de recherche de contenus.<br />
+Cette fonctionnalité n'indexera pas les documents qui ont déjà été envoyés, c'est pourquoi il est important de l'activer au début d'une implémentation.<br />
 Une fois activée, une boîte de recherche apparaîtra dans la liste de cours des utilisateurs. La recherche sur un terme spécifique générera une liste des documents, exercices ou sujets de forum correspondants, filtrés selon la disponibilité de ces contenus pour les utilisateurs.";
 Une fois activée, une boîte de recherche apparaîtra dans la liste de cours des utilisateurs. La recherche sur un terme spécifique générera une liste des documents, exercices ou sujets de forum correspondants, filtrés selon la disponibilité de ces contenus pour les utilisateurs.";
 $SpecificSearchFieldsAvailable = "Champs de recherche personnalisables disponibles";
 $SpecificSearchFieldsAvailable = "Champs de recherche personnalisables disponibles";
 $XapianModuleInstalled = "Module Xapian installé";
 $XapianModuleInstalled = "Module Xapian installé";
@@ -7003,11 +7003,11 @@ $ShibbolethMainActivateTitle = "<h3>Configuration de l'authentification Shibbole
 $ShibbolethMainActivateComment = "<p>Vous devez, en premier lieu, configurer Shibboleth pour votre serveur web. Pour le configurer pour Chamilo.</p><h5>éditez le fichier main/auth/shibboleth/config/aai.class.php</h5><p>Modifiez les valeurs de l'objet &#36;result avec les nom des attributs retourné par votre serveur Shibboleth.</p>Les valeurs à modifier sont<ul><li>&#36;result-&gt;unique_id = 'mail';</li><li>&#36;result-&gt;firstname = 'cn';</li><li>&#36;result-&gt;lastname = 'uid';</li><li>&#36;result-&gt;email = 'mail';</li><li>&#36;result-&gt;language = '-';</li><li>&#36;result-&gt;gender = '-';</li><li>&#36;result-&gt;address = '-';</li><li>&#36;result-&gt;staff_category = '-';</li><li>&#36;result-&gt;home_organization_type = '-'; </li><li>&#36;result-&gt;home_organization = '-';</li><li>&#36;result-&gt;affiliation = '-';</li><li>&#36;result-&gt;persistent_id = '-';</li><li>...</li></ul><br/>Vous trouverez dans les <a href='settings.php?category=Shibboleth'>Plugin</a> un bouton 'Login Shibboleth', paramétrable, qui s'ajoutera sur la page d'accueil de votre campus Chamilo.";
 $ShibbolethMainActivateComment = "<p>Vous devez, en premier lieu, configurer Shibboleth pour votre serveur web. Pour le configurer pour Chamilo.</p><h5>éditez le fichier main/auth/shibboleth/config/aai.class.php</h5><p>Modifiez les valeurs de l'objet &#36;result avec les nom des attributs retourné par votre serveur Shibboleth.</p>Les valeurs à modifier sont<ul><li>&#36;result-&gt;unique_id = 'mail';</li><li>&#36;result-&gt;firstname = 'cn';</li><li>&#36;result-&gt;lastname = 'uid';</li><li>&#36;result-&gt;email = 'mail';</li><li>&#36;result-&gt;language = '-';</li><li>&#36;result-&gt;gender = '-';</li><li>&#36;result-&gt;address = '-';</li><li>&#36;result-&gt;staff_category = '-';</li><li>&#36;result-&gt;home_organization_type = '-'; </li><li>&#36;result-&gt;home_organization = '-';</li><li>&#36;result-&gt;affiliation = '-';</li><li>&#36;result-&gt;persistent_id = '-';</li><li>...</li></ul><br/>Vous trouverez dans les <a href='settings.php?category=Shibboleth'>Plugin</a> un bouton 'Login Shibboleth', paramétrable, qui s'ajoutera sur la page d'accueil de votre campus Chamilo.";
 $LdapDescriptionTitle = "Identification LDAP";
 $LdapDescriptionTitle = "Identification LDAP";
 $FacebookMainActivateTitle = "<h3>Configuration de l'authentification via Facebook</h3>";
 $FacebookMainActivateTitle = "<h3>Configuration de l'authentification via Facebook</h3>";
-$FacebookMainActivateComment = "<p>
-<h5>Créez votre apllication Facebook</h5>Vous devez, en premier lieu, créer une application Facebook (cf. <a href='https://developers.facebook.com/apps'>https://developers.facebook.com/apps</a>) avec votre compte Facebook.<br/>
-<h5>Éditez le fichier main/inc/conf/configuration.php</h5>Et décommentez la ligne &#36;_configuration['facebook_auth'] = 1;<br/><br/>
-<h5>Éditez le fichier main/inc/conf/auth.conf.php<br/></h5>Entrez les valeurs 'appId' et 'secret', fournies par Facebook, pour la variable &#36;facebook_config.<br/><br/>
-<h5>Éditez le fichier main/inc/conf/auth.conf.php</h5>Et décommentez les lignes &#36;facebook_config<br/><br/>
+$FacebookMainActivateComment = "<p>
+<h5>Créez votre apllication Facebook</h5>Vous devez, en premier lieu, créer une application Facebook (cf. <a href='https://developers.facebook.com/apps'>https://developers.facebook.com/apps</a>) avec votre compte Facebook.<br/>
+<h5>Éditez le fichier main/inc/conf/configuration.php</h5>Et décommentez la ligne &#36;_configuration['facebook_auth'] = 1;<br/><br/>
+<h5>Éditez le fichier main/inc/conf/auth.conf.php<br/></h5>Entrez les valeurs 'appId' et 'secret', fournies par Facebook, pour la variable &#36;facebook_config.<br/><br/>
+<h5>Éditez le fichier main/inc/conf/auth.conf.php</h5>Et décommentez les lignes &#36;facebook_config<br/><br/>
 <h5>Activez le plugin Facebook de Chamilo<br/></h5>Et placez le dans la région login_top ou login_bottom.<br/>Vous pouvez changer l'image de connexion dans les options de configuration du plugin.</p>";
 <h5>Activez le plugin Facebook de Chamilo<br/></h5>Et placez le dans la région login_top ou login_bottom.<br/>Vous pouvez changer l'image de connexion dans les options de configuration du plugin.</p>";
 $AnnouncementForGroup = "Annonce pour un groupe";
 $AnnouncementForGroup = "Annonce pour un groupe";
 $AllGroups = "Tous les groupes";
 $AllGroups = "Tous les groupes";
@@ -7433,7 +7433,7 @@ $AreYouSureToSubscribe = "Êtes-vous certain de vouloir vous inscrire?";
 $CheckYourEmailAndFollowInstructions = "Veuillez vérifier votre e-mail et suivre les instructions.";
 $CheckYourEmailAndFollowInstructions = "Veuillez vérifier votre e-mail et suivre les instructions.";
 $LinkExpired = "Lien expiré, merci de recommencer la procédure.";
 $LinkExpired = "Lien expiré, merci de recommencer la procédure.";
 $ResetPasswordInstructions = "Instructions de changement de mot de passe";
 $ResetPasswordInstructions = "Instructions de changement de mot de passe";
-$ResetPasswordCommentWithUrl = "Ce message vous est envoyé parce que vous (ou quelqu'un qui tente d'usurper votre identité) a demandé qu'un nouveau mot de passe soit généré pour votre compte. Pour configurer votre nouveau mot de passe, veuillez suivre le lien suivant: %s 
+$ResetPasswordCommentWithUrl = "Ce message vous est envoyé parce que vous (ou quelqu'un qui tente d'usurper votre identité) a demandé qu'un nouveau mot de passe soit généré pour votre compte. Pour configurer votre nouveau mot de passe, veuillez suivre le lien suivant: %s 
 Si vous n'avez rien demandé, vous pouvez ignorer ce message en toute tranquilité. Si vous n'avez rien demandé et que vous continuez de recevoir ces messages, merci de bien vouloir contacter l'administrateur du portail.";
 Si vous n'avez rien demandé, vous pouvez ignorer ce message en toute tranquilité. Si vous n'avez rien demandé et que vous continuez de recevoir ces messages, merci de bien vouloir contacter l'administrateur du portail.";
 $CronRemindCourseExpirationActivateTitle = "Cron de rappel de fin de cours";
 $CronRemindCourseExpirationActivateTitle = "Cron de rappel de fin de cours";
 $CronRemindCourseExpirationActivateComment = "Activez cette option pour envoyer un e-mail de rappel quand la fin du cours (session) approche (requiert la configuration d'un processus cron sur le serveur).";
 $CronRemindCourseExpirationActivateComment = "Activez cette option pour envoyer un e-mail de rappel quand la fin du cours (session) approche (requiert la configuration d'un processus cron sur le serveur).";
@@ -7442,12 +7442,12 @@ $CronRemindCourseExpirationFrequencyComment = "Quantité de jours avant la fin d
 $CronCourseFinishedActivateText = "Cron de fin du cours";
 $CronCourseFinishedActivateText = "Cron de fin du cours";
 $CronCourseFinishedActivateComment = "Activez pour envoyer un e-mail lorsque le cours est terminé";
 $CronCourseFinishedActivateComment = "Activez pour envoyer un e-mail lorsque le cours est terminé";
 $MailCronCourseFinishedSubject = "Fin du cours: %s";
 $MailCronCourseFinishedSubject = "Fin du cours: %s";
-$MailCronCourseFinishedBody = "Cher/Chère %s,
-
-Merci d'avoir participé au cours %s. Nous espérons que vous avez acquis de nouvelles connaissances et que vous avez pleinement profité du cours. Vous pouvez réviser votre progrès et votre développement personnel au sein du cours dans la section Mon Suivi.
-
-Cordialement,
-
+$MailCronCourseFinishedBody = "Cher/Chère %s,
+
+Merci d'avoir participé au cours %s. Nous espérons que vous avez acquis de nouvelles connaissances et que vous avez pleinement profité du cours. Vous pouvez réviser votre progrès et votre développement personnel au sein du cours dans la section Mon Suivi.
+
+Cordialement,
+
 %s";
 %s";
 $GenerateDefaultContent = "Générer du contenu par défaut";
 $GenerateDefaultContent = "Générer du contenu par défaut";
 $ThanksForYourSubscription = "Merci pour votre inscription";
 $ThanksForYourSubscription = "Merci pour votre inscription";
@@ -7669,7 +7669,7 @@ $LegalAccepted = "Accord légal accepté";
 $LoadTermConditionsSectionTitle = "Charger la section de termes et conditions";
 $LoadTermConditionsSectionTitle = "Charger la section de termes et conditions";
 $LoadTermConditionsSectionDescription = "L'accord légal apparaîtra au moment du login ou lorsque l'apprenant entre dans le cours.";
 $LoadTermConditionsSectionDescription = "L'accord légal apparaîtra au moment du login ou lorsque l'apprenant entre dans le cours.";
 $SendTermsSubject = "Votre contrat d'apprentissage est déjà signé.";
 $SendTermsSubject = "Votre contrat d'apprentissage est déjà signé.";
-$SendTermsDescriptionToUrlX = "Bonjour,
+$SendTermsDescriptionToUrlX = "Bonjour,
 Votre tuteur vous a envoyé votre contrat d'apprentissage. Vous pouvez le signer en suivant l'URL suivante: %s";
 Votre tuteur vous a envoyé votre contrat d'apprentissage. Vous pouvez le signer en suivant l'URL suivante: %s";
 $UserXSignedTheAgreement = "L'utilisateur %s a signé le contrat d'apprentissage.";
 $UserXSignedTheAgreement = "L'utilisateur %s a signé le contrat d'apprentissage.";
 $UserXSignedTheAgreementTheY = "L'utilisateur %s a signé son contrat d'apprentissage le %s.";
 $UserXSignedTheAgreementTheY = "L'utilisateur %s a signé son contrat d'apprentissage le %s.";

+ 129 - 129
main/lang/spanish/trad4all.inc.php

@@ -265,11 +265,11 @@ $AreYouSureDeleteTestResultBeforeDateD = "¿Está seguro que desea eliminar los
 $CleanStudentsResultsBeforeDate = "Eliminar todos los resultados antes de la fecha selecionada";
 $CleanStudentsResultsBeforeDate = "Eliminar todos los resultados antes de la fecha selecionada";
 $HGlossary = "Ayuda del glosario";
 $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";
 $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 = "<p>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.</p>
-<p>Para usar el foro de Chamilo, los alumnos del curso pueden simplemente usar su navegador - no requieren de ningun otro tipo de herramienta</p>
-<p>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).</p>
-<p>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.</p>
-<p>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</p>
+$ForumContent = "<p>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.</p>
+<p>Para usar el foro de Chamilo, los alumnos del curso pueden simplemente usar su navegador - no requieren de ningun otro tipo de herramienta</p>
+<p>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).</p>
+<p>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.</p>
+<p>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</p>
 <p><b>Tips de enseñanza:</b> 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.<br />Para hacerlo, pueden seguir el procedimiento siguiente:<br />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)</p>";
 <p><b>Tips de enseñanza:</b> 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.<br />Para hacerlo, pueden seguir el procedimiento siguiente:<br />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)</p>";
 $HForum = "Ayuda del foro";
 $HForum = "Ayuda del foro";
 $LoginToGoToThisCourse = "Conectarse para entrar al curso";
 $LoginToGoToThisCourse = "Conectarse para entrar al curso";
@@ -330,18 +330,18 @@ $DeleteUsersNotInList = "Desinscribir los alumnos que no están en una sesión e
 $IfSessionExistsUpdate = "Si la sesión existe, actualizarla con los datos del archivo";
 $IfSessionExistsUpdate = "Si la sesión existe, actualizarla con los datos del archivo";
 $CreatedByXYOnZ = "Creado/a por <a href=\"%s\">%s</a> el %s";
 $CreatedByXYOnZ = "Creado/a por <a href=\"%s\">%s</a> el %s";
 $LoginWithExternalAccount = "Ingresar con una cuenta externa";
 $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
+$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.";
 ANSWER_EXPLANATION: Este es un texto opcional de retroalimentación que aparecerá al costado de la respuesta correcta.";
 $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.";
 $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";
 $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";
@@ -431,16 +431,16 @@ $LatestVersionIs = "La última versión es";
 $YourVersionNotUpToDate = "Su versión está actualizada";
 $YourVersionNotUpToDate = "Su versión está actualizada";
 $Hotpotatoes = "Hotpotatoes";
 $Hotpotatoes = "Hotpotatoes";
 $ZeroMeansNoQuestionWillBeSelectedMinusOneMeansThatAllQuestionsWillBeSelected = "-1 = Todas las preguntas serán seleccionadas. 0 = Ninguna pregunta será seleccionada.";
 $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 }}";
 {{ course.code }}";
 $EmailNotificationTemplate = "Plantilla del correo electrónico enviado al usuario al terminar el ejercicio.";
 $EmailNotificationTemplate = "Plantilla del correo electrónico enviado al usuario al terminar el ejercicio.";
 $ExerciseEndButtonDisconnect = "Desconexión de la plataforma";
 $ExerciseEndButtonDisconnect = "Desconexión de la plataforma";
@@ -2640,16 +2640,16 @@ $NoPosts = "Sin publicaciones";
 $WithoutAchievedSkills = "Sin competencias logradas";
 $WithoutAchievedSkills = "Sin competencias logradas";
 $TypeMessage = "Por favor, escriba su mensaje";
 $TypeMessage = "Por favor, escriba su mensaje";
 $ConfirmReset = "¿Seguro que quiere borrar todos los mensajes?";
 $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";
 El equipo de %s";
 $MailCronCourseExpirationReminderSubject = "Urgente: Recordatorio de vencimiento de curso %s";
 $MailCronCourseExpirationReminderSubject = "Urgente: Recordatorio de vencimiento de curso %s";
 $ExerciseAndLearningPath = "Ejercicios y lecciones";
 $ExerciseAndLearningPath = "Ejercicios y lecciones";
@@ -5830,7 +5830,7 @@ $Item = "Ítem";
 $ConfigureDashboardPlugin = "Configurar el plugin del Panel de control";
 $ConfigureDashboardPlugin = "Configurar el plugin del Panel de control";
 $EditBlocks = "Editar bloques";
 $EditBlocks = "Editar bloques";
 $Never = "Nunca";
 $Never = "Nunca";
-$YourAccountIsActiveYouCanLoginAndCheckYourCourses = "Estimado usuario <br><br>
+$YourAccountIsActiveYouCanLoginAndCheckYourCourses = "Estimado usuario <br><br>
 Usted no esta activo en la plataforma, por favor inicie sesión nuevamente y revise sus cursos";
 Usted no esta activo en la plataforma, por favor inicie sesión nuevamente y revise sus cursos";
 $SessionFields = "Campos de sesión";
 $SessionFields = "Campos de sesión";
 $CopyLabelSuffix = "Copia";
 $CopyLabelSuffix = "Copia";
@@ -5888,12 +5888,12 @@ $SearchProfileMatches = "Buscar perfiles que correspondan";
 $IsThisWhatYouWereLookingFor = "Corresponde a lo que busca?";
 $IsThisWhatYouWereLookingFor = "Corresponde a lo que busca?";
 $WhatSkillsAreYouLookingFor = "Que competencias está buscando?";
 $WhatSkillsAreYouLookingFor = "Que competencias está buscando?";
 $ProfileSearch = "Búsqueda de perfil";
 $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.<br />
+$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.<br />
 %s";
 %s";
 $DirectLink = "Enlace directo";
 $DirectLink = "Enlace directo";
 $here = "aqui";
 $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.";
 $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,<br />
+$HelloXAsYouCanSeeYourCourseListIsEmpty = "Hola %s, te damos la bienvenida,<br />
 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.";
 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";
 $UnsubscribeUsersAlreadyAddedInCourse = "Desinscribir todos los alumnos ya inscritos";
 $ImportUsers = "Importar usuarios";
 $ImportUsers = "Importar usuarios";
@@ -6157,9 +6157,9 @@ $AverageScore = "Puntuación media";
 $LastConnexionDate = "Fecha de la última conexión";
 $LastConnexionDate = "Fecha de la última conexión";
 $ToolVideoconference = "Videoconferencia";
 $ToolVideoconference = "Videoconferencia";
 $BigBlueButtonEnableTitle = "Herramienta de videoconferencia BigBlueButton";
 $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 
-<a href=\"http://bigbluebutton.org/\" target=\"_blank\">configurar uno</a> o pida ayuda a los <a href=\"http://www.chamilo.org/en/providers\" target=\"_blank\">proveedores oficiales de Chamilo</a>.
+$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 
+<a href=\"http://bigbluebutton.org/\" target=\"_blank\">configurar uno</a> o pida ayuda a los <a href=\"http://www.chamilo.org/en/providers\" target=\"_blank\">proveedores oficiales de Chamilo</a>.
 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.";
 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";
 $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).";
 $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 @@ $OnlyAccessFromYourGroup = "Sólo accesible desde su grupo";
 $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.";
 $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";
 $UserFolders = "Carpetas de los usuarios";
 $UserFolder = "Carpeta del usuario";
 $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 circuntancias 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 circuntancias 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.";
 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.";
 $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.";
 $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 @@ $UploadCorrections = "Subir correcciones";
 $Text2AudioTitle = "Activar servicios de conversión de texto en audio";
 $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.";
 $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";
 $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.";
 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.";
 $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.";
 $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 @@ $Pediaphon = "Usar los servicios de audio de Pediaphon";
 $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.";
 $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";
 $FirstSelectALanguage = "Primero seleccione un idioma";
 $MoveUserStats = "Mover los resultados de los usuarios desde/hacia una sesión de formación";
 $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.<br />
-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.<br />
+$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.<br />
+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.<br />
 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.";
 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";
 $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.";
 $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 @@ $MailNotifyInvitation = "Notificar las invitaciones por correo electrónico";
 $MailNotifyMessage = "Notificar los mensajes por correo electrónico";
 $MailNotifyMessage = "Notificar los mensajes por correo electrónico";
 $MailNotifyGroupMessage = "Notificar en los grupos los mensajes por correo electrónico";
 $MailNotifyGroupMessage = "Notificar en los grupos los mensajes por correo electrónico";
 $SearchEnabledTitle = "Búsqueda a texto completo";
 $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.<br />
-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.<br />
+$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.<br />
+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.<br />
 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.";
 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";
 $SpecificSearchFieldsAvailable = "Campos de búsqueda personalizados disponibles";
 $XapianModuleInstalled = "Módulo Xapian instalado";
 $XapianModuleInstalled = "Módulo Xapian instalado";
@@ -7010,69 +7010,69 @@ $ResourceLockedByGradebook = "Esta opción no está disponible porque la activid
 $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).";
 $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";
 $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.";
 $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 = "<div class=\"alert alert-info\">
-        <ul>
-            <li>Autentificación LDAP: <br>
-                Véase I. a continuación para configurar LDAP<br>
-                Véase II. a continuación para activar la autentificación LDAP
-            </li>
-            <li>Actualizar los atributos de usuario, con los datos de LDAP, después de la autentificación CAS (véase <a href=\"settings.php?category=CAS\">Configuración CAS</a>): <br>
-                Véase I. a continuación para configurar LDAP<br>
-                Para gestionar la autentificación de usuarios por CAS, no se requere la activación de LDAP.
-            </li>
-        </ul>
-    </div>
-    <h4>I. Configuración de LDAP</h4>
-    <h5>Editar el archivo app/config/auth.conf.php </h5>
-    <p>-&gt; Editar los valores del array <code>\$extldap_config</code></p>
-    <ul>
-        <li>base domain string (p. ej.: 'base_dn' =&gt; 'DC=cblue,DC=be')</li>
-        <li>admin distinguished name (p. ej.: 'admin_dn' =&gt;'CN=admin,dc=cblue,dc=be')</li>
-        <li>admin password (p. ej.: 'admin_password' =&gt; '123456') </li>
-        <li>ldap host (p. ej.: 'host' =&gt; array('1.2.3.4', '2.3.4.5', '3.4.5.6'))</li>
-        <li>filter (p. ej.: 'filter' =&gt; '') </li>
-        <li>port (p. ej.: 'port' =&gt; 389) </li>
-        <li>protocol version (2 or 3) (p. ej.: 'protocol_version' =&gt; 3)</li>
-        <li>user_search (p. ej.: 'user_search' =&gt; 'sAMAccountName=%username%') </li>
-        <li>encoding (p. ej.: 'encoding' =&gt; 'UTF-8')</li>
-        <li>update_userinfo (p. ej.: 'update_userinfo' =&gt; true) </li>
-    </ul>
-    <p>-&gt; Para actualizar las correspondencias entre los atributos de usuario y LDAP, editar el array <code>\$extldap_user_correspondance</code></p>
-    <p>Los valores del Array son &lt;chamilo_field&gt; =&gt; &gt;ldap_field&gt;</p><p>
-    </p>
-    <h4>II. Activar la atenticación LDAP</h4>
-    <h5>Editar el archivo main/inc/conf/configuration.php </h5>
-    <p>-&gt; Descomentar las líneas:</p>
-    <ul>
-        <li>
-    \$extAuthSource[\"extldap\"][\"login\"] = \$_configuration['root_sys'].\"main/auth/external_login/login.ldap.php\";</li>
-        <li>\$extAuthSource[\"extldap\"][\"newUser\"] = \$_configuration['root_sys'].\"main/auth/external_login/newUser.ldap.php\";</li>
-    </ul>
-    <p>N.B.: Los usuarios de LDAP usan los mismos campos que los usuarios de la plataforma para iniciar sesión.<br>
+$LdapDescriptionComment = "<div class=\"alert alert-info\">
+        <ul>
+            <li>Autentificación LDAP: <br>
+                Véase I. a continuación para configurar LDAP<br>
+                Véase II. a continuación para activar la autentificación LDAP
+            </li>
+            <li>Actualizar los atributos de usuario, con los datos de LDAP, después de la autentificación CAS (véase <a href=\"settings.php?category=CAS\">Configuración CAS</a>): <br>
+                Véase I. a continuación para configurar LDAP<br>
+                Para gestionar la autentificación de usuarios por CAS, no se requere la activación de LDAP.
+            </li>
+        </ul>
+    </div>
+    <h4>I. Configuración de LDAP</h4>
+    <h5>Editar el archivo app/config/auth.conf.php </h5>
+    <p>-&gt; Editar los valores del array <code>\$extldap_config</code></p>
+    <ul>
+        <li>base domain string (p. ej.: 'base_dn' =&gt; 'DC=cblue,DC=be')</li>
+        <li>admin distinguished name (p. ej.: 'admin_dn' =&gt;'CN=admin,dc=cblue,dc=be')</li>
+        <li>admin password (p. ej.: 'admin_password' =&gt; '123456') </li>
+        <li>ldap host (p. ej.: 'host' =&gt; array('1.2.3.4', '2.3.4.5', '3.4.5.6'))</li>
+        <li>filter (p. ej.: 'filter' =&gt; '') </li>
+        <li>port (p. ej.: 'port' =&gt; 389) </li>
+        <li>protocol version (2 or 3) (p. ej.: 'protocol_version' =&gt; 3)</li>
+        <li>user_search (p. ej.: 'user_search' =&gt; 'sAMAccountName=%username%') </li>
+        <li>encoding (p. ej.: 'encoding' =&gt; 'UTF-8')</li>
+        <li>update_userinfo (p. ej.: 'update_userinfo' =&gt; true) </li>
+    </ul>
+    <p>-&gt; Para actualizar las correspondencias entre los atributos de usuario y LDAP, editar el array <code>\$extldap_user_correspondance</code></p>
+    <p>Los valores del Array son &lt;chamilo_field&gt; =&gt; &gt;ldap_field&gt;</p><p>
+    </p>
+    <h4>II. Activar la atenticación LDAP</h4>
+    <h5>Editar el archivo main/inc/conf/configuration.php </h5>
+    <p>-&gt; Descomentar las líneas:</p>
+    <ul>
+        <li>
+    \$extAuthSource[\"extldap\"][\"login\"] = \$_configuration['root_sys'].\"main/auth/external_login/login.ldap.php\";</li>
+        <li>\$extAuthSource[\"extldap\"][\"newUser\"] = \$_configuration['root_sys'].\"main/auth/external_login/newUser.ldap.php\";</li>
+    </ul>
+    <p>N.B.: Los usuarios de LDAP usan los mismos campos que los usuarios de la plataforma para iniciar sesión.<br>
     N.B.: La activación LDAP agrega un menú \"Autentificación externa\" [LDAP] en las páginas de \"agregar o modificar\" usuarios.</p>";
     N.B.: La activación LDAP agrega un menú \"Autentificación externa\" [LDAP] en las páginas de \"agregar o modificar\" usuarios.</p>";
 $ShibbolethMainActivateTitle = "<h3>Autenticación Shibboleth</h3>";
 $ShibbolethMainActivateTitle = "<h3>Autenticación Shibboleth</h3>";
-$ShibbolethMainActivateComment = "En primer lugar, tiene que configurar Shibboleth para su servidor web.
-
-Para configurarlo en Chamilo:
-
-editar el archivo  <strong> main/auth/shibboleth/config/aai.class.php</strong>
-
-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  <strong> main/auth/shibboleth/config/aai.class.php</strong>
+
+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.";
 Ir a Plug-in para añadir el botón 'Shibboleth Login' en su campus de Chamilo.";
 $LdapDescriptionTitle = "<h3>Autentificacion LDAP</h3>";
 $LdapDescriptionTitle = "<h3>Autentificacion LDAP</h3>";
 $FacebookMainActivateTitle = "Autenticación con Facebook";
 $FacebookMainActivateTitle = "Autenticación con Facebook";
@@ -7501,8 +7501,8 @@ $AreYouSureToSubscribe = "¿Está seguro de suscribirse?";
 $CheckYourEmailAndFollowInstructions = "Revise su correo electrónico y siga las instrucciones.";
 $CheckYourEmailAndFollowInstructions = "Revise su correo electrónico y siga las instrucciones.";
 $LinkExpired = "Enlace expirado, por favor vuelva a iniciar el proceso.";
 $LinkExpired = "Enlace expirado, por favor vuelva a iniciar el proceso.";
 $ResetPasswordInstructions = "Instrucciones para el procedimiento de cambio de contraseña";
 $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.";
 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";
 $CronRemindCourseExpirationActivateTitle = "Cron de Recordatorio de Expiración de Curso";
 $CronRemindCourseExpirationActivateComment = "Habilitar el cron de envío de recordatorio de expiración de cursos";
 $CronRemindCourseExpirationActivateComment = "Habilitar el cron de envío de recordatorio de expiración de cursos";
@@ -7511,14 +7511,14 @@ $CronRemindCourseExpirationFrequencyComment = "Número de días antes de la expi
 $CronCourseFinishedActivateText = "Cron de finalización de curso";
 $CronCourseFinishedActivateText = "Cron de finalización de curso";
 $CronCourseFinishedActivateComment = "Activar el cron de finalización de curso";
 $CronCourseFinishedActivateComment = "Activar el cron de finalización de curso";
 $MailCronCourseFinishedSubject = "Fin del curso %s";
 $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";
 El equipo de %s";
 $GenerateDefaultContent = "Generar contenido por defecto";
 $GenerateDefaultContent = "Generar contenido por defecto";
 $ThanksForYourSubscription = "¡Gracias por su suscripción!";
 $ThanksForYourSubscription = "¡Gracias por su suscripción!";
@@ -7740,8 +7740,8 @@ $LegalAccepted = "Acuerdo legal aceptado";
 $LoadTermConditionsSectionTitle = "Cargar la sección de términos y condiciones";
 $LoadTermConditionsSectionTitle = "Cargar la sección de términos y condiciones";
 $LoadTermConditionsSectionDescription = "El acuerdo legal aparecerá durante el login o cuando entre a un curso.";
 $LoadTermConditionsSectionDescription = "El acuerdo legal aparecerá durante el login o cuando entre a un curso.";
 $SendTermsSubject = "Su contrato de aprendizaje está listo para firmar.";
 $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";
 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.";
 $UserXSignedTheAgreement = "El usuario %s ha firmado el acuerdo.";
 $UserXSignedTheAgreementTheY = "El usuario %s ha firmado el acuerdo el %s.";
 $UserXSignedTheAgreementTheY = "El usuario %s ha firmado el acuerdo el %s.";

+ 6 - 1
main/mySpace/session.php

@@ -60,6 +60,11 @@ if (api_is_drh() || api_is_session_admin() || api_is_platform_admin()) {
         );
         );
     }
     }
 
 
+    $menu_items[] = Display::url(
+        Display::return_icon('works.png', get_lang('WorksReport'), [], ICON_SIZE_MEDIUM),
+        api_get_path(WEB_CODE_PATH) . 'mySpace/works_in_session_report.php'
+    );
+
     $actionsLeft = '';
     $actionsLeft = '';
     $nb_menu_items = count($menu_items);
     $nb_menu_items = count($menu_items);
     if ($nb_menu_items > 1) {
     if ($nb_menu_items > 1) {
@@ -82,7 +87,7 @@ if (api_is_drh() || api_is_session_admin() || api_is_platform_admin()) {
 
 
     $toolbar = Display::toolbarAction(
     $toolbar = Display::toolbarAction(
         'toolbar-session',
         'toolbar-session',
-        $content = array(0 => $actionsLeft, 1 => $actionsRight)
+        array($actionsLeft, $actionsRight)
     );
     );
     echo $toolbar;
     echo $toolbar;
 
 

+ 13 - 12
main/template/default/admin/teacher_time_report.tpl

@@ -22,19 +22,20 @@
             $('#daterange, [name="from"], [name="until"]').val('');
             $('#daterange, [name="from"], [name="until"]').val('');
         });
         });
     });
     });
-</script>
-<div class="col-md-12">
-    <div class="actions">
-        <a href="{{ _p.web_main }}admin/teachers_time_by_session_report.php">
-            {{ 'session.png'|img(32, 'Sessions'|get_lang) }}
-        </a>
-        <div class="pull-right">
-            <a href="{{ _p.web_self ~ '?' ~ {'export':'pdf','from':selectedFrom,'until':selectedUntil,'course':selectedCourse,'session':selectedSession,'teacher':selectedTeacher}|url_encode }}">
-                {{ 'pdf.png' | img(32, 'ExportToPDF'|get_lang ) }}
-            </a>
-            <a href="{{ _p.web_self ~ '?' ~ {'export':'xls','from':selectedFrom,'until':selectedUntil,'course':selectedCourse,'session':selectedSession,'teacher':selectedTeacher}|url_encode }}">
-                {{ 'export_excel.png' | img(32, 'ExportExcel'|get_lang ) }}
+    </script>
+    <div class="col-md-12">
+        <div class="actions">
+            <a href="{{ _p.web_main }}admin/teachers_time_by_session_report.php">
+                {{ 'session.png'|img(32, 'Sessions'|get_lang) }}
             </a>
             </a>
+            <div class="pull-right">
+                <a href="{{ _p.web_self ~ '?' ~ {'export':'pdf','from':selectedFrom,'until':selectedUntil,'course':selectedCourse,'session':selectedSession,'teacher':selectedTeacher}|url_encode }}">
+                    {{ 'pdf.png' | img(32, 'ExportToPDF'|get_lang ) }}
+                </a>
+                <a href="{{ _p.web_self ~ '?' ~ {'export':'xls','from':selectedFrom,'until':selectedUntil,'course':selectedCourse,'session':selectedSession,'teacher':selectedTeacher}|url_encode }}">
+                    {{ 'export_excel.png' | img(32, 'ExportExcel'|get_lang ) }}
+                </a>
+            </div>
         </div>
         </div>
     </div>
     </div>
     <h1 class="page-header">{{ 'TeacherTimeReport' | get_lang }}</h1>
     <h1 class="page-header">{{ 'TeacherTimeReport' | get_lang }}</h1>

+ 1 - 1
main/template/default/layout/head.tpl

@@ -10,7 +10,7 @@
 {{ favico }}
 {{ favico }}
 <link rel="apple-touch-icon" href="{{ _p.web }}apple-touch-icon.png" />
 <link rel="apple-touch-icon" href="{{ _p.web }}apple-touch-icon.png" />
 <meta name="apple-mobile-web-app-capable" content="yes" />
 <meta name="apple-mobile-web-app-capable" content="yes" />
-<meta name="Generator" content="{{ _s.software_name }} {{ _s.system_version|slice(0,1) }}" />
+<meta name="generator" content="{{ _s.software_name }} {{ _s.system_version|slice(0,1) }}" />
 {#  Use the latest engine in ie8/ie9 or use google chrome engine if available  #}
 {#  Use the latest engine in ie8/ie9 or use google chrome engine if available  #}
 {#  Improve usability in portal devices #}
 {#  Improve usability in portal devices #}
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">