From 088b20863ec2a51e0e893ab80ed787952df10d62 Mon Sep 17 00:00:00 2001 From: Fred Smith Date: Fri, 26 Jun 2015 14:30:39 -0400 Subject: [PATCH 01/98] upgrade to pymongo 2.8 to support updated authenticated method SCRAM-SHA-1 for mongodb-server 3.0 --- requirements/edx/base.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 4bb8bcde1f..7dc166fb25 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -63,7 +63,7 @@ pycrypto>=2.6 pygments==2.0.1 pygraphviz==1.1 PyJWT==1.0.1 -pymongo==2.7.2 +pymongo==2.8.1 pyparsing==2.0.1 python-memcached==1.48 python-openid==2.2.5 From c9fe2b975664a1bc6196b7decce00aa2ac937ed0 Mon Sep 17 00:00:00 2001 From: Jolyon Bloomfield Date: Sun, 16 Aug 2015 19:28:29 -0400 Subject: [PATCH 02/98] Fixing drag and drop labels --- common/static/js/capa/drag_and_drop/draggables.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/static/js/capa/drag_and_drop/draggables.js b/common/static/js/capa/drag_and_drop/draggables.js index a45bc519a3..faea44b761 100644 --- a/common/static/js/capa/drag_and_drop/draggables.js +++ b/common/static/js/capa/drag_and_drop/draggables.js @@ -289,7 +289,7 @@ define(['js/capa/drag_and_drop/draggable_events', 'js/capa/drag_and_drop/draggab draggableObj.iconEl.appendTo(draggableObj.containerEl); - draggableObj.iconWidth = draggableObj.iconEl.width(); + draggableObj.iconWidth = draggableObj.iconEl.width() + 1; draggableObj.iconHeight = draggableObj.iconEl.height(); draggableObj.iconWidthSmall = draggableObj.iconWidth; draggableObj.iconHeightSmall = draggableObj.iconHeight; From df5b2dadda636184116fa394105ea37e3ab3b867 Mon Sep 17 00:00:00 2001 From: Tim Krones Date: Wed, 22 Jul 2015 16:14:57 +0200 Subject: [PATCH 03/98] Move functionality for exporting a CSV of all student answers to a given problem from legacy instructor dash to new instructor dash. --- lms/djangoapps/instructor/tests/test_api.py | 120 +++++++++++++++++- lms/djangoapps/instructor/views/api.py | 49 ++++++- lms/djangoapps/instructor/views/api_urls.py | 2 + .../instructor/views/instructor_dashboard.py | 1 + lms/djangoapps/instructor/views/legacy.py | 29 ----- lms/djangoapps/instructor_analytics/basic.py | 41 +++++- .../instructor_analytics/tests/test_basic.py | 68 ++++++++-- lms/djangoapps/instructor_task/api.py | 16 +++ lms/djangoapps/instructor_task/tasks.py | 13 ++ .../instructor_task/tasks_helper.py | 42 +++++- .../instructor_task/tests/test_api.py | 9 ++ .../tests/test_tasks_helper.py | 27 ++++ .../instructor_dashboard/data_download.coffee | 18 +++ .../legacy_instructor_dashboard.html | 5 +- .../instructor_dashboard_2/data_download.html | 15 ++- 15 files changed, 400 insertions(+), 55 deletions(-) diff --git a/lms/djangoapps/instructor/tests/test_api.py b/lms/djangoapps/instructor/tests/test_api.py index 1703ae7960..54a63321d5 100644 --- a/lms/djangoapps/instructor/tests/test_api.py +++ b/lms/djangoapps/instructor/tests/test_api.py @@ -4,6 +4,7 @@ Unit tests for instructor.api methods. """ import datetime import ddt +import functools import random import pytz import io @@ -28,6 +29,7 @@ from mock import Mock, patch from nose.tools import raises from nose.plugins.attrib import attr from opaque_keys.edx.locations import SlashSeparatedCourseKey +from opaque_keys.edx.locator import UsageKey from course_modes.models import CourseMode from courseware.models import StudentModule @@ -107,6 +109,12 @@ REPORTS_DATA = ( 'instructor_api_endpoint': 'get_proctored_exam_results', 'task_api_endpoint': 'instructor_task.api.submit_proctored_exam_results_report', 'extra_instructor_api_kwargs': {}, + }, + { + 'report_type': 'problem responses', + 'instructor_api_endpoint': 'get_problem_responses', + 'task_api_endpoint': 'instructor_task.api.submit_calculate_problem_responses_csv', + 'extra_instructor_api_kwargs': {}, } ) @@ -230,6 +238,7 @@ class TestInstructorAPIDenyLevels(ModuleStoreTestCase, LoginEnrollmentTestCase): ('get_students_who_may_enroll', {}), ('get_exec_summary_report', {}), ('get_proctored_exam_results', {}), + ('get_problem_responses', {}), ] # Endpoints that only Instructors can access self.instructor_level_endpoints = [ @@ -282,6 +291,20 @@ class TestInstructorAPIDenyLevels(ModuleStoreTestCase, LoginEnrollmentTestCase): "Student should not be allowed to access endpoint " + endpoint ) + def _access_problem_responses_endpoint(self, msg): + """ + Access endpoint for problem responses report, ensuring that + UsageKey.from_string returns a problem key that the endpoint + can work with. + + msg: message to display if assertion fails. + """ + mock_problem_key = Mock(return_value=u'') + mock_problem_key.course_key = self.course.id + with patch.object(UsageKey, 'from_string') as patched_method: + patched_method.return_value = mock_problem_key + self._access_endpoint('get_problem_responses', {}, 200, msg) + def test_staff_level(self): """ Ensure that a staff member can't access instructor endpoints. @@ -297,6 +320,11 @@ class TestInstructorAPIDenyLevels(ModuleStoreTestCase, LoginEnrollmentTestCase): # TODO: make these work if endpoint in ['update_forum_role_membership', 'list_forum_members']: continue + elif endpoint == 'get_problem_responses': + self._access_problem_responses_endpoint( + "Staff member should be allowed to access endpoint " + endpoint + ) + continue self._access_endpoint( endpoint, args, @@ -326,6 +354,11 @@ class TestInstructorAPIDenyLevels(ModuleStoreTestCase, LoginEnrollmentTestCase): # TODO: make these work if endpoint in ['update_forum_role_membership']: continue + elif endpoint == 'get_problem_responses': + self._access_problem_responses_endpoint( + "Instructor should be allowed to access endpoint " + endpoint + ) + continue self._access_endpoint( endpoint, args, @@ -2268,6 +2301,78 @@ class TestInstructorAPILevelsDataDump(ModuleStoreTestCase, LoginEnrollmentTestCa self.assertEqual(res['total_used_codes'], used_codes) self.assertEqual(res['total_codes'], 5) + def test_get_problem_responses_invalid_location(self): + """ + Test whether get_problem_responses returns an appropriate status + message when users submit an invalid problem location. + """ + url = reverse( + 'get_problem_responses', + kwargs={'course_id': unicode(self.course.id)} + ) + problem_location = '' + + response = self.client.get(url, {'problem_location': problem_location}) + res_json = json.loads(response.content) + self.assertEqual(res_json, 'Could not find problem with this location.') + + def valid_problem_location(test): # pylint: disable=no-self-argument + """ + Decorator for tests that target get_problem_responses endpoint and + need to pretend user submitted a valid problem location. + """ + @functools.wraps(test) + def wrapper(self, *args, **kwargs): + """ + Run `test` method, ensuring that UsageKey.from_string returns a + problem key that the get_problem_responses endpoint can + work with. + """ + mock_problem_key = Mock(return_value=u'') + mock_problem_key.course_key = self.course.id + with patch.object(UsageKey, 'from_string') as patched_method: + patched_method.return_value = mock_problem_key + test(self, *args, **kwargs) + return wrapper + + @valid_problem_location + def test_get_problem_responses_successful(self): + """ + Test whether get_problem_responses returns an appropriate status + message if CSV generation was started successfully. + """ + url = reverse( + 'get_problem_responses', + kwargs={'course_id': unicode(self.course.id)} + ) + problem_location = '' + + response = self.client.get(url, {'problem_location': problem_location}) + res_json = json.loads(response.content) + self.assertIn('status', res_json) + status = res_json['status'] + self.assertIn('is being created', status) + self.assertNotIn('already in progress', status) + + @valid_problem_location + def test_get_problem_responses_already_running(self): + """ + Test whether get_problem_responses returns an appropriate status + message if CSV generation is already in progress. + """ + url = reverse( + 'get_problem_responses', + kwargs={'course_id': unicode(self.course.id)} + ) + + with patch('instructor_task.api.submit_calculate_problem_responses_csv') as submit_task_function: + error = AlreadyRunningError() + submit_task_function.side_effect = error + response = self.client.get(url, {}) + res_json = json.loads(response.content) + self.assertIn('status', res_json) + self.assertIn('already in progress', res_json['status']) + def test_get_students_features(self): """ Test that some minimum of information is formatted @@ -2571,16 +2676,21 @@ class TestInstructorAPILevelsDataDump(ModuleStoreTestCase, LoginEnrollmentTestCa @ddt.data(*REPORTS_DATA) @ddt.unpack + @valid_problem_location def test_calculate_report_csv_success(self, report_type, instructor_api_endpoint, task_api_endpoint, extra_instructor_api_kwargs): kwargs = {'course_id': unicode(self.course.id)} kwargs.update(extra_instructor_api_kwargs) url = reverse(instructor_api_endpoint, kwargs=kwargs) - - CourseFinanceAdminRole(self.course.id).add_users(self.instructor) - with patch(task_api_endpoint): - response = self.client.get(url, {}) success_status = "The {report_type} report is being created.".format(report_type=report_type) - self.assertIn(success_status, response.content) + if report_type == 'problem responses': + with patch(task_api_endpoint): + response = self.client.get(url, {'problem_location': ''}) + self.assertIn(success_status, response.content) + else: + CourseFinanceAdminRole(self.course.id).add_users(self.instructor) + with patch(task_api_endpoint): + response = self.client.get(url, {}) + self.assertIn(success_status, response.content) @ddt.data(*EXECUTIVE_SUMMARY_DATA) @ddt.unpack diff --git a/lms/djangoapps/instructor/views/api.py b/lms/djangoapps/instructor/views/api.py index 712b9e26fe..caf85b552b 100644 --- a/lms/djangoapps/instructor/views/api.py +++ b/lms/djangoapps/instructor/views/api.py @@ -35,7 +35,7 @@ from util.file import ( store_uploaded_file, course_and_time_based_filename_generator, FileValidationException, UniversalNewlineIterator ) -from util.json_request import JsonResponse +from util.json_request import JsonResponse, JsonResponseBadRequest from instructor.views.instructor_task_helpers import extract_email_features, extract_task_features from microsite_configuration import microsite @@ -107,7 +107,7 @@ from .tools import ( bulk_email_is_enabled_for_course, add_block_ids, ) -from opaque_keys.edx.keys import CourseKey +from opaque_keys.edx.keys import CourseKey, UsageKey from opaque_keys.edx.locations import SlashSeparatedCourseKey from opaque_keys import InvalidKeyError from openedx.core.djangoapps.course_groups.cohorts import is_course_cohorted @@ -887,6 +887,51 @@ def list_course_role_members(request, course_id): return JsonResponse(response_payload) +@ensure_csrf_cookie +@cache_control(no_cache=True, no_store=True, must_revalidate=True) +@require_level('staff') +def get_problem_responses(request, course_id): + """ + Initiate generation of a CSV file containing all student answers + to a given problem. + + Responds with JSON + {"status": "... status message ..."} + + if initiation is successful (or generation task is already running). + + Responds with BadRequest if problem location is faulty. + """ + course_key = CourseKey.from_string(course_id) + problem_location = request.GET.get('problem_location', '') + + try: + problem_key = UsageKey.from_string(problem_location) + # Are we dealing with an "old-style" problem location? + run = getattr(problem_key, 'run') + if not run: + problem_key = course_key.make_usage_key_from_deprecated_string(problem_location) + if problem_key.course_key != course_key: + raise InvalidKeyError(type(problem_key), problem_key) + except InvalidKeyError: + return JsonResponseBadRequest(_("Could not find problem with this location.")) + + try: + instructor_task.api.submit_calculate_problem_responses_csv(request, course_key, problem_location) + success_status = _( + "The problem responses report is being created." + " To view the status of the report, see Pending Tasks below." + ) + return JsonResponse({"status": success_status}) + except AlreadyRunningError: + already_running_status = _( + "A problem responses report generation task is already in progress. " + "Check the 'Pending Tasks' table for the status of the task. " + "When completed, the report will be available for download in the table below." + ) + return JsonResponse({"status": already_running_status}) + + @ensure_csrf_cookie @cache_control(no_cache=True, no_store=True, must_revalidate=True) @require_level('staff') diff --git a/lms/djangoapps/instructor/views/api_urls.py b/lms/djangoapps/instructor/views/api_urls.py index 2d2afeb55b..f24367a159 100644 --- a/lms/djangoapps/instructor/views/api_urls.py +++ b/lms/djangoapps/instructor/views/api_urls.py @@ -17,6 +17,8 @@ urlpatterns = patterns( 'instructor.views.api.modify_access', name="modify_access"), url(r'^bulk_beta_modify_access$', 'instructor.views.api.bulk_beta_modify_access', name="bulk_beta_modify_access"), + url(r'^get_problem_responses$', + 'instructor.views.api.get_problem_responses', name="get_problem_responses"), url(r'^get_grading_config$', 'instructor.views.api.get_grading_config', name="get_grading_config"), url(r'^get_students_features(?P/csv)?$', diff --git a/lms/djangoapps/instructor/views/instructor_dashboard.py b/lms/djangoapps/instructor/views/instructor_dashboard.py index a544a7d6ec..d2c351d691 100644 --- a/lms/djangoapps/instructor/views/instructor_dashboard.py +++ b/lms/djangoapps/instructor/views/instructor_dashboard.py @@ -489,6 +489,7 @@ def _section_data_download(course, access): 'section_display_name': _('Data Download'), 'access': access, 'show_generate_proctored_exam_report_button': settings.FEATURES.get('ENABLE_PROCTORED_EXAMS', False), + 'get_problem_responses_url': reverse('get_problem_responses', kwargs={'course_id': unicode(course_key)}), 'get_grading_config_url': reverse('get_grading_config', kwargs={'course_id': unicode(course_key)}), 'get_students_features_url': reverse('get_students_features', kwargs={'course_id': unicode(course_key)}), 'get_students_who_may_enroll_url': reverse( diff --git a/lms/djangoapps/instructor/views/legacy.py b/lms/djangoapps/instructor/views/legacy.py index b9118e4ec1..ac9e07261c 100644 --- a/lms/djangoapps/instructor/views/legacy.py +++ b/lms/djangoapps/instructor/views/legacy.py @@ -276,35 +276,6 @@ def instructor_dashboard(request, course_id): msg2, __ = _do_remote_gradebook(request.user, course, 'post-grades', files=files) msg += msg2 - #---------------------------------------- - # DataDump - - elif 'Download CSV of all responses to problem' in action: - problem_to_dump = request.POST.get('problem_to_dump', '') - - if problem_to_dump[-4:] == ".xml": - problem_to_dump = problem_to_dump[:-4] - try: - module_state_key = course_key.make_usage_key_from_deprecated_string(problem_to_dump) - smdat = StudentModule.objects.filter( - course_id=course_key, - module_state_key=module_state_key - ) - smdat = smdat.order_by('student') - msg += _("Found {num} records to dump.").format(num=smdat) - except Exception as err: # pylint: disable=broad-except - msg += "{text}
{err}
".format( - text=_("Couldn't find module with that urlname."), - err=escape(err) - ) - smdat = [] - - if smdat: - datatable = {'header': ['username', 'state']} - datatable['data'] = [[x.student.username, x.state] for x in smdat] - datatable['title'] = _('Student state for problem {problem}').format(problem=problem_to_dump) - return return_csv('student_state_from_{problem}.csv'.format(problem=problem_to_dump), datatable) - #---------------------------------------- # enrollment diff --git a/lms/djangoapps/instructor_analytics/basic.py b/lms/djangoapps/instructor_analytics/basic.py index 59af446680..8624d27b26 100644 --- a/lms/djangoapps/instructor_analytics/basic.py +++ b/lms/djangoapps/instructor_analytics/basic.py @@ -11,12 +11,14 @@ from shoppingcart.models import ( from django.db.models import Q from django.conf import settings from django.contrib.auth.models import User -from django.core.urlresolvers import reverse -import xmodule.graders as xmgraders from django.core.exceptions import ObjectDoesNotExist +from django.core.urlresolvers import reverse +from opaque_keys.edx.keys import UsageKey +import xmodule.graders as xmgraders from microsite_configuration import microsite from student.models import CourseEnrollmentAllowed from edx_proctoring.api import get_all_exam_attempts +from courseware.models import StudentModule STUDENT_FEATURES = ('id', 'username', 'first_name', 'last_name', 'is_staff', 'email') @@ -317,6 +319,41 @@ def coupon_codes_features(features, coupons_list, course_id): return [extract_coupon(coupon, features) for coupon in coupons_list] +def list_problem_responses(course_key, problem_location): + """ + Return responses to a given problem as a dict. + + list_problem_responses(course_key, problem_location) + + would return [ + {'username': u'user1', 'state': u'...'}, + {'username': u'user2', 'state': u'...'}, + {'username': u'user3', 'state': u'...'}, + ] + + where `state` represents a student's response to the problem + identified by `problem_location`. + """ + problem_key = UsageKey.from_string(problem_location) + # Are we dealing with an "old-style" problem location? + run = getattr(problem_key, 'run') + if not run: + problem_key = course_key.make_usage_key_from_deprecated_string(problem_location) + if problem_key.course_key != course_key: + return [] + + smdat = StudentModule.objects.filter( + course_id=course_key, + module_state_key=problem_key + ) + smdat = smdat.order_by('student') + + return [ + {'username': response.student.username, 'state': response.state} + for response in smdat + ] + + def course_registration_features(features, registration_codes, csv_type): """ Return list of Course Registration Codes as dictionaries. diff --git a/lms/djangoapps/instructor_analytics/tests/test_basic.py b/lms/djangoapps/instructor_analytics/tests/test_basic.py index 80b8cfaaff..d03180a8a2 100644 --- a/lms/djangoapps/instructor_analytics/tests/test_basic.py +++ b/lms/djangoapps/instructor_analytics/tests/test_basic.py @@ -2,27 +2,29 @@ Tests for instructor.basic """ -import json import datetime -from django.db.models import Q +import json import pytz -from student.models import CourseEnrollment, CourseEnrollmentAllowed +from mock import MagicMock, Mock, patch from django.core.urlresolvers import reverse -from mock import patch +from django.db.models import Q + +from course_modes.models import CourseMode +from courseware.tests.factories import InstructorFactory +from instructor_analytics.basic import ( + StudentModule, sale_record_features, sale_order_record_features, enrolled_students_features, + course_registration_features, coupon_codes_features, get_proctored_exam_results, list_may_enroll, + list_problem_responses, AVAILABLE_FEATURES, STUDENT_FEATURES, PROFILE_FEATURES +) +from opaque_keys.edx.locator import UsageKey +from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory +from student.models import CourseEnrollment, CourseEnrollmentAllowed from student.roles import CourseSalesAdminRole from student.tests.factories import UserFactory, CourseModeFactory from shoppingcart.models import ( CourseRegistrationCode, RegistrationCodeRedemption, Order, Invoice, Coupon, CourseRegCodeItem, CouponRedemption, CourseRegistrationCodeInvoiceItem ) -from course_modes.models import CourseMode -from instructor_analytics.basic import ( - sale_record_features, sale_order_record_features, enrolled_students_features, - course_registration_features, coupon_codes_features, list_may_enroll, - AVAILABLE_FEATURES, STUDENT_FEATURES, PROFILE_FEATURES, - get_proctored_exam_results) -from openedx.core.djangoapps.course_groups.tests.helpers import CohortFactory -from courseware.tests.factories import InstructorFactory from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory from edx_proctoring.api import create_exam @@ -51,6 +53,48 @@ class TestAnalyticsBasic(ModuleStoreTestCase): email=student.email, course_id=self.course_key ) + def test_list_problem_responses(self): + def result_factory(result_id): + """ + Return a dummy StudentModule object that can be queried for + relevant info (student.username and state). + """ + result = Mock(spec=['student', 'state']) + result.student.username.return_value = u'user{}'.format(result_id) + result.state.return_value = u'state{}'.format(result_id) + return result + + # Ensure that UsageKey.from_string returns a problem key that list_problem_responses can work with + # (even when called with a dummy location): + mock_problem_key = Mock(return_value=u'') + mock_problem_key.course_key = self.course_key + with patch.object(UsageKey, 'from_string') as patched_from_string: + patched_from_string.return_value = mock_problem_key + + # Ensure that StudentModule.objects.filter returns a result set that list_problem_responses can work with + # (this keeps us from having to create fixtures for this test): + mock_results = MagicMock(return_value=[result_factory(n) for n in range(5)]) + with patch.object(StudentModule, 'objects') as patched_manager: + patched_manager.filter.return_value = mock_results + + mock_problem_location = '' + problem_responses = list_problem_responses(self.course_key, problem_location=mock_problem_location) + + # Check if list_problem_responses called UsageKey.from_string to look up problem key: + patched_from_string.assert_called_once_with(mock_problem_location) + # Check if list_problem_responses called StudentModule.objects.filter to obtain relevant records: + patched_manager.filter.assert_called_once_with( + course_id=self.course_key, module_state_key=mock_problem_key + ) + + # Check if list_problem_responses returned expected results: + self.assertEqual(len(problem_responses), len(mock_results)) + for mock_result in mock_results: + self.assertTrue( + {'username': mock_result.student.username, 'state': mock_result.state} in + problem_responses + ) + def test_enrolled_students_features_username(self): self.assertIn('username', AVAILABLE_FEATURES) userreports = enrolled_students_features(self.course_key, ['username']) diff --git a/lms/djangoapps/instructor_task/api.py b/lms/djangoapps/instructor_task/api.py index de4c14f8c2..a1bb562536 100644 --- a/lms/djangoapps/instructor_task/api.py +++ b/lms/djangoapps/instructor_task/api.py @@ -18,6 +18,7 @@ from instructor_task.tasks import ( reset_problem_attempts, delete_problem_state, send_bulk_course_email, + calculate_problem_responses_csv, calculate_grades_csv, calculate_problem_grade_report, calculate_students_features_csv, @@ -328,6 +329,21 @@ def submit_bulk_course_email(request, course_key, email_id): return submit_task(request, task_type, task_class, course_key, task_input, task_key) +def submit_calculate_problem_responses_csv(request, course_key, problem_location): # pylint: disable=invalid-name + """ + Submits a task to generate a CSV file containing all student + answers to a given problem. + + Raises AlreadyRunningError if said file is already being updated. + """ + task_type = 'problem_responses_csv' + task_class = calculate_problem_responses_csv + task_input = {'problem_location': problem_location} + task_key = "" + + return submit_task(request, task_type, task_class, course_key, task_input, task_key) + + def submit_calculate_grades_csv(request, course_key): """ AlreadyRunningError is raised if the course's grades are already being updated. diff --git a/lms/djangoapps/instructor_task/tasks.py b/lms/djangoapps/instructor_task/tasks.py index de5ab34f86..7f61b8ba52 100644 --- a/lms/djangoapps/instructor_task/tasks.py +++ b/lms/djangoapps/instructor_task/tasks.py @@ -34,6 +34,7 @@ from instructor_task.tasks_helper import ( rescore_problem_module_state, reset_attempts_module_state, delete_problem_module_state, + upload_problem_responses_csv, upload_grades_csv, upload_problem_grade_report, upload_students_csv, @@ -145,6 +146,18 @@ def send_bulk_course_email(entry_id, _xmodule_instance_args): return run_main_task(entry_id, visit_fcn, action_name) +@task(base=BaseInstructorTask, routing_key=settings.GRADES_DOWNLOAD_ROUTING_KEY) # pylint: disable=not-callable +def calculate_problem_responses_csv(entry_id, xmodule_instance_args): + """ + Compute student answers to a given problem and upload the CSV to + an S3 bucket for download. + """ + # Translators: This is a past-tense verb that is inserted into task progress messages as {action}. + action_name = ugettext_noop('generated') + task_fn = partial(upload_problem_responses_csv, xmodule_instance_args) + return run_main_task(entry_id, task_fn, action_name) + + @task(base=BaseInstructorTask, routing_key=settings.GRADES_DOWNLOAD_ROUTING_KEY) # pylint: disable=not-callable def calculate_grades_csv(entry_id, xmodule_instance_args): """ diff --git a/lms/djangoapps/instructor_task/tasks_helper.py b/lms/djangoapps/instructor_task/tasks_helper.py index 0d9f72d68d..59c4463614 100644 --- a/lms/djangoapps/instructor_task/tasks_helper.py +++ b/lms/djangoapps/instructor_task/tasks_helper.py @@ -4,6 +4,7 @@ running state of a course. """ import json +import re from collections import OrderedDict from datetime import datetime from django.conf import settings @@ -46,7 +47,12 @@ from courseware.grades import iterate_grades_for from courseware.models import StudentModule from courseware.model_data import DjangoKeyValueStore, FieldDataCache from courseware.module_render import get_module_for_descriptor_internal -from instructor_analytics.basic import enrolled_students_features, list_may_enroll, get_proctored_exam_results +from instructor_analytics.basic import ( + enrolled_students_features, + get_proctored_exam_results, + list_may_enroll, + list_problem_responses +) from instructor_analytics.csvs import format_dictlist from instructor_task.models import ReportStore, InstructorTask, PROGRESS from lms.djangoapps.lms_xblock.runtime import LmsPartitionService @@ -849,6 +855,40 @@ def _order_problems(blocks): return problems +def upload_problem_responses_csv(_xmodule_instance_args, _entry_id, course_id, task_input, action_name): + """ + For a given `course_id`, generate a CSV file containing + all student answers to a given problem, and store using a `ReportStore`. + """ + start_time = time() + start_date = datetime.now(UTC) + num_reports = 1 + task_progress = TaskProgress(action_name, num_reports, start_time) + current_step = {'step': 'Calculating students answers to problem'} + task_progress.update_task_state(extra_meta=current_step) + + # Compute result table and format it + problem_location = task_input.get('problem_location') + student_data = list_problem_responses(course_id, problem_location) + features = ['username', 'state'] + header, rows = format_dictlist(student_data, features) + + task_progress.attempted = task_progress.succeeded = len(rows) + task_progress.skipped = task_progress.total - task_progress.attempted + + rows.insert(0, header) + + current_step = {'step': 'Uploading CSV'} + task_progress.update_task_state(extra_meta=current_step) + + # Perform the upload + problem_location = re.sub(r'[:/]', '_', problem_location) + csv_name = 'student_state_from_{}'.format(problem_location) + upload_csv_to_report_store(rows, csv_name, course_id, start_date) + + return task_progress.update_task_state(extra_meta=current_step) + + def upload_problem_grade_report(_xmodule_instance_args, _entry_id, course_id, _task_input, action_name): """ Generate a CSV containing all students' problem grades within a given diff --git a/lms/djangoapps/instructor_task/tests/test_api.py b/lms/djangoapps/instructor_task/tests/test_api.py index 3145272484..113aeeb440 100644 --- a/lms/djangoapps/instructor_task/tests/test_api.py +++ b/lms/djangoapps/instructor_task/tests/test_api.py @@ -14,6 +14,7 @@ from instructor_task.api import ( submit_reset_problem_attempts_for_all_students, submit_delete_problem_state_for_all_students, submit_bulk_course_email, + submit_calculate_problem_responses_csv, submit_calculate_students_features_csv, submit_cohort_students, submit_detailed_enrollment_features_csv, @@ -203,6 +204,14 @@ class InstructorTaskCourseSubmitTest(TestReportMixin, InstructorTaskCourseTestCa ) self._test_resubmission(api_call) + def test_submit_calculate_problem_responses(self): + api_call = lambda: submit_calculate_problem_responses_csv( + self.create_task_request(self.instructor), + self.course.id, + problem_location='' + ) + self._test_resubmission(api_call) + def test_submit_calculate_students_features(self): api_call = lambda: submit_calculate_students_features_csv( self.create_task_request(self.instructor), diff --git a/lms/djangoapps/instructor_task/tests/test_tasks_helper.py b/lms/djangoapps/instructor_task/tests/test_tasks_helper.py index 12210c4260..c6701ebc55 100644 --- a/lms/djangoapps/instructor_task/tests/test_tasks_helper.py +++ b/lms/djangoapps/instructor_task/tests/test_tasks_helper.py @@ -33,6 +33,7 @@ from xmodule.partitions.partitions import Group, UserPartition from instructor_task.models import ReportStore from instructor_task.tasks_helper import ( cohort_students_and_upload, + upload_problem_responses_csv, upload_grades_csv, upload_problem_grade_report, upload_students_csv, @@ -277,6 +278,32 @@ class TestInstructorGradeReport(TestReportMixin, InstructorTaskCourseTestCase): self.assertDictContainsSubset({'attempted': 1, 'succeeded': 1, 'failed': 0}, result) +class TestProblemResponsesReport(TestReportMixin, InstructorTaskCourseTestCase): + """ + Tests that generation of CSV files listing student answers to a + given problem works. + """ + def setUp(self): + super(TestProblemResponsesReport, self).setUp() + self.course = CourseFactory.create() + + def test_success(self): + task_input = {'problem_location': ''} + with patch('instructor_task.tasks_helper._get_current_task'): + with patch('instructor_task.tasks_helper.list_problem_responses') as patched_data_source: + patched_data_source.return_value = [ + {'username': 'user0', 'state': u'state0'}, + {'username': 'user1', 'state': u'state1'}, + {'username': 'user2', 'state': u'state2'}, + ] + result = upload_problem_responses_csv(None, None, self.course.id, task_input, 'calculated') + report_store = ReportStore.from_config(config_name='GRADES_DOWNLOAD') + links = report_store.links_for(self.course.id) + + self.assertEquals(len(links), 1) + self.assertDictContainsSubset({'attempted': 3, 'succeeded': 3, 'failed': 0}, result) + + @ddt.ddt @patch.dict('django.conf.settings.FEATURES', {'ENABLE_PAID_COURSE_REGISTRATION': True}) class TestInstructorDetailedEnrollmentReport(TestReportMixin, InstructorTaskCourseTestCase): diff --git a/lms/static/coffee/src/instructor_dashboard/data_download.coffee b/lms/static/coffee/src/instructor_dashboard/data_download.coffee index 85badfc316..55e5f40562 100644 --- a/lms/static/coffee/src/instructor_dashboard/data_download.coffee +++ b/lms/static/coffee/src/instructor_dashboard/data_download.coffee @@ -22,6 +22,8 @@ class DataDownload @$list_studs_csv_btn = @$section.find("input[name='list-profiles-csv']'") @$list_proctored_exam_results_csv_btn = @$section.find("input[name='proctored-exam-results-report']'") @$list_may_enroll_csv_btn = @$section.find("input[name='list-may-enroll-csv']") + @$list_problem_responses_csv_input = @$section.find("input[name='problem-location']") + @$list_problem_responses_csv_btn = @$section.find("input[name='list-problem-responses-csv']") @$list_anon_btn = @$section.find("input[name='list-anon-ids']'") @$grade_config_btn = @$section.find("input[name='dump-gradeconf']'") @$calculate_grades_csv_btn = @$section.find("input[name='calculate-grades-csv']'") @@ -117,6 +119,22 @@ class DataDownload grid = new Slick.Grid($table_placeholder, grid_data, columns, options) # grid.autosizeColumns() + @$list_problem_responses_csv_btn.click (e) => + @clear_display() + + url = @$list_problem_responses_csv_btn.data 'endpoint' + $.ajax + dataType: 'json' + url: url + data: + problem_location: @$list_problem_responses_csv_input.val() + error: (std_ajax_err) => + @$reports_request_response_error.text JSON.parse(std_ajax_err['responseText']) + $(".msg-error").css({"display":"block"}) + success: (data) => + @$reports_request_response.text data['status'] + $(".msg-confirm").css({"display":"block"}) + @$list_may_enroll_csv_btn.click (e) => @clear_display() diff --git a/lms/templates/courseware/legacy_instructor_dashboard.html b/lms/templates/courseware/legacy_instructor_dashboard.html index 2aa0376a9e..28724da62d 100644 --- a/lms/templates/courseware/legacy_instructor_dashboard.html +++ b/lms/templates/courseware/legacy_instructor_dashboard.html @@ -361,9 +361,8 @@ function goto( mode) %if modeflag.get('Data'):
-

${_("Problem urlname:")} - - +

+ ${_("To download a CSV listing student responses to a given problem, visit the Data Download section of the Instructor Dashboard.")}

diff --git a/lms/templates/instructor/instructor_dashboard_2/data_download.html b/lms/templates/instructor/instructor_dashboard_2/data_download.html index a38ba21aac..36f897be16 100644 --- a/lms/templates/instructor/instructor_dashboard_2/data_download.html +++ b/lms/templates/instructor/instructor_dashboard_2/data_download.html @@ -39,6 +39,19 @@

${_("Click to generate a CSV file of all proctored exam results in this course.")}

%endif + +

${_("To generate a CSV file that lists all student answers to a given problem, enter the location of the problem (from its Staff Debug Info).")}

+ +

+ +

+

+ +

+ % if not disable_buttons:

${_("For smaller courses, click to list profile information for enrolled students directly on this page:")}

@@ -54,7 +67,7 @@ %endif
-
+

${_("Reports Available for Download")}

From 26f06d4a556e5263abf1d960c9602b410d1011f2 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Wed, 19 Aug 2015 16:32:15 -0400 Subject: [PATCH 04/98] Record the number of blocks requested in get_many --- lms/djangoapps/courseware/user_state_client.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lms/djangoapps/courseware/user_state_client.py b/lms/djangoapps/courseware/user_state_client.py index 5827f658e5..bf211230b1 100644 --- a/lms/djangoapps/courseware/user_state_client.py +++ b/lms/djangoapps/courseware/user_state_client.py @@ -136,6 +136,8 @@ class DjangoXBlockUserStateClient(XBlockUserStateClient): block_count = state_length = 0 evt_time = time() + self._ddog_histogram(evt_time, 'get_many.blks_requested', len(block_keys)) + modules = self._get_student_modules(username, block_keys) for module, usage_key in modules: if module.state is None: From d3c08f89ed31942193ba0aa51adce4a2388a12bb Mon Sep 17 00:00:00 2001 From: Chris Dodge Date: Tue, 18 Aug 2015 18:04:36 -0400 Subject: [PATCH 05/98] add the ability to persist the course_key where the user answered the survey --- .../courseware/tests/test_course_survey.py | 52 +++++++++++- ...auto__add_field_surveyanswer_course_key.py | 80 +++++++++++++++++++ lms/djangoapps/survey/models.py | 46 +++++++++-- lms/djangoapps/survey/tests/test_models.py | 79 +++++++++++++++--- lms/djangoapps/survey/tests/test_utils.py | 2 +- lms/djangoapps/survey/tests/test_views.py | 20 ++++- lms/djangoapps/survey/views.py | 6 +- lms/templates/survey/survey.html | 2 + 8 files changed, 264 insertions(+), 23 deletions(-) create mode 100644 lms/djangoapps/survey/migrations/0002_auto__add_field_surveyanswer_course_key.py diff --git a/lms/djangoapps/courseware/tests/test_course_survey.py b/lms/djangoapps/courseware/tests/test_course_survey.py index a06a77b372..9dbcb69ad4 100644 --- a/lms/djangoapps/courseware/tests/test_course_survey.py +++ b/lms/djangoapps/courseware/tests/test_course_survey.py @@ -4,10 +4,12 @@ Python tests for the Survey workflows from collections import OrderedDict from nose.plugins.attrib import attr +from copy import deepcopy from django.core.urlresolvers import reverse +from django.contrib.auth.models import User -from survey.models import SurveyForm +from survey.models import SurveyForm, SurveyAnswer from xmodule.modulestore.tests.factories import CourseFactory from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase @@ -65,6 +67,8 @@ class SurveyViewsTests(LoginEnrollmentTestCase, ModuleStoreTestCase, XssTestMixi self.enroll(self.course_without_survey, True) self.enroll(self.course_with_bogus_survey, True) + self.user = User.objects.get(email=email) + self.view_url = reverse('view_survey', args=[self.test_survey_name]) self.postback_url = reverse('submit_answers', args=[self.test_survey_name]) @@ -137,6 +141,52 @@ class SurveyViewsTests(LoginEnrollmentTestCase, ModuleStoreTestCase, XssTestMixi self._assert_no_redirect(self.course) + def test_course_id_field(self): + """ + Assert that the course_id will be in the form fields, if available + """ + + resp = self.client.get( + reverse( + 'course_survey', + kwargs={'course_id': unicode(self.course.id)} + ) + ) + + self.assertEqual(resp.status_code, 200) + expected = ''.format( + course_id=unicode(self.course.id) + ) + + self.assertContains(resp, expected) + + def test_course_id_persists(self): + """ + Assert that a posted back course_id is stored in the database + """ + + answers = deepcopy(self.student_answers) + answers.update({ + 'course_id': unicode(self.course.id) + }) + + resp = self.client.post( + self.postback_url, + answers + ) + self.assertEquals(resp.status_code, 200) + + self._assert_no_redirect(self.course) + + # however we want to make sure we persist the course_id + answer_objs = SurveyAnswer.objects.filter( + user=self.user, + form=self.survey + ) + + for answer_obj in answer_objs: + self.assertEquals(answer_obj.course_key, self.course.id) + def test_visiting_course_with_bogus_survey(self): """ Verifies that going to the courseware with a required, but non-existing survey, does not redirect diff --git a/lms/djangoapps/survey/migrations/0002_auto__add_field_surveyanswer_course_key.py b/lms/djangoapps/survey/migrations/0002_auto__add_field_surveyanswer_course_key.py new file mode 100644 index 0000000000..28ad94775e --- /dev/null +++ b/lms/djangoapps/survey/migrations/0002_auto__add_field_surveyanswer_course_key.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'SurveyAnswer.course_key' + db.add_column('survey_surveyanswer', 'course_key', + self.gf('xmodule_django.models.CourseKeyField')(max_length=255, null=True, db_index=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'SurveyAnswer.course_key' + db.delete_column('survey_surveyanswer', 'course_key') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'survey.surveyanswer': { + 'Meta': {'object_name': 'SurveyAnswer'}, + 'course_key': ('xmodule_django.models.CourseKeyField', [], {'max_length': '255', 'null': 'True', 'db_index': 'True'}), + 'created': ('model_utils.fields.AutoCreatedField', [], {'default': 'datetime.datetime.now'}), + 'field_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), + 'field_value': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + 'form': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['survey.SurveyForm']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('model_utils.fields.AutoLastModifiedField', [], {'default': 'datetime.datetime.now'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'survey.surveyform': { + 'Meta': {'object_name': 'SurveyForm'}, + 'created': ('model_utils.fields.AutoCreatedField', [], {'default': 'datetime.datetime.now'}), + 'form': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'modified': ('model_utils.fields.AutoLastModifiedField', [], {'default': 'datetime.datetime.now'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}) + } + } + + complete_apps = ['survey'] \ No newline at end of file diff --git a/lms/djangoapps/survey/models.py b/lms/djangoapps/survey/models.py index 40e176bee4..88b9696364 100644 --- a/lms/djangoapps/survey/models.py +++ b/lms/djangoapps/survey/models.py @@ -13,6 +13,8 @@ from model_utils.models import TimeStampedModel from survey.exceptions import SurveyFormNameAlreadyExists, SurveyFormNotFound +from xmodule_django.models import CourseKeyField + log = logging.getLogger("edx.survey") @@ -104,7 +106,7 @@ class SurveyForm(TimeStampedModel): """ return SurveyAnswer.do_survey_answers_exist(self, user) - def save_user_answers(self, user, answers): + def save_user_answers(self, user, answers, course_key): """ Store answers to the form for a given user. Answers is a dict of simple name/value pairs @@ -112,7 +114,16 @@ class SurveyForm(TimeStampedModel): IMPORTANT: There is no validaton of form answers at this point. All data supplied to this method is presumed to be previously validated """ - SurveyAnswer.save_answers(self, user, answers) + + # first remove any answer the user might have done before + self.clear_user_answers(user) + SurveyAnswer.save_answers(self, user, answers, course_key) + + def clear_user_answers(self, user): + """ + Removes all answers that a user has submitted + """ + SurveyAnswer.objects.filter(form=self, user=user).delete() def get_field_names(self): """ @@ -135,7 +146,10 @@ class SurveyForm(TimeStampedModel): # NOTE: This wrapping doesn't change the ability to query it tree = etree.fromstring(u'
{}
'.format(html)) - input_fields = tree.findall('.//input') + tree.findall('.//select') + input_fields = ( + tree.findall('.//input') + tree.findall('.//select') + + tree.findall('.//textarea') + ) for input_field in input_fields: if 'name' in input_field.keys() and input_field.attrib['name'] not in names: @@ -153,6 +167,10 @@ class SurveyAnswer(TimeStampedModel): field_name = models.CharField(max_length=255, db_index=True) field_value = models.CharField(max_length=1024) + # adding the course_id where the end-user answered the survey question + # since it didn't exist in the beginning, it is nullable + course_key = CourseKeyField(max_length=255, db_index=True, null=True) + @classmethod def do_survey_answers_exist(cls, form, user): """ @@ -205,7 +223,7 @@ class SurveyAnswer(TimeStampedModel): return results @classmethod - def save_answers(cls, form, user, answers): + def save_answers(cls, form, user, answers, course_key): """ Store answers to the form for a given user. Answers is a dict of simple name/value pairs @@ -219,6 +237,20 @@ class SurveyAnswer(TimeStampedModel): # See if there is an answer stored for this user, form, field_name pair or not # this will allow for update cases. This does include an additional lookup, # but write operations will be relatively infrequent - answer, __ = SurveyAnswer.objects.get_or_create(user=user, form=form, field_name=name) - answer.field_value = value - answer.save() + value = answers[name] + defaults = {"field_value": value} + if course_key: + defaults['course_key'] = course_key + + answer, created = SurveyAnswer.objects.get_or_create( + user=user, + form=form, + field_name=name, + defaults=defaults + ) + + if not created: + # Allow for update cases. + answer.field_value = value + answer.course_key = course_key + answer.save() diff --git a/lms/djangoapps/survey/tests/test_models.py b/lms/djangoapps/survey/tests/test_models.py index 370fe53184..8edbea5d16 100644 --- a/lms/djangoapps/survey/tests/test_models.py +++ b/lms/djangoapps/survey/tests/test_models.py @@ -2,6 +2,7 @@ Python tests for the Survey models """ +import ddt from collections import OrderedDict from django.test import TestCase @@ -10,9 +11,10 @@ from django.contrib.auth.models import User from survey.exceptions import SurveyFormNotFound, SurveyFormNameAlreadyExists from django.core.exceptions import ValidationError -from survey.models import SurveyForm +from survey.models import SurveyForm, SurveyAnswer +@ddt.ddt class SurveyModelsTests(TestCase): """ All tests for the Survey models.py file @@ -32,12 +34,22 @@ class SurveyModelsTests(TestCase): self.test_survey_name = 'TestForm' self.test_form = '
  • ' self.test_form_update = '' + self.course_id = 'foo/bar/baz' self.student_answers = OrderedDict({ 'field1': 'value1', 'field2': 'value2', }) + self.student_answers_update = OrderedDict({ + 'field1': 'value1-updated', + 'field2': 'value2-updated', + }) + + self.student_answers_update2 = OrderedDict({ + 'field1': 'value1-updated2', + }) + self.student2_answers = OrderedDict({ 'field1': 'value3' }) @@ -142,7 +154,8 @@ class SurveyModelsTests(TestCase): self.assertFalse(survey.has_user_answered_survey(self.student)) self.assertEquals(len(survey.get_answers()), 0) - def test_single_user_answers(self): + @ddt.data(None, 'foo/bar/baz') + def test_single_user_answers(self, course_id): """ Create a new survey and add answers to it """ @@ -150,7 +163,7 @@ class SurveyModelsTests(TestCase): survey = self._create_test_survey() self.assertIsNotNone(survey) - survey.save_user_answers(self.student, self.student_answers) + survey.save_user_answers(self.student, self.student_answers, course_id) self.assertTrue(survey.has_user_answered_survey(self.student)) @@ -164,6 +177,19 @@ class SurveyModelsTests(TestCase): self.assertTrue(self.student.id in answers) self.assertEquals(all_answers[self.student.id], self.student_answers) + # check that the course_id was set + + answer_objs = SurveyAnswer.objects.filter( + user=self.student, + form=survey + ) + + for answer_obj in answer_objs: + if course_id: + self.assertEquals(unicode(answer_obj.course_key), course_id) + else: + self.assertIsNone(answer_obj.course_key) + def test_multiple_user_answers(self): """ Create a new survey and add answers to it @@ -172,8 +198,8 @@ class SurveyModelsTests(TestCase): survey = self._create_test_survey() self.assertIsNotNone(survey) - survey.save_user_answers(self.student, self.student_answers) - survey.save_user_answers(self.student2, self.student2_answers) + survey.save_user_answers(self.student, self.student_answers, self.course_id) + survey.save_user_answers(self.student2, self.student2_answers, self.course_id) self.assertTrue(survey.has_user_answered_survey(self.student)) @@ -187,12 +213,43 @@ class SurveyModelsTests(TestCase): answers = survey.get_answers(self.student) self.assertEquals(len(answers.keys()), 1) self.assertTrue(self.student.id in answers) - self.assertEquals(all_answers[self.student.id], self.student_answers) + self.assertEquals(answers[self.student.id], self.student_answers) answers = survey.get_answers(self.student2) self.assertEquals(len(answers.keys()), 1) self.assertTrue(self.student2.id in answers) - self.assertEquals(all_answers[self.student2.id], self.student2_answers) + self.assertEquals(answers[self.student2.id], self.student2_answers) + + def test_update_answers(self): + """ + Make sure the update case works + """ + + survey = self._create_test_survey() + self.assertIsNotNone(survey) + + survey.save_user_answers(self.student, self.student_answers, self.course_id) + + answers = survey.get_answers(self.student) + self.assertEquals(len(answers.keys()), 1) + self.assertTrue(self.student.id in answers) + self.assertEquals(answers[self.student.id], self.student_answers) + + # update + survey.save_user_answers(self.student, self.student_answers_update, self.course_id) + + answers = survey.get_answers(self.student) + self.assertEquals(len(answers.keys()), 1) + self.assertTrue(self.student.id in answers) + self.assertEquals(answers[self.student.id], self.student_answers_update) + + # update with just a subset of the origin dataset + survey.save_user_answers(self.student, self.student_answers_update2, self.course_id) + + answers = survey.get_answers(self.student) + self.assertEquals(len(answers.keys()), 1) + self.assertTrue(self.student.id in answers) + self.assertEquals(answers[self.student.id], self.student_answers_update2) def test_limit_num_users(self): """ @@ -201,8 +258,8 @@ class SurveyModelsTests(TestCase): """ survey = self._create_test_survey() - survey.save_user_answers(self.student, self.student_answers) - survey.save_user_answers(self.student2, self.student2_answers) + survey.save_user_answers(self.student, self.student_answers, self.course_id) + survey.save_user_answers(self.student2, self.student2_answers, self.course_id) # even though we have 2 users submitted answers # limit the result set to just 1 @@ -217,8 +274,8 @@ class SurveyModelsTests(TestCase): survey = self._create_test_survey() self.assertIsNotNone(survey) - survey.save_user_answers(self.student, self.student_answers) - survey.save_user_answers(self.student2, self.student2_answers) + survey.save_user_answers(self.student, self.student_answers, self.course_id) + survey.save_user_answers(self.student2, self.student2_answers, self.course_id) names = survey.get_field_names() diff --git a/lms/djangoapps/survey/tests/test_utils.py b/lms/djangoapps/survey/tests/test_utils.py index 320a4ad93c..00c1d3ea41 100644 --- a/lms/djangoapps/survey/tests/test_utils.py +++ b/lms/djangoapps/survey/tests/test_utils.py @@ -108,7 +108,7 @@ class SurveyModelsTests(ModuleStoreTestCase): """ Assert that a new course which has a required survey and user has answers for it """ - self.survey.save_user_answers(self.student, self.student_answers) + self.survey.save_user_answers(self.student, self.student_answers, None) self.assertFalse(must_answer_survey(self.course, self.student)) def test_staff_must_answer_survey(self): diff --git a/lms/djangoapps/survey/tests/test_views.py b/lms/djangoapps/survey/tests/test_views.py index 2d1d718e87..66f4c3f0c7 100644 --- a/lms/djangoapps/survey/tests/test_views.py +++ b/lms/djangoapps/survey/tests/test_views.py @@ -9,7 +9,7 @@ from django.test.client import Client from django.contrib.auth.models import User from django.core.urlresolvers import reverse -from survey.models import SurveyForm +from survey.models import SurveyForm, SurveyAnswer from xmodule.modulestore.tests.factories import CourseFactory from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase @@ -32,15 +32,20 @@ class SurveyViewsTests(ModuleStoreTestCase): self.student = User.objects.create_user('student', 'student@test.com', self.password) self.test_survey_name = 'TestSurvey' - self.test_form = '' + self.test_form = ''' + + <%= gettext("Description of the certificate") %> +
    + + <%= course.get('name') %> +
    " value="<%= course_title %>" aria-describedby="certificate-course-title-<%=uniqueId %>-tip" /> From 406d5a9186434923564e89b20781fe7303dda5ce Mon Sep 17 00:00:00 2001 From: Kevin Falcone Date: Thu, 3 Sep 2015 14:38:20 -0400 Subject: [PATCH 82/98] Add details to the admin listing of LTI Consumers This mimics the data displayed in our oauth2 client listing and allows you to search on identifying fields. --- lms/djangoapps/lti_provider/admin.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/lti_provider/admin.py b/lms/djangoapps/lti_provider/admin.py index d330d708c9..43aa7dac29 100644 --- a/lms/djangoapps/lti_provider/admin.py +++ b/lms/djangoapps/lti_provider/admin.py @@ -6,4 +6,10 @@ from django.contrib import admin from .models import LtiConsumer -admin.site.register(LtiConsumer) + +class LtiConsumerAdmin(admin.ModelAdmin): + """Admin for LTI Consumer""" + search_fields = ('consumer_name', 'consumer_key', 'instance_guid') + list_display = ('id', 'consumer_name', 'consumer_key', 'instance_guid') + +admin.site.register(LtiConsumer, LtiConsumerAdmin) From 447e0cf8384a2282075babf099e57abe3cd284d4 Mon Sep 17 00:00:00 2001 From: Peter Fogg Date: Thu, 3 Sep 2015 16:12:38 -0400 Subject: [PATCH 83/98] Mark test_video_control_events as flaky. --- common/test/acceptance/tests/video/test_video_events.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/common/test/acceptance/tests/video/test_video_events.py b/common/test/acceptance/tests/video/test_video_events.py index 629fb6db06..b6abc5cdd5 100644 --- a/common/test/acceptance/tests/video/test_video_events.py +++ b/common/test/acceptance/tests/video/test_video_events.py @@ -11,6 +11,8 @@ from ...pages.lms.video.video import _parse_time_str from openedx.core.lib.tests.assertions.events import assert_event_matches, assert_events_equal from opaque_keys.edx.keys import UsageKey, CourseKey +from flaky import flaky + class VideoEventsTestMixin(EventsTestMixin, VideoBaseTest): """ @@ -60,6 +62,7 @@ class VideoEventsTestMixin(EventsTestMixin, VideoBaseTest): class VideoEventsTest(VideoEventsTestMixin): """ Test video player event emission """ + @flaky def test_video_control_events(self): """ Scenario: Video component is rendered in the LMS in Youtube mode without HTML5 sources From dff9f745e4f72cd380bbca9ea2c9afbbc827588e Mon Sep 17 00:00:00 2001 From: Ben Patterson Date: Thu, 3 Sep 2015 17:19:53 -0400 Subject: [PATCH 84/98] Reference appropriate JIRA ticket as a TODO. --- common/test/acceptance/tests/video/test_video_events.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/test/acceptance/tests/video/test_video_events.py b/common/test/acceptance/tests/video/test_video_events.py index b6abc5cdd5..6e0121b7f0 100644 --- a/common/test/acceptance/tests/video/test_video_events.py +++ b/common/test/acceptance/tests/video/test_video_events.py @@ -62,7 +62,7 @@ class VideoEventsTestMixin(EventsTestMixin, VideoBaseTest): class VideoEventsTest(VideoEventsTestMixin): """ Test video player event emission """ - @flaky + @flaky # TODO: AN-5867 def test_video_control_events(self): """ Scenario: Video component is rendered in the LMS in Youtube mode without HTML5 sources From f47a53eb66f6fc54dc85881ccae37729bebffd06 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Wed, 2 Sep 2015 17:03:07 -0400 Subject: [PATCH 85/98] Update edx-lint to 0.2.6 This gets us checking for tests inheriting from other tests. When that happens, tests get run more than once, which is pointless. We have a few dozen new warnings due to this new check. This also disables unused-wildcard-import. That removes a few hundred warnings. Together, this means we can reduce the pylint limit to 5999. :) --- pylintrc | 3 ++- requirements/edx/github.txt | 2 +- scripts/all-tests.sh | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pylintrc b/pylintrc index 680947da4a..5d39a610cb 100644 --- a/pylintrc +++ b/pylintrc @@ -48,6 +48,7 @@ disable = too-many-branches, too-many-arguments, too-many-locals, + unused-wildcard-import, duplicate-code [REPORTS] @@ -151,4 +152,4 @@ int-import-graph = [EXCEPTIONS] overgeneral-exceptions = Exception -# 0f5810dfd8c52cdd91c425550319ae6040a8fe3e +# 6a610602e4c093047ed189c9a0d4ba796c7d1622 diff --git a/requirements/edx/github.txt b/requirements/edx/github.txt index 9bb76eaba7..b51d4c3377 100644 --- a/requirements/edx/github.txt +++ b/requirements/edx/github.txt @@ -49,7 +49,7 @@ git+https://github.com/edx/edx-oauth2-provider.git@0.5.6#egg=oauth2-provider==0. -e git+https://github.com/pmitros/RecommenderXBlock.git@518234bc354edbfc2651b9e534ddb54f96080779#egg=recommender-xblock -e git+https://github.com/edx/edx-search.git@release-2015-07-22#egg=edx-search -e git+https://github.com/edx/edx-milestones.git@9b44a37edc3d63a23823c21a63cdd53ef47a7aa4#egg=edx-milestones -git+https://github.com/edx/edx-lint.git@b109a40c61277c52dcb396bf15e33755f5dbf5fa#egg=edx_lint==0.2.4 +git+https://github.com/edx/edx-lint.git@178819aae155f8f14db4ebb6866c867fb17d5000#egg=edx_lint==0.2.6 -e git+https://github.com/edx/xblock-utils.git@213a97a50276d6a2504d8133650b2930ead357a0#egg=xblock-utils -e git+https://github.com/edx-solutions/xblock-google-drive.git@138e6fa0bf3a2013e904a085b9fed77dab7f3f21#egg=xblock-google-drive -e git+https://github.com/edx/edx-reverification-block.git@5e77525cab256a20a0cf182fcf5471369b284ff1#egg=edx-reverification-block diff --git a/scripts/all-tests.sh b/scripts/all-tests.sh index 80dd3c6851..bcd0035719 100755 --- a/scripts/all-tests.sh +++ b/scripts/all-tests.sh @@ -11,7 +11,7 @@ set -e ############################################################################### # Violations thresholds for failing the build -export PYLINT_THRESHOLD=6175 +export PYLINT_THRESHOLD=5999 export JSHINT_THRESHOLD=3700 doCheckVars() { From 4d1194800eff392bf01026f218d8d803b4676656 Mon Sep 17 00:00:00 2001 From: William Ono Date: Thu, 28 May 2015 14:16:37 -0700 Subject: [PATCH 86/98] Support LTI third-party-auth providers PR #8930 --- common/djangoapps/student/helpers.py | 2 +- common/djangoapps/student/views.py | 9 +- common/djangoapps/third_party_auth/admin.py | 25 ++- common/djangoapps/third_party_auth/lti.py | 202 ++++++++++++++++++ .../migrations/0004_lti_tool_consumers.py | 149 +++++++++++++ common/djangoapps/third_party_auth/models.py | 73 +++++++ .../djangoapps/third_party_auth/pipeline.py | 7 +- .../djangoapps/third_party_auth/provider.py | 18 +- .../djangoapps/third_party_auth/strategy.py | 4 +- .../tests/data/lti_cannot_add_get_params.txt | 1 + .../tests/data/lti_garbage.txt | 1 + .../tests/data/lti_invalid_signature.txt | 1 + .../tests/data/lti_old_timestamp.txt | 1 + .../tests/data/lti_valid_request.txt | 1 + .../lti_valid_request_with_get_params.txt | 1 + .../third_party_auth/tests/specs/test_lti.py | 159 ++++++++++++++ .../tests/specs/test_testshib.py | 13 +- .../third_party_auth/tests/test_lti.py | 133 ++++++++++++ .../third_party_auth/tests/testutil.py | 39 +++- common/djangoapps/third_party_auth/urls.py | 3 +- common/djangoapps/third_party_auth/views.py | 20 +- lms/djangoapps/student_account/views.py | 17 +- lms/envs/aws.py | 2 + lms/envs/test.py | 1 + .../account_settings_factory_spec.js | 2 + .../account_settings_fields_spec.js | 1 + .../views/account_settings_factory.js | 1 + .../views/account_settings_fields.js | 11 +- lms/templates/login.html | 2 +- lms/templates/register.html | 2 +- .../student_profile/third_party_auth.html | 2 +- openedx/core/djangoapps/user_api/views.py | 39 ++-- 32 files changed, 879 insertions(+), 63 deletions(-) create mode 100644 common/djangoapps/third_party_auth/lti.py create mode 100644 common/djangoapps/third_party_auth/migrations/0004_lti_tool_consumers.py create mode 100644 common/djangoapps/third_party_auth/tests/data/lti_cannot_add_get_params.txt create mode 100644 common/djangoapps/third_party_auth/tests/data/lti_garbage.txt create mode 100644 common/djangoapps/third_party_auth/tests/data/lti_invalid_signature.txt create mode 100644 common/djangoapps/third_party_auth/tests/data/lti_old_timestamp.txt create mode 100644 common/djangoapps/third_party_auth/tests/data/lti_valid_request.txt create mode 100644 common/djangoapps/third_party_auth/tests/data/lti_valid_request_with_get_params.txt create mode 100644 common/djangoapps/third_party_auth/tests/specs/test_lti.py create mode 100644 common/djangoapps/third_party_auth/tests/test_lti.py diff --git a/common/djangoapps/student/helpers.py b/common/djangoapps/student/helpers.py index f5ce8a770a..4449ecaa6d 100644 --- a/common/djangoapps/student/helpers.py +++ b/common/djangoapps/student/helpers.py @@ -189,7 +189,7 @@ def auth_pipeline_urls(auth_entry, redirect_url=None): return { provider.provider_id: third_party_auth.pipeline.get_login_url( provider.provider_id, auth_entry, redirect_url=redirect_url - ) for provider in third_party_auth.provider.Registry.enabled() + ) for provider in third_party_auth.provider.Registry.accepting_logins() } diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py index 07b7c5f37a..0f262df3cc 100644 --- a/common/djangoapps/student/views.py +++ b/common/djangoapps/student/views.py @@ -447,10 +447,11 @@ def register_user(request, extra_context=None): if third_party_auth.is_enabled() and pipeline.running(request): running_pipeline = pipeline.get(request) current_provider = provider.Registry.get_from_pipeline(running_pipeline) - overrides = current_provider.get_register_form_data(running_pipeline.get('kwargs')) - overrides['running_pipeline'] = running_pipeline - overrides['selected_provider'] = current_provider.name - context.update(overrides) + if current_provider is not None: + overrides = current_provider.get_register_form_data(running_pipeline.get('kwargs')) + overrides['running_pipeline'] = running_pipeline + overrides['selected_provider'] = current_provider.name + context.update(overrides) return render_to_response('register.html', context) diff --git a/common/djangoapps/third_party_auth/admin.py b/common/djangoapps/third_party_auth/admin.py index a949f3fcb0..6b2a9bfccb 100644 --- a/common/djangoapps/third_party_auth/admin.py +++ b/common/djangoapps/third_party_auth/admin.py @@ -6,7 +6,7 @@ Admin site configuration for third party authentication from django.contrib import admin from config_models.admin import ConfigurationModelAdmin, KeyedConfigurationModelAdmin -from .models import OAuth2ProviderConfig, SAMLProviderConfig, SAMLConfiguration, SAMLProviderData +from .models import OAuth2ProviderConfig, SAMLProviderConfig, SAMLConfiguration, SAMLProviderData, LTIProviderConfig from .tasks import fetch_saml_metadata @@ -88,3 +88,26 @@ class SAMLProviderDataAdmin(admin.ModelAdmin): return self.readonly_fields admin.site.register(SAMLProviderData, SAMLProviderDataAdmin) + + +class LTIProviderConfigAdmin(KeyedConfigurationModelAdmin): + """ Django Admin class for LTIProviderConfig """ + + exclude = ( + 'icon_class', + 'secondary', + ) + + def get_list_display(self, request): + """ Don't show every single field in the admin change list """ + return ( + 'name', + 'enabled', + 'lti_consumer_key', + 'lti_max_timestamp_age', + 'change_date', + 'changed_by', + 'edit_link', + ) + +admin.site.register(LTIProviderConfig, LTIProviderConfigAdmin) diff --git a/common/djangoapps/third_party_auth/lti.py b/common/djangoapps/third_party_auth/lti.py new file mode 100644 index 0000000000..222f76a388 --- /dev/null +++ b/common/djangoapps/third_party_auth/lti.py @@ -0,0 +1,202 @@ +""" +Third-party-auth module for Learning Tools Interoperability +""" +import logging +import calendar +import time + +from django.contrib.auth import REDIRECT_FIELD_NAME +from oauthlib.common import Request +from oauthlib.oauth1.rfc5849.signature import ( + normalize_base_string_uri, + normalize_parameters, + collect_parameters, + construct_base_string, + sign_hmac_sha1, +) +from social.backends.base import BaseAuth +from social.exceptions import AuthFailed +from social.utils import sanitize_redirect + +log = logging.getLogger(__name__) + +LTI_PARAMS_KEY = 'tpa-lti-params' + + +class LTIAuthBackend(BaseAuth): + """ + Third-party-auth module for Learning Tools Interoperability + """ + + name = 'lti' + + def start(self): + """ + Prepare to handle a login request. + + This method replaces social.actions.do_auth and must be kept in sync + with any upstream changes in that method. In the current version of + the upstream, this means replacing the logic to populate the session + from request parameters, and not calling backend.start() to avoid + an unwanted redirect to the non-existent login page. + """ + + # Clean any partial pipeline data + self.strategy.clean_partial_pipeline() + + # Save validated LTI parameters (or None if invalid or not submitted) + validated_lti_params = self.get_validated_lti_params(self.strategy) + + # Set a auth_entry here so we don't have to receive that as a custom parameter + self.strategy.session_setdefault('auth_entry', 'login') + + if not validated_lti_params: + self.strategy.session_set(LTI_PARAMS_KEY, None) + raise AuthFailed(self, "LTI parameters could not be validated.") + else: + self.strategy.session_set(LTI_PARAMS_KEY, validated_lti_params) + + # Save extra data into session. + # While Basic LTI 1.0 specifies that the message is to be signed using OAuth, implying + # that any GET parameters should be stripped from the base URL and included as signed + # parameters, typical LTI Tool Consumer implementations do not support this behaviour. As + # a workaround, we accept TPA parameters from LTI custom parameters prefixed with "tpa_". + + for field_name in self.setting('FIELDS_STORED_IN_SESSION', []): + if 'custom_tpa_' + field_name in validated_lti_params: + self.strategy.session_set(field_name, validated_lti_params['custom_tpa_' + field_name]) + + if 'custom_tpa_' + REDIRECT_FIELD_NAME in validated_lti_params: + # Check and sanitize a user-defined GET/POST next field value + redirect_uri = validated_lti_params['custom_tpa_' + REDIRECT_FIELD_NAME] + if self.setting('SANITIZE_REDIRECTS', True): + redirect_uri = sanitize_redirect(self.strategy.request_host(), redirect_uri) + self.strategy.session_set(REDIRECT_FIELD_NAME, redirect_uri or self.setting('LOGIN_REDIRECT_URL')) + + def auth_html(self): + """ + Not used + """ + raise NotImplementedError("Not used") + + def auth_url(self): + """ + Not used + """ + raise NotImplementedError("Not used") + + def auth_complete(self, *args, **kwargs): + """ + Completes third-part-auth authentication + """ + lti_params = self.strategy.session_get(LTI_PARAMS_KEY) + kwargs.update({'response': {LTI_PARAMS_KEY: lti_params}, 'backend': self}) + return self.strategy.authenticate(*args, **kwargs) + + def get_user_id(self, details, response): + """ + Computes social auth username from LTI parameters + """ + lti_params = response[LTI_PARAMS_KEY] + return lti_params['oauth_consumer_key'] + ":" + lti_params['user_id'] + + def get_user_details(self, response): + """ + Retrieves user details from LTI parameters + """ + details = {} + lti_params = response[LTI_PARAMS_KEY] + + def add_if_exists(lti_key, details_key): + """ + Adds LTI parameter to user details dict if it exists + """ + if lti_key in lti_params and lti_params[lti_key]: + details[details_key] = lti_params[lti_key] + + add_if_exists('email', 'email') + add_if_exists('lis_person_name_full', 'fullname') + add_if_exists('lis_person_name_given', 'first_name') + add_if_exists('lis_person_name_family', 'last_name') + return details + + @classmethod + def get_validated_lti_params(cls, strategy): + """ + Validates LTI signature and returns LTI parameters + """ + request = Request( + uri=strategy.request.build_absolute_uri(), http_method=strategy.request.method, body=strategy.request.body + ) + lti_consumer_key = request.oauth_consumer_key + (lti_consumer_valid, lti_consumer_secret, lti_max_timestamp_age) = cls.load_lti_consumer(lti_consumer_key) + current_time = calendar.timegm(time.gmtime()) + return cls._get_validated_lti_params_from_values( + request=request, current_time=current_time, + lti_consumer_valid=lti_consumer_valid, + lti_consumer_secret=lti_consumer_secret, + lti_max_timestamp_age=lti_max_timestamp_age + ) + + @classmethod + def _get_validated_lti_params_from_values(cls, request, current_time, + lti_consumer_valid, lti_consumer_secret, lti_max_timestamp_age): + """ + Validates LTI signature and returns LTI parameters + """ + + # Taking a cue from oauthlib, to avoid leaking information through a timing attack, + # we proceed through the entire validation before rejecting any request for any reason. + # However, as noted there, the value of doing this is dubious. + + base_uri = normalize_base_string_uri(request.uri) + parameters = collect_parameters(uri_query=request.uri_query, body=request.body) + parameters_string = normalize_parameters(parameters) + base_string = construct_base_string(request.http_method, base_uri, parameters_string) + + computed_signature = sign_hmac_sha1(base_string, unicode(lti_consumer_secret), '') + submitted_signature = request.oauth_signature + + data = {parameter_value_pair[0]: parameter_value_pair[1] for parameter_value_pair in parameters} + + def safe_int(value): + """ + Interprets parameter as an int or returns 0 if not possible + """ + try: + return int(value) + except (ValueError, TypeError): + return 0 + + oauth_timestamp = safe_int(request.oauth_timestamp) + + # As this must take constant time, do not use shortcutting operators such as 'and'. + # Instead, use constant time operators such as '&', which is the bitwise and. + valid = (lti_consumer_valid) + valid = valid & (submitted_signature == computed_signature) + valid = valid & (request.oauth_version == '1.0') + valid = valid & (request.oauth_signature_method == 'HMAC-SHA1') + valid = valid & ('user_id' in data) # Not required by LTI but can't log in without one + valid = valid & (oauth_timestamp >= current_time - lti_max_timestamp_age) + valid = valid & (oauth_timestamp <= current_time) + + if valid: + return data + else: + return None + + @classmethod + def load_lti_consumer(cls, lti_consumer_key): + """ + Retrieves LTI consumer details from database + """ + from .models import LTIProviderConfig + provider_config = LTIProviderConfig.current(lti_consumer_key) + if provider_config and provider_config.enabled: + return ( + provider_config.enabled, + provider_config.get_lti_consumer_secret(), + provider_config.lti_max_timestamp_age, + ) + else: + return False, '', -1 diff --git a/common/djangoapps/third_party_auth/migrations/0004_lti_tool_consumers.py b/common/djangoapps/third_party_auth/migrations/0004_lti_tool_consumers.py new file mode 100644 index 0000000000..dfef06ae73 --- /dev/null +++ b/common/djangoapps/third_party_auth/migrations/0004_lti_tool_consumers.py @@ -0,0 +1,149 @@ +# -*- coding: utf-8 -*- +# pylint: disable=C,E,F,R,W +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'LTIProviderConfig' + db.create_table('third_party_auth_ltiproviderconfig', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('change_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('changed_by', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, on_delete=models.PROTECT)), + ('enabled', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('icon_class', self.gf('django.db.models.fields.CharField')(default='fa-sign-in', max_length=50)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=50)), + ('secondary', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('skip_registration_form', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('skip_email_verification', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('lti_consumer_key', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('lti_consumer_secret', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('lti_max_timestamp_age', self.gf('django.db.models.fields.IntegerField')(default=10)), + )) + db.send_create_signal('third_party_auth', ['LTIProviderConfig']) + + + def backwards(self, orm): + # Deleting model 'LTIProviderConfig' + db.delete_table('third_party_auth_ltiproviderconfig') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'third_party_auth.ltiproviderconfig': { + 'Meta': {'object_name': 'LTIProviderConfig'}, + 'change_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'changed_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.PROTECT'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'icon_class': ('django.db.models.fields.CharField', [], {'default': "'fa-sign-in'", 'max_length': '50'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lti_consumer_key': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'lti_consumer_secret': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'lti_max_timestamp_age': ('django.db.models.fields.IntegerField', [], {'default': '10'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}), + 'secondary': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'skip_email_verification': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'skip_registration_form': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'third_party_auth.oauth2providerconfig': { + 'Meta': {'object_name': 'OAuth2ProviderConfig'}, + 'backend_name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), + 'change_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'changed_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.PROTECT'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'icon_class': ('django.db.models.fields.CharField', [], {'default': "'fa-sign-in'", 'max_length': '50'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'key': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}), + 'other_settings': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'secondary': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'secret': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'skip_email_verification': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'skip_registration_form': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'third_party_auth.samlconfiguration': { + 'Meta': {'object_name': 'SAMLConfiguration'}, + 'change_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'changed_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.PROTECT'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'entity_id': ('django.db.models.fields.CharField', [], {'default': "'http://saml.example.com'", 'max_length': '255'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'org_info_str': ('django.db.models.fields.TextField', [], {'default': '\'{"en-US": {"url": "http://www.example.com", "displayname": "Example Inc.", "name": "example"}}\''}), + 'other_config_str': ('django.db.models.fields.TextField', [], {'default': '\'{\\n"SECURITY_CONFIG": {"metadataCacheDuration": 604800, "signMetadata": false}\\n}\''}), + 'private_key': ('django.db.models.fields.TextField', [], {}), + 'public_key': ('django.db.models.fields.TextField', [], {}) + }, + 'third_party_auth.samlproviderconfig': { + 'Meta': {'object_name': 'SAMLProviderConfig'}, + 'attr_email': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'attr_first_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'attr_full_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'attr_last_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'attr_user_permanent_id': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'attr_username': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'backend_name': ('django.db.models.fields.CharField', [], {'default': "'tpa-saml'", 'max_length': '50'}), + 'change_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'changed_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.PROTECT'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'entity_id': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'icon_class': ('django.db.models.fields.CharField', [], {'default': "'fa-sign-in'", 'max_length': '50'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'idp_slug': ('django.db.models.fields.SlugField', [], {'max_length': '30'}), + 'metadata_source': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}), + 'other_settings': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'secondary': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'skip_email_verification': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'skip_registration_form': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'third_party_auth.samlproviderdata': { + 'Meta': {'ordering': "('-fetched_at',)", 'object_name': 'SAMLProviderData'}, + 'entity_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), + 'expires_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}), + 'fetched_at': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'public_key': ('django.db.models.fields.TextField', [], {}), + 'sso_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) + } + } + + complete_apps = ['third_party_auth'] diff --git a/common/djangoapps/third_party_auth/models.py b/common/djangoapps/third_party_auth/models.py index 79ba5746bf..253e1e610b 100644 --- a/common/djangoapps/third_party_auth/models.py +++ b/common/djangoapps/third_party_auth/models.py @@ -3,6 +3,8 @@ Models used to implement SAML SSO support in third_party_auth (inlcuding Shibboleth support) """ +from __future__ import absolute_import + from config_models.models import ConfigurationModel, cache from django.conf import settings from django.core.exceptions import ValidationError @@ -11,9 +13,11 @@ from django.utils import timezone from django.utils.translation import ugettext_lazy as _ import json import logging +from provider.utils import long_token from social.backends.base import BaseAuth from social.backends.oauth import OAuthAuth from social.backends.saml import SAMLAuth, SAMLIdentityProvider +from .lti import LTIAuthBackend, LTI_PARAMS_KEY from social.exceptions import SocialAuthBaseException from social.utils import module_member @@ -32,6 +36,7 @@ def _load_backend_classes(base_class=BaseAuth): _PSA_BACKENDS = {backend_class.name: backend_class for backend_class in _load_backend_classes()} _PSA_OAUTH2_BACKENDS = [backend_class.name for backend_class in _load_backend_classes(OAuthAuth)] _PSA_SAML_BACKENDS = [backend_class.name for backend_class in _load_backend_classes(SAMLAuth)] +_LTI_BACKENDS = [backend_class.name for backend_class in _load_backend_classes(LTIAuthBackend)] def clean_json(value, of_type): @@ -95,6 +100,7 @@ class ProviderConfig(ConfigurationModel): ) prefix = None # used for provider_id. Set to a string value in subclass backend_name = None # Set to a field or fixed value in subclass + accepts_logins = True # Whether to display a sign-in button when the provider is enabled # "enabled" field is inherited from ConfigurationModel @@ -454,3 +460,70 @@ class SAMLProviderData(models.Model): cache.set(cls.cache_key_name(entity_id), current, cls.cache_timeout) return current + + +class LTIProviderConfig(ProviderConfig): + """ + Configuration required for this edX instance to act as a LTI + Tool Provider and allow users to authenticate and be enrolled in a + course via third party LTI Tool Consumers. + """ + prefix = 'lti' + backend_name = 'lti' + icon_class = None # This provider is not visible to users + secondary = False # This provider is not visible to users + accepts_logins = False # LTI login cannot be initiated by the tool provider + KEY_FIELDS = ('lti_consumer_key', ) + + lti_consumer_key = models.CharField( + max_length=255, + help_text=( + 'The name that the LTI Tool Consumer will use to identify itself' + ) + ) + lti_consumer_secret = models.CharField( + default=long_token, + max_length=255, + help_text=( + 'The shared secret that the LTI Tool Consumer will use to ' + 'authenticate requests. Only this edX instance and this ' + 'tool consumer instance should know this value. ' + 'For increased security, you can avoid storing this in ' + 'your database by leaving this field blank and setting ' + 'SOCIAL_AUTH_LTI_CONSUMER_SECRETS = {"consumer key": "secret", ...} ' + 'in your instance\'s Django setttigs (or lms.auth.json)' + ), + blank=True, + ) + + lti_max_timestamp_age = models.IntegerField( + default=10, + help_text=( + 'The maximum age of oauth_timestamp values, in seconds.' + ) + ) + + def match_social_auth(self, social_auth): + """ Is this provider being used for this UserSocialAuth entry? """ + prefix = self.lti_consumer_key + ":" + return self.backend_name == social_auth.provider and social_auth.uid.startswith(prefix) + + def is_active_for_pipeline(self, pipeline): + """ Is this provider being used for the specified pipeline? """ + try: + return ( + self.backend_name == pipeline['backend'] and + self.lti_consumer_key == pipeline['kwargs']['response'][LTI_PARAMS_KEY]['oauth_consumer_key'] + ) + except KeyError: + return False + + def get_lti_consumer_secret(self): + """ If the LTI consumer secret is not stored in the database, check Django settings instead """ + if self.lti_consumer_secret: + return self.lti_consumer_secret + return getattr(settings, 'SOCIAL_AUTH_LTI_CONSUMER_SECRETS', {}).get(self.lti_consumer_key, '') + + class Meta(object): # pylint: disable=missing-docstring + verbose_name = "Provider Configuration (LTI)" + verbose_name_plural = verbose_name diff --git a/common/djangoapps/third_party_auth/pipeline.py b/common/djangoapps/third_party_auth/pipeline.py index bf522e3c48..ba7da7ebec 100644 --- a/common/djangoapps/third_party_auth/pipeline.py +++ b/common/djangoapps/third_party_auth/pipeline.py @@ -372,9 +372,10 @@ def get_provider_user_states(user): if enabled_provider.match_social_auth(auth): association_id = auth.id break - states.append( - ProviderUserState(enabled_provider, user, association_id) - ) + if enabled_provider.accepts_logins or association_id: + states.append( + ProviderUserState(enabled_provider, user, association_id) + ) return states diff --git a/common/djangoapps/third_party_auth/provider.py b/common/djangoapps/third_party_auth/provider.py index 415e670900..dde2b41608 100644 --- a/common/djangoapps/third_party_auth/provider.py +++ b/common/djangoapps/third_party_auth/provider.py @@ -2,8 +2,8 @@ Third-party auth provider configuration API. """ from .models import ( - OAuth2ProviderConfig, SAMLConfiguration, SAMLProviderConfig, - _PSA_OAUTH2_BACKENDS, _PSA_SAML_BACKENDS + OAuth2ProviderConfig, SAMLConfiguration, SAMLProviderConfig, LTIProviderConfig, + _PSA_OAUTH2_BACKENDS, _PSA_SAML_BACKENDS, _LTI_BACKENDS, ) @@ -26,12 +26,21 @@ class Registry(object): provider = SAMLProviderConfig.current(idp_slug) if provider.enabled and provider.backend_name in _PSA_SAML_BACKENDS: yield provider + for consumer_key in LTIProviderConfig.key_values('lti_consumer_key', flat=True): + provider = LTIProviderConfig.current(consumer_key) + if provider.enabled and provider.backend_name in _LTI_BACKENDS: + yield provider @classmethod def enabled(cls): """Returns list of enabled providers.""" return sorted(cls._enabled_providers(), key=lambda provider: provider.name) + @classmethod + def accepting_logins(cls): + """Returns list of providers that can be used to initiate logins currently""" + return [provider for provider in cls.enabled() if provider.accepts_logins] + @classmethod def get(cls, provider_id): """Gets provider by provider_id string if enabled, else None.""" @@ -83,3 +92,8 @@ class Registry(object): provider = SAMLProviderConfig.current(idp_name) if provider.backend_name == backend_name and provider.enabled: yield provider + elif backend_name in _LTI_BACKENDS: + for consumer_key in LTIProviderConfig.key_values('lti_consumer_key', flat=True): + provider = LTIProviderConfig.current(consumer_key) + if provider.backend_name == backend_name and provider.enabled: + yield provider diff --git a/common/djangoapps/third_party_auth/strategy.py b/common/djangoapps/third_party_auth/strategy.py index eeff362ff1..fbb6c765b3 100644 --- a/common/djangoapps/third_party_auth/strategy.py +++ b/common/djangoapps/third_party_auth/strategy.py @@ -20,6 +20,8 @@ class ConfigurationModelStrategy(DjangoStrategy): OAuthAuth subclasses will call this method for every setting they want to look up. SAMLAuthBackend subclasses will call this method only after first checking if the setting 'name' is configured via SAMLProviderConfig. + LTIAuthBackend subclasses will call this method only after first checking if the + setting 'name' is configured via LTIProviderConfig. """ if isinstance(backend, OAuthAuth): provider_config = OAuth2ProviderConfig.current(backend.name) @@ -29,6 +31,6 @@ class ConfigurationModelStrategy(DjangoStrategy): return provider_config.get_setting(name) except KeyError: pass - # At this point, we know 'name' is not set in a [OAuth2|SAML]ProviderConfig row. + # At this point, we know 'name' is not set in a [OAuth2|LTI|SAML]ProviderConfig row. # It's probably a global Django setting like 'FIELDS_STORED_IN_SESSION': return super(ConfigurationModelStrategy, self).setting(name, default, backend) diff --git a/common/djangoapps/third_party_auth/tests/data/lti_cannot_add_get_params.txt b/common/djangoapps/third_party_auth/tests/data/lti_cannot_add_get_params.txt new file mode 100644 index 0000000000..3117b3163c --- /dev/null +++ b/common/djangoapps/third_party_auth/tests/data/lti_cannot_add_get_params.txt @@ -0,0 +1 @@ +lti_message_type=basic-lti-launch-request<i_version=LTI-1p0&lis_outcome_service_url=http%3A%2F%2Fwww.imsglobal.org%2Fdevelopers%2FLTI%2Ftest%2Fv1p1%2Fcommon%2Ftool_consumer_outcome.php%3Fb64%3DMTIzNDU6OjpzZWNyZXQ%3D&lis_result_sourcedid=feb-123-456-2929%3A%3A28883&launch_presentation_return_url=http%3A%2F%2Fwww.imsglobal.org%2Fdevelopers%2FLTI%2Ftest%2Fv1p1%2Flms_return.php&user_id=292832126&custom_extra=parameter&oauth_version=1.0&oauth_nonce=c4936a7122f4f85c2d95afe32391573b&oauth_timestamp=1436823553&oauth_consumer_key=12345&oauth_signature_method=HMAC-SHA1&oauth_signature=STPWUouDw%2FlRGD4giWf8lpGTc54%3D&oauth_callback=about%3Ablank \ No newline at end of file diff --git a/common/djangoapps/third_party_auth/tests/data/lti_garbage.txt b/common/djangoapps/third_party_auth/tests/data/lti_garbage.txt new file mode 100644 index 0000000000..791be54782 --- /dev/null +++ b/common/djangoapps/third_party_auth/tests/data/lti_garbage.txt @@ -0,0 +1 @@ +some=garbage&values=provided \ No newline at end of file diff --git a/common/djangoapps/third_party_auth/tests/data/lti_invalid_signature.txt b/common/djangoapps/third_party_auth/tests/data/lti_invalid_signature.txt new file mode 100644 index 0000000000..9cac2ecbd1 --- /dev/null +++ b/common/djangoapps/third_party_auth/tests/data/lti_invalid_signature.txt @@ -0,0 +1 @@ +lti_message_type=basic-lti-launch-request<i_version=LTI-1p0&lis_outcome_service_url=http%3A%2F%2Fwww.imsglobal.org%2Fdevelopers%2FLTI%2Ftest%2Fv1p1%2Fcommon%2Ftool_consumer_outcome.php%3Fb64%3DMTIzNDU6OjpzZWNyZXQ%3D&lis_result_sourcedid=feb-123-456-2929%3A%3A28883&launch_presentation_return_url=http%3A%2F%2Fwww.imsglobal.org%2Fdevelopers%2FLTI%2Ftest%2Fv1p1%2Flms_return.php&user_id=292832126&custom_extra=parameter&oauth_version=1.0&oauth_nonce=c4936a7122f4f85c2d95afe32391573b&oauth_timestamp=1436823553&oauth_consumer_key=12345&oauth_signature_method=HMAC-SHA1&oauth_signature=STPWUouDw%2FlRGD4giWf8lpXXXXX%3D&oauth_callback=about%3Ablank \ No newline at end of file diff --git a/common/djangoapps/third_party_auth/tests/data/lti_old_timestamp.txt b/common/djangoapps/third_party_auth/tests/data/lti_old_timestamp.txt new file mode 100644 index 0000000000..3117b3163c --- /dev/null +++ b/common/djangoapps/third_party_auth/tests/data/lti_old_timestamp.txt @@ -0,0 +1 @@ +lti_message_type=basic-lti-launch-request<i_version=LTI-1p0&lis_outcome_service_url=http%3A%2F%2Fwww.imsglobal.org%2Fdevelopers%2FLTI%2Ftest%2Fv1p1%2Fcommon%2Ftool_consumer_outcome.php%3Fb64%3DMTIzNDU6OjpzZWNyZXQ%3D&lis_result_sourcedid=feb-123-456-2929%3A%3A28883&launch_presentation_return_url=http%3A%2F%2Fwww.imsglobal.org%2Fdevelopers%2FLTI%2Ftest%2Fv1p1%2Flms_return.php&user_id=292832126&custom_extra=parameter&oauth_version=1.0&oauth_nonce=c4936a7122f4f85c2d95afe32391573b&oauth_timestamp=1436823553&oauth_consumer_key=12345&oauth_signature_method=HMAC-SHA1&oauth_signature=STPWUouDw%2FlRGD4giWf8lpGTc54%3D&oauth_callback=about%3Ablank \ No newline at end of file diff --git a/common/djangoapps/third_party_auth/tests/data/lti_valid_request.txt b/common/djangoapps/third_party_auth/tests/data/lti_valid_request.txt new file mode 100644 index 0000000000..3117b3163c --- /dev/null +++ b/common/djangoapps/third_party_auth/tests/data/lti_valid_request.txt @@ -0,0 +1 @@ +lti_message_type=basic-lti-launch-request<i_version=LTI-1p0&lis_outcome_service_url=http%3A%2F%2Fwww.imsglobal.org%2Fdevelopers%2FLTI%2Ftest%2Fv1p1%2Fcommon%2Ftool_consumer_outcome.php%3Fb64%3DMTIzNDU6OjpzZWNyZXQ%3D&lis_result_sourcedid=feb-123-456-2929%3A%3A28883&launch_presentation_return_url=http%3A%2F%2Fwww.imsglobal.org%2Fdevelopers%2FLTI%2Ftest%2Fv1p1%2Flms_return.php&user_id=292832126&custom_extra=parameter&oauth_version=1.0&oauth_nonce=c4936a7122f4f85c2d95afe32391573b&oauth_timestamp=1436823553&oauth_consumer_key=12345&oauth_signature_method=HMAC-SHA1&oauth_signature=STPWUouDw%2FlRGD4giWf8lpGTc54%3D&oauth_callback=about%3Ablank \ No newline at end of file diff --git a/common/djangoapps/third_party_auth/tests/data/lti_valid_request_with_get_params.txt b/common/djangoapps/third_party_auth/tests/data/lti_valid_request_with_get_params.txt new file mode 100644 index 0000000000..673dadbfc4 --- /dev/null +++ b/common/djangoapps/third_party_auth/tests/data/lti_valid_request_with_get_params.txt @@ -0,0 +1 @@ +lti_message_type=basic-lti-launch-request&lis_outcome_service_url=http%3A%2F%2Fwww.imsglobal.org%2Fdevelopers%2FLTI%2Ftest%2Fv1p1%2Fcommon%2Ftool_consumer_outcome.php%3Fb64%3DMTIzNDU6OjpzZWNyZXQ%3D&lis_result_sourcedid=feb-123-456-2929%3A%3A28883&launch_presentation_return_url=http%3A%2F%2Fwww.imsglobal.org%2Fdevelopers%2FLTI%2Ftest%2Fv1p1%2Flms_return.php&custom_extra=parameter&oauth_version=1.0&oauth_nonce=c4936a7122f4f85c2d95afe32391573b&oauth_timestamp=1436823553&oauth_consumer_key=12345&oauth_signature_method=HMAC-SHA1&oauth_signature=STPWUouDw%2FlRGD4giWf8lpGTc54%3D&oauth_callback=about%3Ablank \ No newline at end of file diff --git a/common/djangoapps/third_party_auth/tests/specs/test_lti.py b/common/djangoapps/third_party_auth/tests/specs/test_lti.py new file mode 100644 index 0000000000..fa9e2398e4 --- /dev/null +++ b/common/djangoapps/third_party_auth/tests/specs/test_lti.py @@ -0,0 +1,159 @@ +""" +Integration tests for third_party_auth LTI auth providers +""" +import unittest +from django.conf import settings +from django.contrib.auth.models import User +from django.core.urlresolvers import reverse +from oauthlib.oauth1.rfc5849 import Client, SIGNATURE_TYPE_BODY +from third_party_auth.tests import testutil + +FORM_ENCODED = 'application/x-www-form-urlencoded' + +LTI_CONSUMER_KEY = 'consumer' +LTI_CONSUMER_SECRET = 'secret' +LTI_TPA_LOGIN_URL = 'http://testserver/auth/login/lti/' +LTI_TPA_COMPLETE_URL = 'http://testserver/auth/complete/lti/' +OTHER_LTI_CONSUMER_KEY = 'settings-consumer' +OTHER_LTI_CONSUMER_SECRET = 'secret2' +LTI_USER_ID = 'lti_user_id' +EDX_USER_ID = 'test_user' +EMAIL = 'lti_user@example.com' + + +@unittest.skipUnless(settings.ROOT_URLCONF == 'lms.urls', 'Test only valid in lms') +class IntegrationTestLTI(testutil.TestCase): + """ + Integration tests for third_party_auth LTI auth providers + """ + + def setUp(self): + super(IntegrationTestLTI, self).setUp() + self.configure_lti_provider( + name='Other Tool Consumer 1', enabled=True, + lti_consumer_key='other1', + lti_consumer_secret='secret1', + lti_max_timestamp_age=10, + ) + self.configure_lti_provider( + name='LTI Test Tool Consumer', enabled=True, + lti_consumer_key=LTI_CONSUMER_KEY, + lti_consumer_secret=LTI_CONSUMER_SECRET, + lti_max_timestamp_age=10, + ) + self.configure_lti_provider( + name='Tool Consumer with Secret in Settings', enabled=True, + lti_consumer_key=OTHER_LTI_CONSUMER_KEY, + lti_consumer_secret='', + lti_max_timestamp_age=10, + ) + self.lti = Client( + client_key=LTI_CONSUMER_KEY, + client_secret=LTI_CONSUMER_SECRET, + signature_type=SIGNATURE_TYPE_BODY, + ) + + def test_lti_login(self): + # The user initiates a login from an external site + (uri, _headers, body) = self.lti.sign( + uri=LTI_TPA_LOGIN_URL, http_method='POST', + headers={'Content-Type': FORM_ENCODED}, + body={ + 'user_id': LTI_USER_ID, + 'custom_tpa_next': '/account/finish_auth/?course_id=my_course_id&enrollment_action=enroll', + } + ) + login_response = self.client.post(path=uri, content_type=FORM_ENCODED, data=body) + # The user should be redirected to the registration form + self.assertEqual(login_response.status_code, 302) + self.assertTrue(login_response['Location'].endswith(reverse('signin_user'))) + register_response = self.client.get(login_response['Location']) + self.assertEqual(register_response.status_code, 200) + self.assertIn('currentProvider": "LTI Test Tool Consumer"', register_response.content) + self.assertIn('"errorMessage": null', register_response.content) + + # Now complete the form: + ajax_register_response = self.client.post( + reverse('user_api_registration'), + { + 'email': EMAIL, + 'name': 'Myself', + 'username': EDX_USER_ID, + 'honor_code': True, + } + ) + self.assertEqual(ajax_register_response.status_code, 200) + continue_response = self.client.get(LTI_TPA_COMPLETE_URL) + # The user should be redirected to the finish_auth view which will enroll them. + # FinishAuthView.js reads the URL parameters directly from $.url + self.assertEqual(continue_response.status_code, 302) + self.assertEqual( + continue_response['Location'], + 'http://testserver/account/finish_auth/?course_id=my_course_id&enrollment_action=enroll' + ) + + # Now check that we can login again + self.client.logout() + self.verify_user_email(EMAIL) + (uri, _headers, body) = self.lti.sign( + uri=LTI_TPA_LOGIN_URL, http_method='POST', + headers={'Content-Type': FORM_ENCODED}, + body={'user_id': LTI_USER_ID} + ) + login_2_response = self.client.post(path=uri, content_type=FORM_ENCODED, data=body) + # The user should be redirected to the dashboard + self.assertEqual(login_2_response.status_code, 302) + self.assertEqual(login_2_response['Location'], LTI_TPA_COMPLETE_URL) + continue_2_response = self.client.get(login_2_response['Location']) + self.assertEqual(continue_2_response.status_code, 302) + self.assertTrue(continue_2_response['Location'].endswith(reverse('dashboard'))) + + # Check that the user was created correctly + user = User.objects.get(email=EMAIL) + self.assertEqual(user.username, EDX_USER_ID) + + def test_reject_initiating_login(self): + response = self.client.get(LTI_TPA_LOGIN_URL) + self.assertEqual(response.status_code, 405) # Not Allowed + + def test_reject_bad_login(self): + login_response = self.client.post( + path=LTI_TPA_LOGIN_URL, content_type=FORM_ENCODED, + data="invalid=login" + ) + # The user should be redirected to the login page with an error message + # (auth_entry defaults to login for this provider) + self.assertEqual(login_response.status_code, 302) + self.assertTrue(login_response['Location'].endswith(reverse('signin_user'))) + error_response = self.client.get(login_response['Location']) + self.assertIn( + 'Authentication failed: LTI parameters could not be validated.', + error_response.content + ) + + def test_can_load_consumer_secret_from_settings(self): + lti = Client( + client_key=OTHER_LTI_CONSUMER_KEY, + client_secret=OTHER_LTI_CONSUMER_SECRET, + signature_type=SIGNATURE_TYPE_BODY, + ) + (uri, _headers, body) = lti.sign( + uri=LTI_TPA_LOGIN_URL, http_method='POST', + headers={'Content-Type': FORM_ENCODED}, + body={ + 'user_id': LTI_USER_ID, + 'custom_tpa_next': '/account/finish_auth/?course_id=my_course_id&enrollment_action=enroll', + } + ) + with self.settings(SOCIAL_AUTH_LTI_CONSUMER_SECRETS={OTHER_LTI_CONSUMER_KEY: OTHER_LTI_CONSUMER_SECRET}): + login_response = self.client.post(path=uri, content_type=FORM_ENCODED, data=body) + # The user should be redirected to the registration form + self.assertEqual(login_response.status_code, 302) + self.assertTrue(login_response['Location'].endswith(reverse('signin_user'))) + register_response = self.client.get(login_response['Location']) + self.assertEqual(register_response.status_code, 200) + self.assertIn( + 'currentProvider": "Tool Consumer with Secret in Settings"', + register_response.content + ) + self.assertIn('"errorMessage": null', register_response.content) diff --git a/common/djangoapps/third_party_auth/tests/specs/test_testshib.py b/common/djangoapps/third_party_auth/tests/specs/test_testshib.py index aacb945aa6..dc4ca99880 100644 --- a/common/djangoapps/third_party_auth/tests/specs/test_testshib.py +++ b/common/djangoapps/third_party_auth/tests/specs/test_testshib.py @@ -1,7 +1,6 @@ """ Third_party_auth integration tests using a mock version of the TestShib provider """ -from django.contrib.auth.models import User from django.core.urlresolvers import reverse import httpretty from mock import patch @@ -38,7 +37,7 @@ class TestShibIntegrationTest(testutil.SAMLTestCase): def metadata_callback(_request, _uri, headers): """ Return a cached copy of TestShib's metadata by reading it from disk """ - return (200, headers, self._read_data_file('testshib_metadata.xml')) + return (200, headers, self.read_data_file('testshib_metadata.xml')) httpretty.register_uri(httpretty.GET, TESTSHIB_METADATA_URL, content_type='text/xml', body=metadata_callback) self.addCleanup(httpretty.disable) self.addCleanup(httpretty.reset) @@ -106,7 +105,7 @@ class TestShibIntegrationTest(testutil.SAMLTestCase): # Now check that we can login again: self.client.logout() - self._verify_user_email('myself@testshib.org') + self.verify_user_email('myself@testshib.org') self._test_return_login() def test_login(self): @@ -220,11 +219,5 @@ class TestShibIntegrationTest(testutil.SAMLTestCase): return self.client.post( TPA_TESTSHIB_COMPLETE_URL, content_type='application/x-www-form-urlencoded', - data=self._read_data_file('testshib_response.txt'), + data=self.read_data_file('testshib_response.txt'), ) - - def _verify_user_email(self, email): - """ Mark the user with the given email as verified """ - user = User.objects.get(email=email) - user.is_active = True - user.save() diff --git a/common/djangoapps/third_party_auth/tests/test_lti.py b/common/djangoapps/third_party_auth/tests/test_lti.py new file mode 100644 index 0000000000..9e0f9122c3 --- /dev/null +++ b/common/djangoapps/third_party_auth/tests/test_lti.py @@ -0,0 +1,133 @@ +""" +Unit tests for third_party_auth LTI auth providers +""" + +import unittest +from oauthlib.common import Request +from third_party_auth.lti import LTIAuthBackend, LTI_PARAMS_KEY +from third_party_auth.tests.testutil import ThirdPartyAuthTestMixin + + +class UnitTestLTI(unittest.TestCase, ThirdPartyAuthTestMixin): + """ + Unit tests for third_party_auth LTI auth providers + """ + + def test_get_user_details_missing_keys(self): + lti = LTIAuthBackend() + details = lti.get_user_details({LTI_PARAMS_KEY: { + 'lis_person_name_full': 'Full name' + }}) + self.assertEquals(details, { + 'fullname': 'Full name' + }) + + def test_get_user_details_extra_keys(self): + lti = LTIAuthBackend() + details = lti.get_user_details({LTI_PARAMS_KEY: { + 'lis_person_name_full': 'Full name', + 'lis_person_name_given': 'Given', + 'lis_person_name_family': 'Family', + 'email': 'user@example.com', + 'other': 'something else' + }}) + self.assertEquals(details, { + 'fullname': 'Full name', + 'first_name': 'Given', + 'last_name': 'Family', + 'email': 'user@example.com' + }) + + def test_get_user_id(self): + lti = LTIAuthBackend() + user_id = lti.get_user_id(None, {LTI_PARAMS_KEY: { + 'oauth_consumer_key': 'consumer', + 'user_id': 'user' + }}) + self.assertEquals(user_id, 'consumer:user') + + def test_validate_lti_valid_request(self): + request = Request( + uri='https://example.com/lti', + http_method='POST', + body=self.read_data_file('lti_valid_request.txt') + ) + parameters = LTIAuthBackend._get_validated_lti_params_from_values( # pylint: disable=protected-access + request=request, current_time=1436823554, + lti_consumer_valid=True, lti_consumer_secret='secret', + lti_max_timestamp_age=10 + ) + self.assertTrue(parameters) + self.assertDictContainsSubset({ + 'custom_extra': 'parameter', + 'user_id': '292832126' + }, parameters) + + def test_validate_lti_valid_request_with_get_params(self): + request = Request( + uri='https://example.com/lti?user_id=292832126<i_version=LTI-1p0', + http_method='POST', + body=self.read_data_file('lti_valid_request_with_get_params.txt') + ) + parameters = LTIAuthBackend._get_validated_lti_params_from_values( # pylint: disable=protected-access + request=request, current_time=1436823554, + lti_consumer_valid=True, lti_consumer_secret='secret', + lti_max_timestamp_age=10 + ) + self.assertTrue(parameters) + self.assertDictContainsSubset({ + 'custom_extra': 'parameter', + 'user_id': '292832126' + }, parameters) + + def test_validate_lti_old_timestamp(self): + request = Request( + uri='https://example.com/lti', + http_method='POST', + body=self.read_data_file('lti_old_timestamp.txt') + ) + parameters = LTIAuthBackend._get_validated_lti_params_from_values( # pylint: disable=protected-access + request=request, current_time=1436900000, + lti_consumer_valid=True, lti_consumer_secret='secret', + lti_max_timestamp_age=10 + ) + self.assertFalse(parameters) + + def test_validate_lti_invalid_signature(self): + request = Request( + uri='https://example.com/lti', + http_method='POST', + body=self.read_data_file('lti_invalid_signature.txt') + ) + parameters = LTIAuthBackend._get_validated_lti_params_from_values( # pylint: disable=protected-access + request=request, current_time=1436823554, + lti_consumer_valid=True, lti_consumer_secret='secret', + lti_max_timestamp_age=10 + ) + self.assertFalse(parameters) + + def test_validate_lti_cannot_add_get_params(self): + request = Request( + uri='https://example.com/lti?custom_another=parameter', + http_method='POST', + body=self.read_data_file('lti_cannot_add_get_params.txt') + ) + parameters = LTIAuthBackend._get_validated_lti_params_from_values( # pylint: disable=protected-access + request=request, current_time=1436823554, + lti_consumer_valid=True, lti_consumer_secret='secret', + lti_max_timestamp_age=10 + ) + self.assertFalse(parameters) + + def test_validate_lti_garbage(self): + request = Request( + uri='https://example.com/lti', + http_method='POST', + body=self.read_data_file('lti_garbage.txt') + ) + parameters = LTIAuthBackend._get_validated_lti_params_from_values( # pylint: disable=protected-access + request=request, current_time=1436823554, + lti_consumer_valid=True, lti_consumer_secret='secret', + lti_max_timestamp_age=10 + ) + self.assertFalse(parameters) diff --git a/common/djangoapps/third_party_auth/tests/testutil.py b/common/djangoapps/third_party_auth/tests/testutil.py index 12022d2bf7..40591163db 100644 --- a/common/djangoapps/third_party_auth/tests/testutil.py +++ b/common/djangoapps/third_party_auth/tests/testutil.py @@ -6,11 +6,18 @@ Used by Django and non-Django tests; must not have Django deps. from contextlib import contextmanager from django.conf import settings +from django.contrib.auth.models import User import django.test import mock import os.path -from third_party_auth.models import OAuth2ProviderConfig, SAMLProviderConfig, SAMLConfiguration, cache as config_cache +from third_party_auth.models import ( + OAuth2ProviderConfig, + SAMLProviderConfig, + SAMLConfiguration, + LTIProviderConfig, + cache as config_cache, +) AUTH_FEATURES_KEY = 'ENABLE_THIRD_PARTY_AUTH' @@ -52,6 +59,13 @@ class ThirdPartyAuthTestMixin(object): obj.save() return obj + @staticmethod + def configure_lti_provider(**kwargs): + """ Update the settings for a LTI Tool Consumer third party auth provider """ + obj = LTIProviderConfig(**kwargs) + obj.save() + return obj + @classmethod def configure_google_provider(cls, **kwargs): """ Update the settings for the Google third party auth provider/backend """ @@ -92,6 +106,19 @@ class ThirdPartyAuthTestMixin(object): kwargs.setdefault("secret", "test") return cls.configure_oauth_provider(**kwargs) + @classmethod + def verify_user_email(cls, email): + """ Mark the user with the given email as verified """ + user = User.objects.get(email=email) + user.is_active = True + user.save() + + @staticmethod + def read_data_file(filename): + """ Read the contents of a file in the data folder """ + with open(os.path.join(os.path.dirname(__file__), 'data', filename)) as f: + return f.read() + class TestCase(ThirdPartyAuthTestMixin, django.test.TestCase): """Base class for auth test cases.""" @@ -111,18 +138,12 @@ class SAMLTestCase(TestCase): @classmethod def _get_public_key(cls, key_name='saml_key'): """ Get a public key for use in the test. """ - return cls._read_data_file('{}.pub'.format(key_name)) + return cls.read_data_file('{}.pub'.format(key_name)) @classmethod def _get_private_key(cls, key_name='saml_key'): """ Get a private key for use in the test. """ - return cls._read_data_file('{}.key'.format(key_name)) - - @staticmethod - def _read_data_file(filename): - """ Read the contents of a file in the data folder """ - with open(os.path.join(os.path.dirname(__file__), 'data', filename)) as f: - return f.read() + return cls.read_data_file('{}.key'.format(key_name)) def enable_saml(self, **kwargs): """ Enable SAML support (via SAMLConfiguration, not for any particular provider) """ diff --git a/common/djangoapps/third_party_auth/urls.py b/common/djangoapps/third_party_auth/urls.py index 5d366b2da3..69c600932b 100644 --- a/common/djangoapps/third_party_auth/urls.py +++ b/common/djangoapps/third_party_auth/urls.py @@ -2,11 +2,12 @@ from django.conf.urls import include, patterns, url -from .views import inactive_user_view, saml_metadata_view +from .views import inactive_user_view, saml_metadata_view, lti_login_and_complete_view urlpatterns = patterns( '', url(r'^auth/inactive', inactive_user_view), url(r'^auth/saml/metadata.xml', saml_metadata_view), + url(r'^auth/login/(?Plti)/$', lti_login_and_complete_view), url(r'^auth/', include('social.apps.django_app.urls', namespace='social')), ) diff --git a/common/djangoapps/third_party_auth/views.py b/common/djangoapps/third_party_auth/views.py index ef0233f33c..58fd17c784 100644 --- a/common/djangoapps/third_party_auth/views.py +++ b/common/djangoapps/third_party_auth/views.py @@ -3,11 +3,17 @@ Extra views required for SSO """ from django.conf import settings from django.core.urlresolvers import reverse -from django.http import HttpResponse, HttpResponseServerError, Http404 +from django.http import HttpResponse, HttpResponseServerError, Http404, HttpResponseNotAllowed from django.shortcuts import redirect +from django.views.decorators.csrf import csrf_exempt +import social +from social.apps.django_app.views import complete from social.apps.django_app.utils import load_strategy, load_backend +from social.utils import setting_name from .models import SAMLConfiguration +URL_NAMESPACE = getattr(settings, setting_name('URL_NAMESPACE'), None) or 'social' + def inactive_user_view(request): """ @@ -36,3 +42,15 @@ def saml_metadata_view(request): if not errors: return HttpResponse(content=metadata, content_type='text/xml') return HttpResponseServerError(content=', '.join(errors)) + + +@csrf_exempt +@social.apps.django_app.utils.psa('{0}:complete'.format(URL_NAMESPACE)) +def lti_login_and_complete_view(request, backend, *args, **kwargs): + """This is a combination login/complete due to LTI being a one step login""" + + if request.method != 'POST': + return HttpResponseNotAllowed('POST') + + request.backend.start() + return complete(request, backend, *args, **kwargs) diff --git a/lms/djangoapps/student_account/views.py b/lms/djangoapps/student_account/views.py index a2eda85848..f6b6badfe8 100644 --- a/lms/djangoapps/student_account/views.py +++ b/lms/djangoapps/student_account/views.py @@ -187,7 +187,7 @@ def _third_party_auth_context(request, redirect_to): } if third_party_auth.is_enabled(): - for enabled in third_party_auth.provider.Registry.enabled(): + for enabled in third_party_auth.provider.Registry.accepting_logins(): info = { "id": enabled.provider_id, "name": enabled.name, @@ -208,12 +208,14 @@ def _third_party_auth_context(request, redirect_to): running_pipeline = pipeline.get(request) if running_pipeline is not None: current_provider = third_party_auth.provider.Registry.get_from_pipeline(running_pipeline) - context["currentProvider"] = current_provider.name - context["finishAuthUrl"] = pipeline.get_complete_url(current_provider.backend_name) - if current_provider.skip_registration_form: - # As a reliable way of "skipping" the registration form, we just submit it automatically - context["autoSubmitRegForm"] = True + if current_provider is not None: + context["currentProvider"] = current_provider.name + context["finishAuthUrl"] = pipeline.get_complete_url(current_provider.backend_name) + + if current_provider.skip_registration_form: + # As a reliable way of "skipping" the registration form, we just submit it automatically + context["autoSubmitRegForm"] = True # Check for any error messages we may want to display: for msg in messages.get_messages(request): @@ -396,13 +398,14 @@ def account_settings_context(request): 'name': state.provider.name, # The name of the provider e.g. Facebook 'connected': state.has_account, # Whether the user's edX account is connected with the provider. # If the user is not connected, they should be directed to this page to authenticate - # with the particular provider. + # with the particular provider, as long as the provider supports initiating a login. 'connect_url': pipeline.get_login_url( state.provider.provider_id, pipeline.AUTH_ENTRY_ACCOUNT_SETTINGS, # The url the user should be directed to after the auth process has completed. redirect_url=reverse('account_settings'), ), + 'accepts_logins': state.provider.accepts_logins, # If the user is connected, sending a POST request to this url removes the connection # information for this provider from their edX account. 'disconnect_url': pipeline.get_disconnect_url(state.provider.provider_id, state.association_id), diff --git a/lms/envs/aws.py b/lms/envs/aws.py index c86b3fa04b..d9cf8c9854 100644 --- a/lms/envs/aws.py +++ b/lms/envs/aws.py @@ -552,6 +552,7 @@ if FEATURES.get('ENABLE_THIRD_PARTY_AUTH'): 'social.backends.linkedin.LinkedinOAuth2', 'social.backends.facebook.FacebookOAuth2', 'third_party_auth.saml.SAMLAuthBackend', + 'third_party_auth.lti.LTIAuthBackend', ]) + list(AUTHENTICATION_BACKENDS) ) @@ -566,6 +567,7 @@ if FEATURES.get('ENABLE_THIRD_PARTY_AUTH'): SOCIAL_AUTH_SAML_SP_PRIVATE_KEY = AUTH_TOKENS.get('SOCIAL_AUTH_SAML_SP_PRIVATE_KEY', '') SOCIAL_AUTH_SAML_SP_PUBLIC_CERT = AUTH_TOKENS.get('SOCIAL_AUTH_SAML_SP_PUBLIC_CERT', '') SOCIAL_AUTH_OAUTH_SECRETS = AUTH_TOKENS.get('SOCIAL_AUTH_OAUTH_SECRETS', {}) + SOCIAL_AUTH_LTI_CONSUMER_SECRETS = AUTH_TOKENS.get('SOCIAL_AUTH_LTI_CONSUMER_SECRETS', {}) # third_party_auth config moved to ConfigurationModels. This is for data migration only: THIRD_PARTY_AUTH_OLD_CONFIG = AUTH_TOKENS.get('THIRD_PARTY_AUTH', None) diff --git a/lms/envs/test.py b/lms/envs/test.py index 77f9282572..1e52d4297c 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -250,6 +250,7 @@ AUTHENTICATION_BACKENDS = ( 'social.backends.twitter.TwitterOAuth', 'third_party_auth.dummy.DummyBackend', 'third_party_auth.saml.SAMLAuthBackend', + 'third_party_auth.lti.LTIAuthBackend', ) + AUTHENTICATION_BACKENDS ################################## OPENID ##################################### diff --git a/lms/static/js/spec/student_account/account_settings_factory_spec.js b/lms/static/js/spec/student_account/account_settings_factory_spec.js index 44204a5781..12cdda51f5 100644 --- a/lms/static/js/spec/student_account/account_settings_factory_spec.js +++ b/lms/static/js/spec/student_account/account_settings_factory_spec.js @@ -35,6 +35,7 @@ define(['backbone', 'jquery', 'underscore', 'common/js/spec_helpers/ajax_helpers 'id': 'oa2-network1', 'name': "Network1", 'connected': true, + 'accepts_logins': 'true', 'connect_url': 'yetanother1.com/auth/connect', 'disconnect_url': 'yetanother1.com/auth/disconnect' }, @@ -42,6 +43,7 @@ define(['backbone', 'jquery', 'underscore', 'common/js/spec_helpers/ajax_helpers 'id': 'oa2-network2', 'name': "Network2", 'connected': true, + 'accepts_logins': 'true', 'connect_url': 'yetanother2.com/auth/connect', 'disconnect_url': 'yetanother2.com/auth/disconnect' } diff --git a/lms/static/js/spec/student_account/account_settings_fields_spec.js b/lms/static/js/spec/student_account/account_settings_fields_spec.js index c924872f82..9d5b95616b 100644 --- a/lms/static/js/spec/student_account/account_settings_fields_spec.js +++ b/lms/static/js/spec/student_account/account_settings_fields_spec.js @@ -111,6 +111,7 @@ define(['backbone', 'jquery', 'underscore', 'common/js/spec_helpers/ajax_helpers helpMessage: '', valueAttribute: 'auth-yet-another', connected: true, + acceptsLogins: 'true', connectUrl: 'yetanother.com/auth/connect', disconnectUrl: 'yetanother.com/auth/disconnect' }); diff --git a/lms/static/js/student_account/views/account_settings_factory.js b/lms/static/js/student_account/views/account_settings_factory.js index 706f3a0efb..dc3fa09be8 100644 --- a/lms/static/js/student_account/views/account_settings_factory.js +++ b/lms/static/js/student_account/views/account_settings_factory.js @@ -149,6 +149,7 @@ helpMessage: '', connected: provider.connected, connectUrl: provider.connect_url, + acceptsLogins: provider.accepts_logins, disconnectUrl: provider.disconnect_url }) }; diff --git a/lms/static/js/student_account/views/account_settings_fields.js b/lms/static/js/student_account/views/account_settings_fields.js index f20f7bff4a..e2cf8e3e26 100644 --- a/lms/static/js/student_account/views/account_settings_fields.js +++ b/lms/static/js/student_account/views/account_settings_fields.js @@ -116,11 +116,20 @@ }, render: function () { + var linkTitle; + if (this.options.connected) { + linkTitle = gettext('Unlink'); + } else if (this.options.acceptsLogins) { + linkTitle = gettext('Link') + } else { + linkTitle = '' + } + this.$el.html(this.template({ id: this.options.valueAttribute, title: this.options.title, screenReaderTitle: this.options.screenReaderTitle, - linkTitle: this.options.connected ? gettext('Unlink') : gettext('Link'), + linkTitle: linkTitle, linkHref: '', message: this.helpMessage })); diff --git a/lms/templates/login.html b/lms/templates/login.html index c6483df2a0..b0012d1d01 100644 --- a/lms/templates/login.html +++ b/lms/templates/login.html @@ -219,7 +219,7 @@ from microsite_configuration import microsite
    - % for enabled in provider.Registry.enabled(): + % for enabled in provider.Registry.accepting_logins(): ## Translators: provider_name is the name of an external, third-party user authentication provider (like Google or LinkedIn). % endfor diff --git a/lms/templates/register.html b/lms/templates/register.html index c913be8466..46fc6c7d47 100644 --- a/lms/templates/register.html +++ b/lms/templates/register.html @@ -130,7 +130,7 @@ import calendar
    - % for enabled in provider.Registry.enabled(): + % for enabled in provider.Registry.accepting_logins(): ## Translators: provider_name is the name of an external, third-party user authentication service (like Google or LinkedIn). % endfor diff --git a/lms/templates/student_profile/third_party_auth.html b/lms/templates/student_profile/third_party_auth.html index 6092ee7034..9eea38ddda 100644 --- a/lms/templates/student_profile/third_party_auth.html +++ b/lms/templates/student_profile/third_party_auth.html @@ -32,7 +32,7 @@ from third_party_auth import pipeline ## Translators: clicking on this removes the link between a user's edX account and their account with an external authentication provider (like Google or LinkedIn). ${_("Unlink")} - % else: + % elif state.provider.accepts_logins: ## Translators: clicking on this creates a link between a user's edX account and their account with an external authentication provider (like Google or LinkedIn). ${_("Link")} diff --git a/openedx/core/djangoapps/user_api/views.py b/openedx/core/djangoapps/user_api/views.py index 34efebcccd..042d5870c0 100644 --- a/openedx/core/djangoapps/user_api/views.py +++ b/openedx/core/djangoapps/user_api/views.py @@ -722,27 +722,28 @@ class RegistrationView(APIView): if running_pipeline: current_provider = third_party_auth.provider.Registry.get_from_pipeline(running_pipeline) - # Override username / email / full name - field_overrides = current_provider.get_register_form_data( - running_pipeline.get('kwargs') - ) + if current_provider: + # Override username / email / full name + field_overrides = current_provider.get_register_form_data( + running_pipeline.get('kwargs') + ) - for field_name in self.DEFAULT_FIELDS: - if field_name in field_overrides: - form_desc.override_field_properties( - field_name, default=field_overrides[field_name] - ) + for field_name in self.DEFAULT_FIELDS: + if field_name in field_overrides: + form_desc.override_field_properties( + field_name, default=field_overrides[field_name] + ) - # Hide the password field - form_desc.override_field_properties( - "password", - default="", - field_type="hidden", - required=False, - label="", - instructions="", - restrictions={} - ) + # Hide the password field + form_desc.override_field_properties( + "password", + default="", + field_type="hidden", + required=False, + label="", + instructions="", + restrictions={} + ) class PasswordResetView(APIView): From 9a83e99938eed2f31a05641553a6b01ff01e8507 Mon Sep 17 00:00:00 2001 From: William Ono Date: Thu, 13 Aug 2015 16:43:08 -0700 Subject: [PATCH 87/98] Avoid losing error messages when inside a frame --- lms/djangoapps/student_account/views.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lms/djangoapps/student_account/views.py b/lms/djangoapps/student_account/views.py index f6b6badfe8..706ffaa94b 100644 --- a/lms/djangoapps/student_account/views.py +++ b/lms/djangoapps/student_account/views.py @@ -102,6 +102,7 @@ def login_and_registration_form(request, initial_mode="login"): 'third_party_auth_hint': third_party_auth_hint or '', 'platform_name': settings.PLATFORM_NAME, 'responsive': True, + 'allow_iframing': True, # Include form descriptions retrieved from the user API. # We could have the JS client make these requests directly, From 6e0ef385a25325169472bb45b810f748b6dfcefb Mon Sep 17 00:00:00 2001 From: Zia Fazal Date: Thu, 3 Sep 2015 16:40:48 +0500 Subject: [PATCH 88/98] load header extra file if request comes from micro site use blank header_extra template instead of if statement --- lms/templates/header_extra.html | 3 +++ lms/templates/main.html | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 lms/templates/header_extra.html diff --git a/lms/templates/header_extra.html b/lms/templates/header_extra.html new file mode 100644 index 0000000000..4a2ea9dda3 --- /dev/null +++ b/lms/templates/header_extra.html @@ -0,0 +1,3 @@ +<% +# This template is left blank on purpose. It can be overridden by microsites. +%> diff --git a/lms/templates/main.html b/lms/templates/main.html index 40c62ee6f3..0f9839ace7 100644 --- a/lms/templates/main.html +++ b/lms/templates/main.html @@ -94,7 +94,7 @@ from branding import api as branding_api style_overrides_file = None else: - header_extra_file = None + header_extra_file = microsite.get_template_path('header_extra.html') if settings.FEATURES['IS_EDX_DOMAIN'] and not is_microsite(): header_file = microsite.get_template_path('navigation-edx.html') From 080a44b663435a657a81dad115a74d0d4972d1b2 Mon Sep 17 00:00:00 2001 From: Marko Jevtic Date: Wed, 26 Aug 2015 13:59:33 +0000 Subject: [PATCH 89/98] (SOL-1105) Requirement for enabling search in devstack --- .../management/commands/reindex_course.py | 115 +++++++++++++++ .../commands/tests/test_reindex_courses.py | 131 ++++++++++++++++++ lms/envs/common.py | 3 + lms/envs/devstack.py | 6 +- pavelib/paver_tests/test_servers.py | 19 ++- pavelib/servers.py | 1 + 6 files changed, 272 insertions(+), 3 deletions(-) create mode 100644 cms/djangoapps/contentstore/management/commands/reindex_course.py create mode 100644 cms/djangoapps/contentstore/management/commands/tests/test_reindex_courses.py diff --git a/cms/djangoapps/contentstore/management/commands/reindex_course.py b/cms/djangoapps/contentstore/management/commands/reindex_course.py new file mode 100644 index 0000000000..56cb1008af --- /dev/null +++ b/cms/djangoapps/contentstore/management/commands/reindex_course.py @@ -0,0 +1,115 @@ +""" Management command to update courses' search index """ +import logging +from django.core.management import BaseCommand, CommandError +from optparse import make_option +from textwrap import dedent + +from contentstore.courseware_index import CoursewareSearchIndexer +from search.search_engine_base import SearchEngine +from elasticsearch import exceptions + +from opaque_keys.edx.keys import CourseKey +from opaque_keys import InvalidKeyError +from opaque_keys.edx.locator import CourseLocator + +from .prompt import query_yes_no + +from xmodule.modulestore.django import modulestore + + +class Command(BaseCommand): + """ + Command to re-index courses + + Examples: + + ./manage.py reindex_course - reindexes courses with keys course_id_1 and course_id_2 + ./manage.py reindex_course --all - reindexes all available courses + ./manage.py reindex_course --setup - reindexes all courses for devstack setup + """ + help = dedent(__doc__) + + can_import_settings = True + + args = "" + + all_option = make_option('--all', + action='store_true', + dest='all', + default=False, + help='Reindex all courses') + + setup_option = make_option('--setup', + action='store_true', + dest='setup', + default=False, + help='Reindex all courses on developers stack setup') + + option_list = BaseCommand.option_list + (all_option, setup_option) + + CONFIRMATION_PROMPT = u"Re-indexing all courses might be a time consuming operation. Do you want to continue?" + + def _parse_course_key(self, raw_value): + """ Parses course key from string """ + try: + result = CourseKey.from_string(raw_value) + except InvalidKeyError: + raise CommandError("Invalid course_key: '%s'." % raw_value) + + if not isinstance(result, CourseLocator): + raise CommandError(u"Argument {0} is not a course key".format(raw_value)) + + return result + + def handle(self, *args, **options): + """ + By convention set by Django developers, this method actually executes command's actions. + So, there could be no better docstring than emphasize this once again. + """ + all_option = options.get('all', False) + setup_option = options.get('setup', False) + index_all_courses_option = all_option or setup_option + + if len(args) == 0 and not index_all_courses_option: + raise CommandError(u"reindex_course requires one or more arguments: ") + + store = modulestore() + + if index_all_courses_option: + index_name = CoursewareSearchIndexer.INDEX_NAME + doc_type = CoursewareSearchIndexer.DOCUMENT_TYPE + if setup_option: + try: + # try getting the ElasticSearch engine + searcher = SearchEngine.get_search_engine(index_name) + except exceptions.ElasticsearchException as exc: + logging.exception('Search Engine error - %s', unicode(exc)) + return + + index_exists = searcher._es.indices.exists(index=index_name) # pylint: disable=protected-access + doc_type_exists = searcher._es.indices.exists_type( # pylint: disable=protected-access + index=index_name, + doc_type=doc_type + ) + + index_mapping = searcher._es.indices.get_mapping( # pylint: disable=protected-access + index=index_name, + doc_type=doc_type + ) if index_exists and doc_type_exists else {} + + if index_exists and index_mapping: + return + + # if reindexing is done during devstack setup step, don't prompt the user + if setup_option or query_yes_no(self.CONFIRMATION_PROMPT, default="no"): + # in case of --setup or --all, get the list of course keys from all courses + # that are stored in the modulestore + course_keys = [course.id for course in modulestore().get_courses()] + else: + return + else: + # in case course keys are provided as arguments + course_keys = map(self._parse_course_key, args) + + for course_key in course_keys: + CoursewareSearchIndexer.do_course_reindex(store, course_key) diff --git a/cms/djangoapps/contentstore/management/commands/tests/test_reindex_courses.py b/cms/djangoapps/contentstore/management/commands/tests/test_reindex_courses.py new file mode 100644 index 0000000000..6383d046b8 --- /dev/null +++ b/cms/djangoapps/contentstore/management/commands/tests/test_reindex_courses.py @@ -0,0 +1,131 @@ +""" Tests for course reindex command """ +import ddt +from django.core.management import call_command, CommandError +import mock + +from xmodule.modulestore import ModuleStoreEnum +from xmodule.modulestore.django import modulestore +from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase +from common.test.utils import nostderr +from xmodule.modulestore.tests.factories import CourseFactory, LibraryFactory + +from contentstore.management.commands.reindex_course import Command as ReindexCommand +from contentstore.courseware_index import SearchIndexingError + + +@ddt.ddt +class TestReindexCourse(ModuleStoreTestCase): + """ Tests for course reindex command """ + def setUp(self): + """ Setup method - create courses """ + super(TestReindexCourse, self).setUp() + self.store = modulestore() + self.first_lib = LibraryFactory.create( + org="test", library="lib1", display_name="run1", default_store=ModuleStoreEnum.Type.split + ) + self.second_lib = LibraryFactory.create( + org="test", library="lib2", display_name="run2", default_store=ModuleStoreEnum.Type.split + ) + + self.first_course = CourseFactory.create( + org="test", course="course1", display_name="run1" + ) + self.second_course = CourseFactory.create( + org="test", course="course2", display_name="run1" + ) + + REINDEX_PATH_LOCATION = 'contentstore.management.commands.reindex_course.CoursewareSearchIndexer.do_course_reindex' + MODULESTORE_PATCH_LOCATION = 'contentstore.management.commands.reindex_course.modulestore' + YESNO_PATCH_LOCATION = 'contentstore.management.commands.reindex_course.query_yes_no' + + def _get_lib_key(self, library): + """ Get's library key as it is passed to indexer """ + return library.location.library_key + + def _build_calls(self, *courses): + """ Builds a list of mock.call instances representing calls to reindexing method """ + return [mock.call(self.store, course.id) for course in courses] + + def test_given_no_arguments_raises_command_error(self): + """ Test that raises CommandError for incorrect arguments """ + with self.assertRaises(SystemExit), nostderr(): + with self.assertRaisesRegexp(CommandError, ".* requires one or more arguments .*"): + call_command('reindex_course') + + @ddt.data('qwerty', 'invalid_key', 'xblock-v1:qwe+rty') + def test_given_invalid_course_key_raises_not_found(self, invalid_key): + """ Test that raises InvalidKeyError for invalid keys """ + errstring = "Invalid course_key: '%s'." % invalid_key + with self.assertRaises(SystemExit) as ex: + with self.assertRaisesRegexp(CommandError, errstring): + call_command('reindex_course', invalid_key) + self.assertEqual(ex.exception.code, 1) + + def test_given_library_key_raises_command_error(self): + """ Test that raises CommandError if library key is passed """ + with self.assertRaises(SystemExit), nostderr(): + with self.assertRaisesRegexp(SearchIndexingError, ".* is not a course key"): + call_command('reindex_course', unicode(self._get_lib_key(self.first_lib))) + + with self.assertRaises(SystemExit), nostderr(): + with self.assertRaisesRegexp(SearchIndexingError, ".* is not a course key"): + call_command('reindex_course', unicode(self._get_lib_key(self.second_lib))) + + with self.assertRaises(SystemExit), nostderr(): + with self.assertRaisesRegexp(SearchIndexingError, ".* is not a course key"): + call_command( + 'reindex_course', + unicode(self.second_course.id), + unicode(self._get_lib_key(self.first_lib)) + ) + + def test_given_id_list_indexes_courses(self): + """ Test that reindexes courses when given single course key or a list of course keys """ + with mock.patch(self.REINDEX_PATH_LOCATION) as patched_index, \ + mock.patch(self.MODULESTORE_PATCH_LOCATION, mock.Mock(return_value=self.store)): + call_command('reindex_course', unicode(self.first_course.id)) + self.assertEqual(patched_index.mock_calls, self._build_calls(self.first_course)) + patched_index.reset_mock() + + call_command('reindex_course', unicode(self.second_course.id)) + self.assertEqual(patched_index.mock_calls, self._build_calls(self.second_course)) + patched_index.reset_mock() + + call_command( + 'reindex_course', + unicode(self.first_course.id), + unicode(self.second_course.id) + ) + expected_calls = self._build_calls(self.first_course, self.second_course) + self.assertEqual(patched_index.mock_calls, expected_calls) + + def test_given_all_key_prompts_and_reindexes_all_courses(self): + """ Test that reindexes all courses when --all key is given and confirmed """ + with mock.patch(self.YESNO_PATCH_LOCATION) as patched_yes_no: + patched_yes_no.return_value = True + with mock.patch(self.REINDEX_PATH_LOCATION) as patched_index, \ + mock.patch(self.MODULESTORE_PATCH_LOCATION, mock.Mock(return_value=self.store)): + call_command('reindex_course', all=True) + + patched_yes_no.assert_called_once_with(ReindexCommand.CONFIRMATION_PROMPT, default='no') + expected_calls = self._build_calls(self.first_course, self.second_course) + self.assertItemsEqual(patched_index.mock_calls, expected_calls) + + def test_given_all_key_prompts_and_reindexes_all_courses_cancelled(self): + """ Test that does not reindex anything when --all key is given and cancelled """ + with mock.patch(self.YESNO_PATCH_LOCATION) as patched_yes_no: + patched_yes_no.return_value = False + with mock.patch(self.REINDEX_PATH_LOCATION) as patched_index, \ + mock.patch(self.MODULESTORE_PATCH_LOCATION, mock.Mock(return_value=self.store)): + call_command('reindex_course', all=True) + + patched_yes_no.assert_called_once_with(ReindexCommand.CONFIRMATION_PROMPT, default='no') + patched_index.assert_not_called() + + def test_fail_fast_if_reindex_fails(self): + """ Test that fails on first reindexing exception """ + with mock.patch(self.REINDEX_PATH_LOCATION) as patched_index: + patched_index.side_effect = SearchIndexingError("message", []) + + with self.assertRaises(SearchIndexingError): + call_command('reindex_course', unicode(self.second_course.id)) diff --git a/lms/envs/common.py b/lms/envs/common.py index 73dfd5f03c..c1ebcfbb04 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -395,6 +395,9 @@ FEATURES = { # Course discovery feature 'ENABLE_COURSE_DISCOVERY': False, + # Setting for overriding default filtering facets for Course discovery + # COURSE_DISCOVERY_FILTERS = ["org", "language", "modes"] + # Software secure fake page feature flag 'ENABLE_SOFTWARE_SECURE_FAKE': False, diff --git a/lms/envs/devstack.py b/lms/envs/devstack.py index 3d90ef36a9..8d3fba9362 100644 --- a/lms/envs/devstack.py +++ b/lms/envs/devstack.py @@ -138,7 +138,7 @@ FEATURES['LICENSING'] = True ########################## Courseware Search ####################### -FEATURES['ENABLE_COURSEWARE_SEARCH'] = False +FEATURES['ENABLE_COURSEWARE_SEARCH'] = True SEARCH_ENGINE = "search.elastic.ElasticSearchEngine" @@ -167,7 +167,9 @@ COURSE_DISCOVERY_MEANINGS = { 'language': LANGUAGE_MAP, } -FEATURES['ENABLE_COURSE_DISCOVERY'] = False +FEATURES['ENABLE_COURSE_DISCOVERY'] = True +# Setting for overriding default filtering facets for Course discovery +# COURSE_DISCOVERY_FILTERS = ["org", "language", "modes"] FEATURES['COURSES_ARE_BROWSEABLE'] = True HOMEPAGE_COURSE_MAX = 9 diff --git a/pavelib/paver_tests/test_servers.py b/pavelib/paver_tests/test_servers.py index f5a1057975..3dbf20388e 100644 --- a/pavelib/paver_tests/test_servers.py +++ b/pavelib/paver_tests/test_servers.py @@ -30,6 +30,9 @@ EXPECTED_CELERY_COMMAND = ( EXPECTED_RUN_SERVER_COMMAND = ( "python manage.py {system} --settings={settings} runserver --traceback --pythonpath=. 0.0.0.0:{port}" ) +EXPECTED_INDEX_COURSE_COMMAND = ( + "python manage.py {system} --settings={settings} reindex_course --setup" +) @ddt.ddt @@ -83,13 +86,27 @@ class TestPaverServerTasks(PaverTestCase): Test the "devstack" task. """ options = server_options.copy() + is_optimized = options.get("optimized", False) + expected_settings = "devstack_optimized" if is_optimized else options.get("settings", "devstack") # First test with LMS options["system"] = "lms" + options["expected_messages"] = [ + EXPECTED_INDEX_COURSE_COMMAND.format( + system="cms", + settings=expected_settings, + ) + ] self.verify_server_task("devstack", options, contracts_default=True) # Then test with Studio options["system"] = "cms" + options["expected_messages"] = [ + EXPECTED_INDEX_COURSE_COMMAND.format( + system="cms", + settings=expected_settings, + ) + ] self.verify_server_task("devstack", options, contracts_default=True) @ddt.data( @@ -196,7 +213,7 @@ class TestPaverServerTasks(PaverTestCase): call_task("pavelib.servers.devstack", args=args) else: call_task("pavelib.servers.{task_name}".format(task_name=task_name), options=options) - expected_messages = [] + expected_messages = options.get("expected_messages", []) expected_settings = settings if settings else "devstack" expected_asset_settings = asset_settings if asset_settings else expected_settings if is_optimized: diff --git a/pavelib/servers.py b/pavelib/servers.py index d2b0615e7f..7c0d778bbf 100644 --- a/pavelib/servers.py +++ b/pavelib/servers.py @@ -135,6 +135,7 @@ def devstack(args): if args.optimized: settings = OPTIMIZED_SETTINGS asset_settings = OPTIMIZED_ASSETS_SETTINGS + sh(django_cmd('cms', settings, 'reindex_course', '--setup')) run_server( args.system[0], fast=args.fast, From d3474f28305dc1e8d7e4ae3b920b7420afd188cc Mon Sep 17 00:00:00 2001 From: Chris Dodge Date: Wed, 2 Sep 2015 21:19:10 -0400 Subject: [PATCH 90/98] Update requirements of edx-proctoring to 0.8.x --- requirements/edx/github.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/edx/github.txt b/requirements/edx/github.txt index c24a415515..3eeba8674a 100644 --- a/requirements/edx/github.txt +++ b/requirements/edx/github.txt @@ -57,7 +57,7 @@ git+https://github.com/edx/ecommerce-api-client.git@1.1.0#egg=ecommerce-api-clie -e git+https://github.com/edx/edx-user-state-client.git@30c0ad4b9f57f8d48d6943eb585ec8a9205f4469#egg=edx-user-state-client -e git+https://github.com/edx/edx-organizations.git@release-2015-08-31#egg=edx-organizations -git+https://github.com/edx/edx-proctoring.git@0.7.2#egg=edx-proctoring==0.7.2 +git+https://github.com/edx/edx-proctoring.git@0.8.3#egg=edx-proctoring==0.8.3 # Third Party XBlocks -e git+https://github.com/mitodl/edx-sga@172a90fd2738f8142c10478356b2d9ed3e55334a#egg=edx-sga From dbfa6dafedd3b0f67341e73039d8ad16f04c7d68 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Thu, 3 Sep 2015 16:59:12 -0400 Subject: [PATCH 91/98] Resolve conflicts in merge to master --- lms/djangoapps/lti_provider/tasks.py | 7 +------ .../lti_provider/tests/test_outcomes.py | 20 ++----------------- 2 files changed, 3 insertions(+), 24 deletions(-) diff --git a/lms/djangoapps/lti_provider/tasks.py b/lms/djangoapps/lti_provider/tasks.py index 210422e22a..4b774950c9 100644 --- a/lms/djangoapps/lti_provider/tasks.py +++ b/lms/djangoapps/lti_provider/tasks.py @@ -53,12 +53,7 @@ def score_changed_handler(sender, **kwargs): # pylint: disable=unused-argument ) -<<<<<<< HEAD -@CELERY_APP.task(name='lti_provider.tasks.send_outcome') -def send_outcome(points_possible, points_earned, user_id, course_id, usage_id): -======= def increment_assignment_versions(course_key, usage_key, user_id): ->>>>>>> edx/master """ Update the version numbers for all assignments that are affected by a score change event. Returns a list of all affected assignments. @@ -77,7 +72,7 @@ def increment_assignment_versions(course_key, usage_key, user_id): return assignments -@CELERY_APP.task +@CELERY_APP.task(name='lti_provider.tasks.send_composite_outcome') def send_composite_outcome(user_id, course_id, assignment_id, version): """ Calculate and transmit the score for a composite module (such as a diff --git a/lms/djangoapps/lti_provider/tests/test_outcomes.py b/lms/djangoapps/lti_provider/tests/test_outcomes.py index 53582f7c42..e89e366d29 100644 --- a/lms/djangoapps/lti_provider/tests/test_outcomes.py +++ b/lms/djangoapps/lti_provider/tests/test_outcomes.py @@ -14,25 +14,10 @@ from student.tests.factories import UserFactory from lti_provider.models import GradedAssignment, LtiConsumer, OutcomeService import lti_provider.outcomes as outcomes -<<<<<<< HEAD -import lti_provider.tasks as tasks -======= -from opaque_keys.edx.locator import CourseLocator, BlockUsageLocator from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import ItemFactory, CourseFactory, check_mongo_calls -def create_score(earned, possible): - """ - Create a new mock Score object with specified earned and possible values - """ - score = MagicMock() - score.possible = possible - score.earned = earned - return score ->>>>>>> edx/master - - class StoreOutcomeParametersTest(TestCase): """ Tests for the store_outcome_parameters method in outcomes.py @@ -310,7 +295,6 @@ class XmlHandlingTest(TestCase): self.assertFalse(outcomes.check_replace_result_response(response)) -<<<<<<< HEAD class TestBodyHashClient(unittest.TestCase): """ Test our custom BodyHashClient @@ -350,7 +334,8 @@ class TestBodyHashClient(unittest.TestCase): ] for oauth_header in expected_oauth_headers: self.assertIn(oauth_header, prepped_req.headers['Authorization']) -======= + + class TestAssignmentsForProblem(ModuleStoreTestCase): """ Test cases for the assignments_for_problem method in outcomes.py @@ -471,4 +456,3 @@ class TestAssignmentsForProblem(ModuleStoreTestCase): self.assertEqual(assignments[1].lis_result_sourcedid, 'graded_unit2') self.assertEqual(assignments[0].outcome_service, self.outcome_service) self.assertEqual(assignments[1].outcome_service, other_outcome_service) ->>>>>>> edx/master From ae006cffc4515c28e2dd3d201ac86b38d7de82d3 Mon Sep 17 00:00:00 2001 From: Peter Fogg Date: Fri, 4 Sep 2015 09:53:47 -0400 Subject: [PATCH 92/98] Skip extra-flaky video test. --- common/test/acceptance/tests/video/test_video_events.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/common/test/acceptance/tests/video/test_video_events.py b/common/test/acceptance/tests/video/test_video_events.py index 6e0121b7f0..158e01a0f2 100644 --- a/common/test/acceptance/tests/video/test_video_events.py +++ b/common/test/acceptance/tests/video/test_video_events.py @@ -3,6 +3,7 @@ import datetime import json import ddt +import unittest from ..helpers import EventsTestMixin from .test_video_module import VideoBaseTest @@ -11,8 +12,6 @@ from ...pages.lms.video.video import _parse_time_str from openedx.core.lib.tests.assertions.events import assert_event_matches, assert_events_equal from opaque_keys.edx.keys import UsageKey, CourseKey -from flaky import flaky - class VideoEventsTestMixin(EventsTestMixin, VideoBaseTest): """ @@ -62,7 +61,7 @@ class VideoEventsTestMixin(EventsTestMixin, VideoBaseTest): class VideoEventsTest(VideoEventsTestMixin): """ Test video player event emission """ - @flaky # TODO: AN-5867 + @unittest.skip('AN-5867') def test_video_control_events(self): """ Scenario: Video component is rendered in the LMS in Youtube mode without HTML5 sources From a743f4a642d28ca5d294b8d5b655ad26265416ef Mon Sep 17 00:00:00 2001 From: Diana Huang Date: Thu, 3 Sep 2015 11:30:24 -0400 Subject: [PATCH 93/98] Add teams eventing and tests. --- .../test/acceptance/tests/lms/test_teams.py | 56 ++++++++++++++++-- lms/djangoapps/teams/tests/test_views.py | 59 +++++++++++++++++-- lms/djangoapps/teams/views.py | 32 ++++++++++ 3 files changed, 137 insertions(+), 10 deletions(-) diff --git a/common/test/acceptance/tests/lms/test_teams.py b/common/test/acceptance/tests/lms/test_teams.py index 11366b142b..ffb67ae157 100644 --- a/common/test/acceptance/tests/lms/test_teams.py +++ b/common/test/acceptance/tests/lms/test_teams.py @@ -11,7 +11,7 @@ from flaky import flaky from nose.plugins.attrib import attr from uuid import uuid4 -from ..helpers import UniqueCourseTest +from ..helpers import UniqueCourseTest, EventsTestMixin from ...fixtures import LMS_BASE_URL from ...fixtures.course import CourseFixture from ...fixtures.discussion import ( @@ -28,7 +28,7 @@ from ...pages.lms.teams import TeamsPage, MyTeamsPage, BrowseTopicsPage, BrowseT TOPICS_PER_PAGE = 12 -class TeamsTabBase(UniqueCourseTest): +class TeamsTabBase(EventsTestMixin, UniqueCourseTest): """Base class for Teams Tab tests""" def setUp(self): super(TeamsTabBase, self).setUp() @@ -123,6 +123,10 @@ class TeamsTabBase(UniqueCourseTest): # We are doing these operations on this top-level page object to avoid reloading the page. self.teams_page.verify_my_team_count(expected_number_of_teams) + def only_team_events(self, event): + """Filter out all non-team events.""" + return event['event_type'].startswith('edx.team.') + @ddt.ddt @attr('shard_5') @@ -899,7 +903,8 @@ class CreateTeamTest(TeamFormActions): Then I should see the Create Team header and form When I fill all the fields present with appropriate data And I click Create button - Then I should see the page for my team + Then I expect analytics events to be emitted + And I should see the page for my team And I should see the message that says "You are member of this team" And the new team should be added to the list of teams within the topic And the number of teams should be updated on the topic card @@ -911,7 +916,24 @@ class CreateTeamTest(TeamFormActions): self.verify_and_navigate_to_create_team_page() self.fill_create_or_edit_form() - self.create_or_edit_team_page.submit_form() + + expected_events = [ + { + 'event_type': 'edx.team.created', + 'event': { + 'course_id': self.course_id, + } + }, + { + 'event_type': 'edx.team.learner_added', + 'event': { + 'course_id': self.course_id, + 'add_method': 'added_on_create', + } + } + ] + with self.assert_events_match_during(event_filter=self.only_team_events, expected_events=expected_events): + self.create_or_edit_team_page.submit_form() # Verify that the page is shown for the new team team_page = TeamPage(self.browser, self.course_id) @@ -1330,6 +1352,7 @@ class TeamPageTest(TeamsTabBase): And I should not see New Post button When I click on Join Team button Then there should be no Join Team button and no message + And an analytics event should be emitted And I should see the updated information under Team Details And I should see New Post button And if I switch to "My Team", the team I have joined is displayed @@ -1337,7 +1360,17 @@ class TeamPageTest(TeamsTabBase): self._set_team_configuration_and_membership(create_membership=False) self.team_page.visit() self.assertTrue(self.team_page.join_team_button_present) - self.team_page.click_join_team_button() + expected_events = [ + { + 'event_type': 'edx.team.learner_added', + 'event': { + 'course_id': self.course_id, + 'add_method': 'joined_from_team_view' + } + } + ] + with self.assert_events_match_during(event_filter=self.only_team_events, expected_events=expected_events): + self.team_page.click_join_team_button() self.assertFalse(self.team_page.join_team_button_present) self.assertFalse(self.team_page.join_team_message_present) self.assert_team_details(num_members=1, is_member=True) @@ -1397,6 +1430,7 @@ class TeamPageTest(TeamsTabBase): Then I should see Leave Team link When I click on Leave Team link Then user should be removed from team + And an analytics event should be emitted And I should see Join Team button And I should not see New Post button And if I switch to "My Team", the team I have left is not displayed @@ -1405,7 +1439,17 @@ class TeamPageTest(TeamsTabBase): self.team_page.visit() self.assertFalse(self.team_page.join_team_button_present) self.assert_team_details(num_members=1) - self.team_page.click_leave_team_link() + expected_events = [ + { + 'event_type': 'edx.team.learner_removed', + 'event': { + 'course_id': self.course_id, + 'remove_method': 'self_removal' + } + } + ] + with self.assert_events_match_during(event_filter=self.only_team_events, expected_events=expected_events): + self.team_page.click_leave_team_link() self.assert_team_details(num_members=0, is_member=False) self.assertTrue(self.team_page.join_team_button_present) diff --git a/lms/djangoapps/teams/tests/test_views.py b/lms/djangoapps/teams/tests/test_views.py index 2e43659bda..07975309d7 100644 --- a/lms/djangoapps/teams/tests/test_views.py +++ b/lms/djangoapps/teams/tests/test_views.py @@ -14,6 +14,7 @@ from rest_framework.test import APITestCase, APIClient from courseware.tests.factories import StaffFactory from common.test.utils import skip_signal +from util.testing import EventTestMixin from student.tests.factories import UserFactory, AdminFactory, CourseEnrollmentFactory from student.models import CourseEnrollment from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase @@ -529,9 +530,12 @@ class TestListTeamsAPI(TeamAPITestCase): @ddt.ddt -class TestCreateTeamAPI(TeamAPITestCase): +class TestCreateTeamAPI(EventTestMixin, TeamAPITestCase): """Test cases for the team creation endpoint.""" + def setUp(self): # pylint: disable=arguments-differ + super(TestCreateTeamAPI, self).setUp('teams.views.tracker') + @ddt.data( (None, 401), ('student_inactive', 401), @@ -549,11 +553,15 @@ class TestCreateTeamAPI(TeamAPITestCase): teams = self.get_teams_list(user=user) self.assertIn("New Team", [team['name'] for team in teams['results']]) + def _expected_team_id(self, team, expected_prefix): + """ Return the team id that we'd expect given this team data and this prefix. """ + return expected_prefix + '-' + team['discussion_topic_id'] + def verify_expected_team_id(self, team, expected_prefix): """ Verifies that the team id starts with the specified prefix and ends with the discussion_topic_id """ self.assertIn('id', team) self.assertIn('discussion_topic_id', team) - self.assertEqual(team['id'], expected_prefix + '-' + team['discussion_topic_id']) + self.assertEqual(team['id'], self._expected_team_id(team, expected_prefix)) def test_naming(self): new_teams = [ @@ -640,6 +648,19 @@ class TestCreateTeamAPI(TeamAPITestCase): self.verify_expected_team_id(team, 'fully-specified-team') del team['id'] + self.assert_event_emitted( + 'edx.team.created', + team_id=self._expected_team_id(team, 'fully-specified-team'), + course_id=unicode(self.test_course_1.id), + ) + + self.assert_event_emitted( + 'edx.team.learner_added', + team_id=self._expected_team_id(team, 'fully-specified-team'), + course_id=unicode(self.test_course_1.id), + user_id=self.users[creator].id, + add_method='added_on_create' + ) # Remove date_created and discussion_topic_id because they change between test runs del team['date_created'] del team['discussion_topic_id'] @@ -1026,9 +1047,12 @@ class TestListMembershipAPI(TeamAPITestCase): @ddt.ddt -class TestCreateMembershipAPI(TeamAPITestCase): +class TestCreateMembershipAPI(EventTestMixin, TeamAPITestCase): """Test cases for the membership creation endpoint.""" + def setUp(self): # pylint: disable=arguments-differ + super(TestCreateMembershipAPI, self).setUp('teams.views.tracker') + @ddt.data( (None, 401), ('student_inactive', 401), @@ -1053,6 +1077,18 @@ class TestCreateMembershipAPI(TeamAPITestCase): memberships = self.get_membership_list(200, {'team_id': self.solar_team.team_id}) self.assertEqual(memberships['count'], 2) + add_method = 'joined_from_team_view' if user == 'student_enrolled_not_on_team' else 'added_by_another_user' + + self.assert_event_emitted( + 'edx.team.learner_added', + team_id=self.solar_team.team_id, + user_id=self.users['student_enrolled_not_on_team'].id, + course_id=unicode(self.solar_team.course_id), + add_method=add_method + ) + else: + self.assert_no_events_were_emitted() + def test_no_username(self): response = self.post_create_membership(400, {'team_id': self.solar_team.team_id}) self.assertIn('username', json.loads(response.content)['field_errors']) @@ -1176,9 +1212,12 @@ class TestDetailMembershipAPI(TeamAPITestCase): @ddt.ddt -class TestDeleteMembershipAPI(TeamAPITestCase): +class TestDeleteMembershipAPI(EventTestMixin, TeamAPITestCase): """Test cases for the membership deletion endpoint.""" + def setUp(self): # pylint: disable=arguments-differ + super(TestDeleteMembershipAPI, self).setUp('teams.views.tracker') + @ddt.data( (None, 401), ('student_inactive', 401), @@ -1198,6 +1237,18 @@ class TestDeleteMembershipAPI(TeamAPITestCase): user=user ) + if status == 204: + remove_method = 'self_removal' if user == 'student_enrolled' else 'removed_by_admin' + self.assert_event_emitted( + 'edx.team.learner_removed', + team_id=self.solar_team.team_id, + course_id=unicode(self.solar_team.course_id), + user_id=self.users['student_enrolled'].id, + remove_method=remove_method + ) + else: + self.assert_no_events_were_emitted() + def test_bad_team(self): self.delete_membership('no_such_team', self.users['student_enrolled'].username, 404) diff --git a/lms/djangoapps/teams/views.py b/lms/djangoapps/teams/views.py index 9bcb85ea3f..4ceda4e9fa 100644 --- a/lms/djangoapps/teams/views.py +++ b/lms/djangoapps/teams/views.py @@ -34,6 +34,7 @@ from xmodule.modulestore.django import modulestore from opaque_keys import InvalidKeyError from opaque_keys.edx.keys import CourseKey +from eventtracking import tracker from courseware.courses import get_course_with_access, has_access from student.models import CourseEnrollment, CourseAccessRole from student.roles import CourseStaffRole @@ -417,9 +418,22 @@ class TeamsListView(ExpandableFieldViewMixin, GenericAPIView): }, status=status.HTTP_400_BAD_REQUEST) else: team = serializer.save() + tracker.emit('edx.team.created', { + 'team_id': team.team_id, + 'course_id': unicode(course_id) + }) if not team_administrator: # Add the creating user to the team. team.add_user(request.user) + tracker.emit( + 'edx.team.learner_added', + { + 'team_id': team.team_id, + 'user_id': request.user.id, + 'course_id': unicode(team.course_id), + 'add_method': 'added_on_create' + } + ) return Response(CourseTeamSerializer(team).data) def get_page(self): @@ -974,6 +988,15 @@ class MembershipListView(ExpandableFieldViewMixin, GenericAPIView): try: membership = team.add_user(user) + tracker.emit( + 'edx.team.learner_added', + { + 'team_id': team.team_id, + 'user_id': user.id, + 'course_id': unicode(team.course_id), + 'add_method': 'joined_from_team_view' if user == request.user else 'added_by_another_user' + } + ) except AlreadyOnTeamInCourse: return Response( build_api_error( @@ -1100,6 +1123,15 @@ class MembershipDetailView(ExpandableFieldViewMixin, GenericAPIView): if has_team_api_access(request.user, team.course_id, access_username=username): membership = self.get_membership(username, team) membership.delete() + tracker.emit( + 'edx.team.learner_removed', + { + 'team_id': team.team_id, + 'course_id': unicode(team.course_id), + 'user_id': membership.user.id, + 'remove_method': 'self_removal' if membership.user == request.user else 'removed_by_admin' + } + ) return Response(status=status.HTTP_204_NO_CONTENT) else: return Response(status=status.HTTP_404_NOT_FOUND) From 03f555210b7053aae8b4e75fa2d2e5e239d9aac2 Mon Sep 17 00:00:00 2001 From: Sarina Canelake Date: Fri, 4 Sep 2015 10:56:27 -0400 Subject: [PATCH 94/98] Update translations (autogenerated message) --- conf/locale/ar/LC_MESSAGES/django.mo | Bin 642805 -> 637859 bytes conf/locale/ar/LC_MESSAGES/django.po | 187 ++--- conf/locale/ar/LC_MESSAGES/djangojs.mo | Bin 175081 -> 174544 bytes conf/locale/ar/LC_MESSAGES/djangojs.po | 746 +++++++++++++++++--- conf/locale/eo/LC_MESSAGES/django.mo | Bin 982317 -> 985343 bytes conf/locale/eo/LC_MESSAGES/django.po | 152 +++-- conf/locale/eo/LC_MESSAGES/djangojs.mo | Bin 282955 -> 285385 bytes conf/locale/eo/LC_MESSAGES/djangojs.po | 241 +++++-- conf/locale/es_419/LC_MESSAGES/django.mo | Bin 541133 -> 536598 bytes conf/locale/es_419/LC_MESSAGES/django.po | 194 +++--- conf/locale/es_419/LC_MESSAGES/djangojs.mo | Bin 147352 -> 146142 bytes conf/locale/es_419/LC_MESSAGES/djangojs.po | 752 ++++++++++++++++++--- conf/locale/fr/LC_MESSAGES/django.mo | Bin 350204 -> 357939 bytes conf/locale/fr/LC_MESSAGES/django.po | 264 +++++--- conf/locale/fr/LC_MESSAGES/djangojs.mo | Bin 116996 -> 116841 bytes conf/locale/fr/LC_MESSAGES/djangojs.po | 741 +++++++++++++++++--- conf/locale/he/LC_MESSAGES/django.mo | Bin 6225 -> 6225 bytes conf/locale/he/LC_MESSAGES/django.po | 158 +++-- conf/locale/he/LC_MESSAGES/djangojs.mo | Bin 1515 -> 1515 bytes conf/locale/he/LC_MESSAGES/djangojs.po | 729 ++++++++++++++++++-- conf/locale/hi/LC_MESSAGES/django.mo | Bin 203291 -> 203200 bytes conf/locale/hi/LC_MESSAGES/django.po | 160 +++-- conf/locale/hi/LC_MESSAGES/djangojs.mo | Bin 40937 -> 40409 bytes conf/locale/hi/LC_MESSAGES/djangojs.po | 723 ++++++++++++++++++-- conf/locale/ko_KR/LC_MESSAGES/django.mo | Bin 509967 -> 505889 bytes conf/locale/ko_KR/LC_MESSAGES/django.po | 315 +++++---- conf/locale/ko_KR/LC_MESSAGES/djangojs.mo | Bin 71047 -> 71029 bytes conf/locale/ko_KR/LC_MESSAGES/djangojs.po | 735 ++++++++++++++++++-- conf/locale/pt_BR/LC_MESSAGES/django.mo | Bin 215977 -> 215581 bytes conf/locale/pt_BR/LC_MESSAGES/django.po | 162 +++-- conf/locale/pt_BR/LC_MESSAGES/djangojs.mo | Bin 51859 -> 51859 bytes conf/locale/pt_BR/LC_MESSAGES/djangojs.po | 707 +++++++++++++++++-- conf/locale/rtl/LC_MESSAGES/django.mo | Bin 655579 -> 657386 bytes conf/locale/rtl/LC_MESSAGES/django.po | 125 ++-- conf/locale/rtl/LC_MESSAGES/djangojs.mo | Bin 187193 -> 188979 bytes conf/locale/rtl/LC_MESSAGES/djangojs.po | 229 +++++-- conf/locale/ru/LC_MESSAGES/django.mo | Bin 45705 -> 45719 bytes conf/locale/ru/LC_MESSAGES/django.po | 162 +++-- conf/locale/ru/LC_MESSAGES/djangojs.mo | Bin 17014 -> 16986 bytes conf/locale/ru/LC_MESSAGES/djangojs.po | 730 ++++++++++++++++++-- conf/locale/zh_CN/LC_MESSAGES/django.mo | Bin 262917 -> 262606 bytes conf/locale/zh_CN/LC_MESSAGES/django.po | 160 +++-- conf/locale/zh_CN/LC_MESSAGES/djangojs.mo | Bin 99181 -> 98879 bytes conf/locale/zh_CN/LC_MESSAGES/djangojs.po | 733 +++++++++++++++++--- 44 files changed, 7537 insertions(+), 1568 deletions(-) diff --git a/conf/locale/ar/LC_MESSAGES/django.mo b/conf/locale/ar/LC_MESSAGES/django.mo index e45d076fda1f41171865de2f70ff8276f79bd955..3f9b21e4f613e70a2524e400a47d60eb52f5d956 100644 GIT binary patch delta 81559 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 diff --git a/conf/locale/ar/LC_MESSAGES/django.po b/conf/locale/ar/LC_MESSAGES/django.po index d942eb2e4e..89fec36537 100644 --- a/conf/locale/ar/LC_MESSAGES/django.po +++ b/conf/locale/ar/LC_MESSAGES/django.po @@ -129,7 +129,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:18+0000\n" +"POT-Creation-Date: 2015-09-04 14:07+0000\n" "PO-Revision-Date: 2015-08-12 08:13+0000\n" "Last-Translator: Ahmed Jazzar \n" "Language-Team: Arabic (http://www.transifex.com/open-edx/edx-platform/language/ar/)\n" @@ -1381,10 +1381,6 @@ msgstr "صحيح" msgid "incorrect" msgstr "غير صحيح" -#: common/lib/capa/capa/inputtypes.py -msgid "partially correct" -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "incomplete" msgstr "ناقص" @@ -1407,10 +1403,6 @@ msgstr "هذا صحيح" msgid "This is incorrect." msgstr "هذا خطأ" -#: common/lib/capa/capa/inputtypes.py -msgid "This is partially correct." -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "This is unanswered." msgstr "هذا غير مجاب عليه" @@ -5190,8 +5182,15 @@ msgid "{month} {day}, {year}" msgstr "{month} {day}، {year}" #: lms/djangoapps/certificates/views/webview.py -msgid "a course of study offered by {partner_name}, through {platform_name}." -msgstr "مساق دروس يقدِّمه {partner_name}، عبر {platform_name}." +msgid "" +"a course of study offered by {partner_short_name}, an online learning " +"initiative of {partner_long_name} through {platform_name}." +msgstr "" + +#: lms/djangoapps/certificates/views/webview.py +msgid "" +"a course of study offered by {partner_short_name}, through {platform_name}." +msgstr "" #. Translators: Accomplishments describe the awards/certifications obtained by #. students on this platform @@ -5302,16 +5301,14 @@ msgstr "تُقِرّ {platform_name} بإنجازات الطالب التالي #: lms/djangoapps/certificates/views/webview.py msgid "" "This is a valid {platform_name} certificate for {user_name}, who " -"participated in {partner_name} {course_number}" +"participated in {partner_short_name} {course_number}" msgstr "" -"هذه شهادة صالحة من {platform_name} للمستخدم {user_name} الذي شارك في " -"{partner_name} {course_number}" #. Translators: This text is bound to the HTML 'title' element of the page #. and appears in the browser title bar #: lms/djangoapps/certificates/views/webview.py -msgid "{partner_name} {course_number} Certificate | {platform_name}" -msgstr "شهادة {partner_name} {course_number} | {platform_name}" +msgid "{partner_short_name} {course_number} Certificate | {platform_name}" +msgstr "" #. Translators: This text fragment appears after the student's name #. (displayed in a large font) on the certificate @@ -5478,6 +5475,14 @@ msgstr "" "إذا لم يظهر مساقك على لوحة معلوماتك، يُرجى الاتصال بـ " "{payment_support_link}." +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "{course_id} is not a valid course key." +msgstr "" + +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "Course {course_id} does not exist." +msgstr "" + #: lms/djangoapps/course_wiki/tab.py lms/djangoapps/course_wiki/views.py #: lms/templates/wiki/base.html msgid "Wiki" @@ -6032,6 +6037,23 @@ msgstr "اسم المستخدم {user} موجود مسبقًا." msgid "File is not attached." msgstr "الملف غير مُرفَق. " +#: lms/djangoapps/instructor/views/api.py +msgid "Could not find problem with this location." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"The problem responses report is being created. To view the status of the " +"report, see Pending Tasks below." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"A problem responses report generation task is already in progress. Check the" +" 'Pending Tasks' table for the status of the task. When completed, the " +"report will be available for download in the table below." +msgstr "" + #: lms/djangoapps/instructor/views/api.py msgid "Invoice number '{num}' does not exist." msgstr " الفاتورة رقم '{num}' غير موجودة." @@ -6451,6 +6473,10 @@ msgstr "لا توجد وضعية للمساق CourseMode باسم ({mode_slug}) msgid "CourseMode price updated successfully" msgstr "تمّ عملية تحديث سعر CourseMode بنجاح" +#: lms/djangoapps/instructor/views/instructor_dashboard.py +msgid "No end date set" +msgstr "" + #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "Enrollment data is now available in {dashboard_link}." msgstr "تتوافر بيانات التسجيل الآن على {dashboard_link}." @@ -6557,18 +6583,6 @@ msgstr "بريد إلكتروني خارجي" msgid "Grades for assignment \"{name}\"" msgstr "درجات الواجب \"{name}\"" -#: lms/djangoapps/instructor/views/legacy.py -msgid "Found {num} records to dump." -msgstr "وُجدت {num} سجلّات للتخلّص منها." - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Couldn't find module with that urlname." -msgstr "نأسف لتعذّر إيجاد وحدة بذلك الرابط." - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Student state for problem {problem}" -msgstr "حالة الطالب بالنسبة للمسألة {problem}" - #: lms/djangoapps/instructor/views/legacy.py msgid "Grades from {course_id}" msgstr "الدرجات من المساق رقم {course_id}" @@ -6736,6 +6750,12 @@ msgstr "جرى الحذف" msgid "emailed" msgstr "الإرسال بالبريد الإلكتروني" +#. Translators: This is a past-tense verb that is inserted into task progress +#. messages as {action}. +#: lms/djangoapps/instructor_task/tasks.py +msgid "generated" +msgstr "الاستحداث" + #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -6748,12 +6768,6 @@ msgstr "التقييم " msgid "problem distribution graded" msgstr "تقييم توزيع المسائل " -#. Translators: This is a past-tense verb that is inserted into task progress -#. messages as {action}. -#: lms/djangoapps/instructor_task/tasks.py -msgid "generated" -msgstr "الاستحداث" - #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -8382,12 +8396,12 @@ msgid "course_id must be provided" msgstr "يجب توفير الرقم التغريفي للمساق course_id." #: lms/djangoapps/teams/views.py -msgid "The supplied topic id {topic_id} is not valid" -msgstr "الرقم التعريفي الذي جرى توفيره حول الموضوع {topic_id} غير صالح." +msgid "text_search and order_by cannot be provided together" +msgstr "" #: lms/djangoapps/teams/views.py -msgid "text_search is not yet supported." -msgstr "إنّ خاصّية البحث في النصّ text_search غير مدعومة بعد." +msgid "The supplied topic id {topic_id} is not valid" +msgstr "الرقم التعريفي الذي جرى توفيره حول الموضوع {topic_id} غير صالح." #. Translators: 'ordering' is a string describing a way #. of ordering a list. For example, {ordering} may be @@ -10195,6 +10209,10 @@ msgstr "المساعدة" msgid "Sign Out" msgstr "تسجيل الخروج" +#: common/lib/capa/capa/templates/codeinput.html +msgid "{programming_language} editor" +msgstr "" + #: common/templates/license.html msgid "All Rights Reserved" msgstr "جميع الحقوق محفوظة" @@ -12862,8 +12880,10 @@ msgid "Section:" msgstr "القسم:" #: lms/templates/courseware/legacy_instructor_dashboard.html -msgid "Problem urlname:" -msgstr "اسم الرابط urlname الخاص بالمسألة: " +msgid "" +"To download a CSV listing student responses to a given problem, visit the " +"Data Download section of the Instructor Dashboard." +msgstr "" #: lms/templates/courseware/legacy_instructor_dashboard.html msgid "" @@ -14860,6 +14880,20 @@ msgstr "" msgid "Generate Proctored Exam Results Report" msgstr "" +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "" +"To generate a CSV file that lists all student answers to a given problem, " +"enter the location of the problem (from its Staff Debug Info)." +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Problem location: " +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Download a CSV of problem responses" +msgstr "" + #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" "For smaller courses, click to list profile information for enrolled students" @@ -17396,60 +17430,51 @@ msgid "This module is not enabled." msgstr "هذه الوحدة غير مفعَّلة." #: cms/templates/certificates.html -msgid "" -"Upon successful completion of your course, learners receive a certificate to" -" acknowledge their accomplishment. If you are a course team member with the " -"Admin role in Studio, you can configure your course certificate." +msgid "Working with Certificates" msgstr "" -"عند استكمال الطلّاب لمساقك بنجاح، يحصلون على شهادة تُثبِت إنجازهم. وإذا كنت " -"عضوًا في فريق المساق بدور مشرِف في الاستوديو، يمكنك إعداد شهادة مساقك." #: cms/templates/certificates.html msgid "" -"Click {em_start}Add your first certificate{em_end} to add a certificate " -"configuration. Upload the organization logo to be used on the certificate, " -"and specify at least one signatory. You can include up to four signatories " -"for a certificate. You can also upload a signature image file for each " -"signatory. {em_start}Note:{em_end} Signature images are used only for " -"verified certificates. Optionally, specify a different course title to use " -"on your course certificate. You might want to use a different title if, for " -"example, the official course name is too long to display well on a " -"certificate." +"Specify a course title to use on the certificate if the course's official " +"title is too long to be displayed well." msgstr "" -"يُرجى النقر على {em_start}أَضِف شهادتك الأولى{em_end} لتُضيف إعدادات " -"الشهادة. ثمّ حَمِّل شعار المؤسّسة لوضعه على الشهادة وحدِّد موقِّعًا واحدًا " -"على الأقلّ وأربعة على الأكثر لكل شهادة. ويمكنك أيضًا تحميل صورة التوقيع لكل " -"موقّع. {em_start}ملاحظة:{em_end} تُستخدَم صور التواقيع فقط للشهادات " -"الموثَّقة. أو إذا أردت، يمكنك أن تحدِّد اسمًا مختلفًا للمساق لوضعه على " -"شهادتك. وقد ترغب في استخدام اسم مختلف إذا كان، مثلًا، الاسم الرسمي للمساق " -"طويلًا جدًّا إلى درجة أنّه لن يبدو واضحًا على الشهادة." #: cms/templates/certificates.html msgid "" -"Select a course mode and click {em_start}Preview Certificate{em_end} to " -"preview the certificate that a learner in the selected enrollment track " -"would receive. When the certificate is ready for issuing, click " -"{em_start}Activate.{em_end} To stop issuing an active certificate, click " -"{em_start}Deactivate{em_end}." +"For verified certificates, specify between one and four signatories and " +"upload the associated images." msgstr "" -"يُرجى اختيار وضعية للمساق ثمّ النقر على {em_start}معاينة الشهادة{em_end} " -"لمعاينة الشهادة التي سيحصل عليها المتعلّم في مسار التسجيل المُنتقى. وعندما " -"تَجهَز الشهادة للإصدار، يُرجى النقر على {em_start}تفعيل.{em_end}. ولإيقاف " -"إصدار شهادة مفعَّلة، يُرجى النقر على {em_start}إبطال التفعيل{em_end}." #: cms/templates/certificates.html msgid "" -" To edit the certificate configuration, hover over the top right corner of " -"the form and click {em_start}Edit{em_end}. To delete a certificate, hover " -"over the top right corner of the form and click the delete icon. In general," -" do not delete certificates after a course has started, because some " -"certificates might already have been issued to learners." +"To edit or delete a certificate before it is activated, hover over the top " +"right corner of the form and select {em_start}Edit{em_end} or the delete " +"icon." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To view a sample certificate, choose a course mode and select " +"{em_start}Preview Certificate{em_end}." +msgstr "" + +#: cms/templates/certificates.html +msgid "Issuing Certificates to Learners" +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To begin issuing certificates, a course team member with the Admin role " +"selects {em_start}Activate{em_end}. Course team members without the Admin " +"role cannot edit or delete an activated certificate." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"{em_start}Do not{em_end} delete certificates after a course has started; " +"learners who have already earned certificates will no longer be able to " +"access them." msgstr "" -"لتعديل إعدادات الشهادة، يُرجى تحريك الماوس إلى الزاوية العليا اليمنى من " -"الاستمارة والنقر على {em_start}تعديل{em_end}. ولحذف إحدى الشهادات، يُرجى " -"تحريك الماوس إلى الزاوية العليا اليمنى من الاستمارة والنقر على رمز الحذف. " -"وبشكل عام، لا تحذف الشهادات بعد بدء المساق، لأنّ بعض الشهادات قد تكون " -"أُصدِرت مسبقًا للمتعلِّمين." #: cms/templates/certificates.html msgid "Learn more about certificates" diff --git a/conf/locale/ar/LC_MESSAGES/djangojs.mo b/conf/locale/ar/LC_MESSAGES/djangojs.mo index 5dc68dd392313ba8ea69ba680fca21bafb44afba..a08f9c7506f1bdc6a8d61a3c0b741f99ebdd1b8d 100644 GIT binary patch delta 29335 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 delta 29854 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 diff --git a/conf/locale/ar/LC_MESSAGES/djangojs.po b/conf/locale/ar/LC_MESSAGES/djangojs.po index 9aa50546e7..d42511a73a 100644 --- a/conf/locale/ar/LC_MESSAGES/djangojs.po +++ b/conf/locale/ar/LC_MESSAGES/djangojs.po @@ -57,6 +57,7 @@ # Translators: # Abdelghani Gadiri , 2014 # qrfahasan , 2014 +# Ahmad , 2015 # Ahmed Jazzar , 2015 # mohammad hamdi , 2014 # may , 2014 @@ -80,8 +81,8 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:17+0000\n" -"PO-Revision-Date: 2015-08-21 02:41+0000\n" +"POT-Creation-Date: 2015-09-04 14:06+0000\n" +"PO-Revision-Date: 2015-09-04 14:08+0000\n" "Last-Translator: Sarina Canelake \n" "Language-Team: Arabic (http://www.transifex.com/open-edx/edx-platform/language/ar/)\n" "MIME-Version: 1.0\n" @@ -127,8 +128,8 @@ msgstr "موافق" #: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js #: cms/static/js/views/modals/base_modal.js #: cms/static/js/views/modals/course_outline_modals.js -#: cms/static/js/views/utils/view_utils.js #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/js/components/utils/view_utils.js #: cms/templates/js/add-xblock-component-menu-problem.underscore #: cms/templates/js/add-xblock-component-menu.underscore #: cms/templates/js/certificate-editor.underscore @@ -139,6 +140,11 @@ msgstr "موافق" #: cms/templates/js/group-configuration-editor.underscore #: cms/templates/js/section-name-edit.underscore #: cms/templates/js/xblock-string-field-editor.underscore +#: common/static/common/templates/discussion/new-post.underscore +#: common/static/common/templates/discussion/response-comment-edit.underscore +#: common/static/common/templates/discussion/thread-edit.underscore +#: common/static/common/templates/discussion/thread-response-edit.underscore +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cancel" msgstr "إلغاء" @@ -148,17 +154,6 @@ msgstr "إلغاء" #: cms/static/js/views/manage_users_and_roles.js #: cms/static/js/views/show_textbook.js #: common/static/js/vendor/ova/catch/js/catch.js -#: cms/templates/js/certificate-details.underscore -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-details.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/course-outline.underscore -#: cms/templates/js/course_grade_policy.underscore -#: cms/templates/js/group-configuration-details.underscore -#: cms/templates/js/group-configuration-editor.underscore -#: cms/templates/js/show-textbook.underscore -#: cms/templates/js/signatory-editor.underscore -#: cms/templates/js/xblock-outline.underscore msgid "Delete" msgstr "حذف" @@ -233,14 +228,12 @@ msgstr "خطأ" msgid "Save" msgstr "حفظ" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: cms/static/js/views/modals/edit_xblock.js #: common/lib/xmodule/xmodule/js/src/html/edit.js -#: cms/templates/js/signatory-editor.underscore msgid "Close" -msgstr "إغلاق" +msgstr "إغلاق " #: common/lib/xmodule/xmodule/js/src/annotatable/display.js msgid "Show Annotations" @@ -336,6 +329,8 @@ msgstr "لم يلبِّ مجموع نقاطك المعيار المطلوب لل #: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js #: lms/static/coffee/src/staff_grading/staff_grading.js +#: common/static/common/templates/discussion/thread-response.underscore +#: common/static/common/templates/discussion/thread.underscore #: lms/templates/verify_student/incourse_reverify.underscore msgid "Submit" msgstr "تقديم" @@ -765,18 +760,10 @@ msgstr "خصائص المستند" msgid "Edit HTML" msgstr "تعديل لغة HTML" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js #: common/static/js/vendor/ova/catch/js/catch.js -#: cms/templates/js/certificate-details.underscore -#: cms/templates/js/content-group-details.underscore -#: cms/templates/js/course_info_handouts.underscore -#: cms/templates/js/group-configuration-details.underscore -#: cms/templates/js/show-textbook.underscore -#: cms/templates/js/signatory-details.underscore -#: cms/templates/js/xblock-string-field-editor.underscore msgid "Edit" msgstr "تعديل" @@ -1177,11 +1164,9 @@ msgstr "مستند جديد" msgid "New window" msgstr "نافذة جديدة" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js -#: cms/templates/js/paging-header.underscore msgid "Next" msgstr "التالي" @@ -1531,12 +1516,9 @@ msgstr "" "يبدو أن الرابط الذي أدخلته عبارة عن رابط خارجي، هل تريد إضافة البادئة " "http:// اللازمة؟" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js -#: cms/templates/js/signatory-details.underscore -#: cms/templates/js/signatory-editor.underscore msgid "Title" msgstr "العنوان" @@ -2161,6 +2143,18 @@ msgstr "نأسف لحدوث مشكلة في حذف هذا التعليق. يُر msgid "Are you sure you want to delete this response?" msgstr "هل أنت واثق من أنّك تودّ حذف هذا الرد؟" +#: common/static/common/js/components/utils/view_utils.js +msgid "Required field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces in this field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces or special characters in this field." +msgstr "" + #: common/static/common/js/components/views/paging_header.js msgid "Showing %(first_index)s out of %(num_items)s total" msgstr "إظهار %(first_index)s من أصل %(num_items)s." @@ -2360,6 +2354,7 @@ msgstr "تاريخ النشر" #: common/static/js/vendor/ova/catch/js/catch.js #: lms/static/js/courseware/credit_progress.js +#: common/static/common/templates/discussion/forum-actions.underscore #: lms/templates/discovery/facet.underscore #: lms/templates/edxnotes/note-item.underscore msgid "More" @@ -2439,21 +2434,34 @@ msgid "An unexpected error occurred. Please try again." msgstr "" #: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "last activity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "open slots" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/collections/topic.js #: lms/templates/edxnotes/tab-item.underscore msgid "name" msgstr "الاسم " -#: lms/djangoapps/teams/static/teams/js/collections/team.js -msgid "open_slots" -msgstr "open_slots" - #. Translators: This refers to the number of teams (a count of how many teams #. there are) #: lms/djangoapps/teams/static/teams/js/collections/topic.js msgid "team count" msgstr "عدد أعضاء الفريق" +#: cms/templates/js/certificate-editor.underscore +#: cms/templates/js/content-group-editor.underscore +#: cms/templates/js/group-configuration-editor.underscore +msgid "Create" +msgstr "إنشاء " + +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +msgid "Update" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/edit_team.js msgid "Team Name (Required) *" msgstr "" @@ -2478,6 +2486,7 @@ msgid "Language" msgstr "اللغة" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "" "The language that team members primarily use to communicate with each other." msgstr "" @@ -2488,6 +2497,7 @@ msgid "Country" msgstr "البلد" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "The country that team members primarily identify with." msgstr "" @@ -2520,20 +2530,48 @@ msgstr "" msgid "You are not currently a member of any team." msgstr "" +#. Translators: "and others" refers to fact that additional members of a team +#. exist that are not displayed. +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "and others" +msgstr "" + +#. Translators: 'date' is a placeholder for a fuzzy, relative timestamp (see: +#. https://github.com/rmm5t/jquery-timeago) +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "Last Activity %(date)s" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/team_card.js msgid "View %(span_start)s %(team_name)s %(span_end)s" msgstr "مشاهدة %(span_start)s %(team_name)s %(span_end)s" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js #: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "An error occurred. Try again." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "Leave this team?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "" +"If you leave, you can no longer post in this team's discussions. Your place " +"will be available to another learner." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/static/js/verify_student/views/reverify_view.js +#: lms/templates/verify_student/review_photos_step.underscore +msgid "Confirm" +msgstr "تأكيد" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "You already belong to another team." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "This team is full." msgstr "" @@ -2555,6 +2593,10 @@ msgstr "" msgid "teams" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Teams" +msgstr "الفِرَق" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "" "See all teams in your course, organized by topic. Join a team to collaborate" @@ -2563,31 +2605,52 @@ msgstr "" "تفضّل بالاطّلاع على جميع الفرق في مساقك، مرتّبةً بحسب الموضوع. وانضم إلى " "أحدها للتعاون مع المتعلّمين الآخرين المهتمّين بالمجال نفسه مثلك." -#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "Teams" -msgstr "الفِرَق" - #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "My Team" msgstr "" #. Translators: sr_start and sr_end surround text meant only for screen -#. readers. The whole string will be shown to users as "Browse teams" if they -#. are using a screenreader, and "Browse" otherwise. +#. readers. +#. The whole string will be shown to users as "Browse teams" if they are using +#. a +#. screenreader, and "Browse" otherwise. #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Browse %(sr_start)s teams %(sr_end)s" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"Create a new team if you can't find existing teams to join, or if you would " -"like to learn with friends you know." +msgid "Team Search" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Showing results for \"%(searchString)s\"" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Create a New Team" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"Create a new team if you can't find an existing team to join, or if you " +"would like to learn with friends you know." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Edit Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"If you make significant changes, make sure you notify members of the team " +"before making these changes." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Search teams" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "All Topics" msgstr "" @@ -2614,15 +2677,27 @@ msgstr[3] "%(team_count)s فِرق" msgstr[4] "%(team_count)s فِرق" msgstr[5] "%(team_count)s فريقاً" +#: lms/djangoapps/teams/static/teams/js/views/topic_card.js +msgid "Topic" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/topic_card.js msgid "View Teams in the %(topic_name)s Topic" msgstr "استعراض الفِرق في موضوع %(topic_name)s" +#. Translators: this string is shown at the bottom of the teams page +#. to find a team to join or else to create a new one. There are three +#. links that need to be included in the message: +#. 1. Browse teams in other topics +#. 2. search teams +#. 3. create a new team +#. Be careful to start each link with the appropriate start indicator +#. (e.g. {browse_span_start} for #1) and finish it with {span_end}. #: lms/djangoapps/teams/static/teams/js/views/topic_teams.js msgid "" -"Try {browse_span_start}browsing all teams{span_end} or " -"{search_span_start}searching team descriptions{span_end}. If you still can't" -" find a team to join, {create_span_start}create a new team in this " +"{browse_span_start}Browse teams in other topics{span_end} or " +"{search_span_start}search teams{span_end} in this topic. If you still can't " +"find a team to join, {create_span_start}create a new team in this " "topic{span_end}." msgstr "" @@ -4098,11 +4173,6 @@ msgstr "التقاط صورة لبطاقتك الشخصية" msgid "Review your info" msgstr "مراجعة معلوماتك" -#: lms/static/js/verify_student/views/reverify_view.js -#: lms/templates/verify_student/review_photos_step.underscore -msgid "Confirm" -msgstr "تأكيد" - #: lms/static/js/verify_student/views/step_view.js msgid "An error has occurred. Please try reloading the page." msgstr "نأسف لحدوث خطأ. يُرجى محاولة إعادة تحميل الصفحة." @@ -4690,7 +4760,7 @@ msgstr "جرى حذف ملفّك." msgid "Date Added" msgstr "تاريخ الإضافة " -#: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore +#: cms/static/js/views/assets.js msgid "Type" msgstr "النوع" @@ -5304,18 +5374,6 @@ msgstr "" "لا يمكن أن يزيد مجموع الأحرف في حقلي المؤسسة ورمز المكتبة عن <%=limit%> " "حرفًا." -#: cms/static/js/views/utils/view_utils.js -msgid "Required field." -msgstr "حقل مطلوب." - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces in this field." -msgstr "يُرجى عدم إدخال أي مسافات في هذا الحقل." - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces or special characters in this field." -msgstr "يُرجى عدم إدخال أي مسافات أو أحرف خاصة في هذا الحقل." - #: cms/static/js/views/utils/xblock_utils.js msgid "component" msgstr "مكوِّن" @@ -5408,11 +5466,526 @@ msgstr "الإجراءات" msgid "Due Date" msgstr "تاريخ الاستحقاق" +#: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore +msgid "Previous" +msgstr "" + #: cms/templates/js/previous-video-upload-list.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore #: lms/templates/verify_student/enrollment_confirmation_step.underscore msgid "Status" msgstr "الحالة" +#: common/static/common/templates/image-modal.underscore +msgid "Large" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom In" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom Out" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Page number" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Enter the page number you'd like to quickly navigate to." +msgstr "" + +#: common/static/common/templates/components/paging-header.underscore +msgid "Sorted by" +msgstr "" + +#: common/static/common/templates/components/search-field.underscore +msgid "Clear search" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "DISCUSSION HOME:" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +#: lms/templates/commerce/provider.underscore +#: lms/templates/commerce/receipt.underscore +#: lms/templates/discovery/course_card.underscore +msgid "gettext(" +msgstr "gettext(" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Find discussions" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Focus in on specific topics" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Search for specific posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Sort by date, vote, or comments" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Engage with posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Upvote posts and good responses" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Report Forum Misuse" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Follow posts for updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Receive updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Toggle Notifications Setting" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "" +"Check this box to receive an email digest once a day notifying you about " +"new, unread activity from posts you are following." +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Mark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Unmark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-close.underscore +msgid "Open" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Endorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Unendorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Follow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Unfollow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Pin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Unpin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report abuse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Unreport" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-vote.underscore +msgid "Vote for this post," +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Visible To:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "All Groups" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "" +"Discussion admins, moderators, and TAs can make their posts visible to all " +"students or specify a single cohort." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Title:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add a clear and descriptive title to encourage participation." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Enter your question or comment" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "follow this post" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously to classmates" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add Post" +msgstr "" + +#: common/static/common/templates/discussion/post-user-display.underscore +msgid "Community TA" +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +#: common/static/common/templates/discussion/thread.underscore +msgid "This thread is closed." +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +msgid "View discussion" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Editing comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Update comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#, python-format +msgid "posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Reported" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Editing post" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Edit post title" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Update post" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "answered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "unanswered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Pinned" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "Following" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Staff" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Community TA" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +msgid "fmt" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "" +"%(comments_count)s %(span_sr_open)scomments (%(unread_comments_count)s " +"unread comments)%(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "%(comments_count)s %(span_sr_open)scomments %(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Editing response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Update response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "fmts" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "Add a comment" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "This post is visible only to %(group_name)s." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "This post is visible to everyone." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "%(post_type)s posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Closed" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "Related to: %(courseware_title_linked)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Post type:" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Question" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "" +"Questions raise issues that need answers. Discussions share ideas and start " +"conversations." +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Add a Response" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Post a response:" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Expand discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Collapse discussion" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Topic Area:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Discussion topics; current selection is:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Filter topics" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Add your post to a relevant topic to help others find it." +msgstr "" + +#: common/static/common/templates/discussion/user-profile.underscore +msgid "Active Threads" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates.underscore +msgid "username or email" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "No results" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Course Key" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download URL" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Grade" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Last Updated" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download the user's certificate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Not available" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate the user's certificate" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be created." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be updated." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Enter information to describe your team. You cannot change these details " +"after you create the team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Optional Characteristics" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Help other learners decide whether to join your team by specifying some " +"characteristics for your team. Choose carefully, because fewer people might " +"be interested in joining your team if it seems too restrictive." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Create team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Update team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team creating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team updating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-actions.underscore +msgid "Are you having trouble finding a team to join?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Join Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "New Post" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team Details" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "You are a member of this team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team member profiles" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team capacity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "country" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "language" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Leave Team" +msgstr "" + +#: lms/static/js/fixtures/donation.underscore +#: lms/templates/dashboard/donation.underscore +msgid "Donate" +msgstr "تبرَّع" + #: lms/templates/ccx/schedule.underscore msgid "Expand All" msgstr "" @@ -5453,12 +6026,6 @@ msgstr "" msgid "Subsection" msgstr "" -#: lms/templates/commerce/provider.underscore -#: lms/templates/commerce/receipt.underscore -#: lms/templates/discovery/course_card.underscore -msgid "gettext(" -msgstr "gettext(" - #: lms/templates/commerce/provider.underscore #, python-format msgid "%s" @@ -5554,10 +6121,6 @@ msgstr "" msgid "End My Exam" msgstr "" -#: lms/templates/dashboard/donation.underscore -msgid "Donate" -msgstr "تبرَّع" - #: lms/templates/discovery/course_card.underscore msgid "LEARN MORE" msgstr "اعرف المزيد" @@ -6566,6 +7129,16 @@ msgstr "استخدم خاصية السحب والإفلات أو اضغط هنا msgid "status" msgstr "الحالة" +#: cms/templates/js/add-xblock-component-button.underscore +msgid "Add Component:" +msgstr "" + +#: cms/templates/js/add-xblock-component-menu-problem.underscore +#: cms/templates/js/add-xblock-component-menu.underscore +#, python-format +msgid "%(type)s Component Template Menu" +msgstr "" + #: cms/templates/js/add-xblock-component-menu-problem.underscore msgid "Common Problem Types" msgstr "المسائل الشائعة" @@ -6640,6 +7213,11 @@ msgstr "الرمز التعريفي" msgid "Certificate Details" msgstr "تفاصيل الشهادة" +#: cms/templates/js/certificate-details.underscore +#: cms/templates/js/certificate-editor.underscore +msgid "Course Title" +msgstr "" + #: cms/templates/js/certificate-details.underscore #: cms/templates/js/certificate-editor.underscore msgid "Course Title Override" @@ -6686,19 +7264,13 @@ msgstr "" "الحقل فارغًا لاستخدام العنوان الرسمي للمساق." #: cms/templates/js/certificate-editor.underscore -msgid "Add Signatory" -msgstr "إضافة مُوَقّع" +msgid "Add Additional Signatory" +msgstr "" #: cms/templates/js/certificate-editor.underscore msgid "(Up to 4 signatories are allowed for a certificate)" msgstr "(يمكن إضافة 4 موقِّعين كحد أقصى لكل شهادة)" -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/group-configuration-editor.underscore -msgid "Create" -msgstr "إنشاء " - #: cms/templates/js/certificate-web-preview.underscore msgid "Choose mode" msgstr "اختر الوضع" @@ -7132,10 +7704,6 @@ msgstr "لم تُضِف بعد أي كتب إلى هذا المساق." msgid "Add your first textbook" msgstr "أضِف أوّل كتاب لك." -#: cms/templates/js/paging-header.underscore -msgid "Previous" -msgstr "السابق" - #: cms/templates/js/previous-video-upload-list.underscore msgid "Previous Uploads" msgstr "تحميلات سابقة" diff --git a/conf/locale/eo/LC_MESSAGES/django.mo b/conf/locale/eo/LC_MESSAGES/django.mo index cf1235427e192ea9abdef2085d4ec8cf2563aa06..573ab2711bac03a833bd46e824c98e64987837ae 100644 GIT binary patch delta 84404 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 qfpKXE1=5QK7tn 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 VHb>tVIQ{sp;R#0Tx6Mfd{tx!N`J(^; delta 83710 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 Z4b2lp{%Q5i@@@Ve!PQkx9rJJ3{eMt+-4_4= diff --git a/conf/locale/eo/LC_MESSAGES/django.po b/conf/locale/eo/LC_MESSAGES/django.po index 61e51c5a26..30f72b81fd 100644 --- a/conf/locale/eo/LC_MESSAGES/django.po +++ b/conf/locale/eo/LC_MESSAGES/django.po @@ -37,8 +37,8 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-24 22:03+0000\n" -"PO-Revision-Date: 2015-08-24 22:03:48.240461\n" +"POT-Creation-Date: 2015-09-04 14:15+0000\n" +"PO-Revision-Date: 2015-09-04 14:15:47.324123\n" "Last-Translator: \n" "Language-Team: openedx-translation \n" "MIME-Version: 1.0\n" @@ -1418,10 +1418,6 @@ msgstr "çörréçt Ⱡ'σяєм ιρѕυм #" msgid "incorrect" msgstr "ïnçörréçt Ⱡ'σяєм ιρѕυм ∂σł#" -#: common/lib/capa/capa/inputtypes.py -msgid "partially correct" -msgstr "pärtïällý çörréçt Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" - #: common/lib/capa/capa/inputtypes.py msgid "incomplete" msgstr "ïnçömplété Ⱡ'σяєм ιρѕυм ∂σłσ#" @@ -1444,10 +1440,6 @@ msgstr "Thïs ïs çörréçt. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" msgid "This is incorrect." msgstr "Thïs ïs ïnçörréçt. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: common/lib/capa/capa/inputtypes.py -msgid "This is partially correct." -msgstr "Thïs ïs pärtïällý çörréçt. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" - #: common/lib/capa/capa/inputtypes.py msgid "This is unanswered." msgstr "Thïs ïs ünänswéréd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" @@ -5858,10 +5850,20 @@ msgid "{month} {day}, {year}" msgstr "{month} {day}, {year} Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" #: lms/djangoapps/certificates/views/webview.py -msgid "a course of study offered by {partner_name}, through {platform_name}." +msgid "" +"a course of study offered by {partner_short_name}, an online learning " +"initiative of {partner_long_name} through {platform_name}." msgstr "" -"ä çöürsé öf stüdý öfféréd ßý {partner_name}, thröügh {platform_name}. Ⱡ'σяєм" -" ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" +"ä çöürsé öf stüdý öfféréd ßý {partner_short_name}, än önlïné léärnïng " +"ïnïtïätïvé öf {partner_long_name} thröügh {platform_name}. Ⱡ'σяєм ιρѕυм " +"∂σłσя ѕιт αмєт, ¢σηѕє¢т#" + +#: lms/djangoapps/certificates/views/webview.py +msgid "" +"a course of study offered by {partner_short_name}, through {platform_name}." +msgstr "" +"ä çöürsé öf stüdý öfféréd ßý {partner_short_name}, thröügh {platform_name}. " +"Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" #. Translators: Accomplishments describe the awards/certifications obtained by #. students on this platform @@ -5995,19 +5997,19 @@ msgstr "" #: lms/djangoapps/certificates/views/webview.py msgid "" "This is a valid {platform_name} certificate for {user_name}, who " -"participated in {partner_name} {course_number}" +"participated in {partner_short_name} {course_number}" msgstr "" "Thïs ïs ä välïd {platform_name} çértïfïçäté för {user_name}, whö " -"pärtïçïpätéd ïn {partner_name} {course_number} Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " -"¢σηѕє¢тєтυя #" +"pärtïçïpätéd ïn {partner_short_name} {course_number} Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт " +"αмєт, ¢σηѕє¢тєтυя #" #. Translators: This text is bound to the HTML 'title' element of the page #. and appears in the browser title bar #: lms/djangoapps/certificates/views/webview.py -msgid "{partner_name} {course_number} Certificate | {platform_name}" +msgid "{partner_short_name} {course_number} Certificate | {platform_name}" msgstr "" -"{partner_name} {course_number} Çértïfïçäté | {platform_name} Ⱡ'σяєм ιρѕυм " -"∂σłσя ѕιт αмєт, ¢σηѕ#" +"{partner_short_name} {course_number} Çértïfïçäté | {platform_name} Ⱡ'σяєм " +"ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" #. Translators: This text fragment appears after the student's name #. (displayed in a large font) on the certificate @@ -6194,6 +6196,15 @@ msgstr "" "Ìf ýöür çöürsé döés nöt äppéär ön ýöür däshßöärd, çöntäçt " "{payment_support_link}. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "{course_id} is not a valid course key." +msgstr "" +"{course_id} ïs nöt ä välïd çöürsé kéý. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" + +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "Course {course_id} does not exist." +msgstr "Çöürsé {course_id} döés nöt éxïst. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" + #: lms/djangoapps/course_wiki/tab.py lms/djangoapps/course_wiki/views.py #: lms/templates/wiki/base.html msgid "Wiki" @@ -6804,6 +6815,35 @@ msgstr "Ûsérnämé {user} älréädý éxïsts. Ⱡ'σяєм ιρѕυм ∂σ msgid "File is not attached." msgstr "Fïlé ïs nöt ättäçhéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" +#: lms/djangoapps/instructor/views/api.py +msgid "Could not find problem with this location." +msgstr "" +"Çöüld nöt fïnd prößlém wïth thïs löçätïön. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " +"¢σηѕє¢тєтυя #" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"The problem responses report is being created. To view the status of the " +"report, see Pending Tasks below." +msgstr "" +"Thé prößlém réspönsés répört ïs ßéïng çréätéd. Tö vïéw thé stätüs öf thé " +"répört, séé Péndïng Täsks ßélöw. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт #" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"A problem responses report generation task is already in progress. Check the" +" 'Pending Tasks' table for the status of the task. When completed, the " +"report will be available for download in the table below." +msgstr "" +"À prößlém réspönsés répört générätïön täsk ïs älréädý ïn prögréss. Çhéçk thé" +" 'Péndïng Täsks' täßlé för thé stätüs öf thé täsk. Whén çömplétéd, thé " +"répört wïll ßé äväïläßlé för döwnlöäd ïn thé täßlé ßélöw. Ⱡ'σяєм ιρѕυм ∂σłσя" +" ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт" +" łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ " +"єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ " +"αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ " +"ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢#" + #: lms/djangoapps/instructor/views/api.py msgid "Invoice number '{num}' does not exist." msgstr "" @@ -7334,6 +7374,10 @@ msgstr "" "ÇöürséMödé prïçé üpdätéd süççéssfüllý Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυ#" +#: lms/djangoapps/instructor/views/instructor_dashboard.py +msgid "No end date set" +msgstr "Nö énd däté sét Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" + #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "Enrollment data is now available in {dashboard_link}." msgstr "" @@ -7439,21 +7483,6 @@ msgstr "Éxtérnäl émäïl Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" msgid "Grades for assignment \"{name}\"" msgstr "Grädés för ässïgnmént \"{name}\" Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє#" -#: lms/djangoapps/instructor/views/legacy.py -msgid "Found {num} records to dump." -msgstr "Föünd {num} réçörds tö dümp. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Couldn't find module with that urlname." -msgstr "" -"Çöüldn't fïnd mödülé wïth thät ürlnämé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " -"¢σηѕє¢тєтυя#" - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Student state for problem {problem}" -msgstr "" -"Stüdént stäté för prößlém {problem} Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" - #: lms/djangoapps/instructor/views/legacy.py msgid "Grades from {course_id}" msgstr "Grädés fröm {course_id} Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" @@ -7656,6 +7685,12 @@ msgstr "délétéd Ⱡ'σяєм ιρѕυм #" msgid "emailed" msgstr "émäïléd Ⱡ'σяєм ιρѕυм #" +#. Translators: This is a past-tense verb that is inserted into task progress +#. messages as {action}. +#: lms/djangoapps/instructor_task/tasks.py +msgid "generated" +msgstr "générätéd Ⱡ'σяєм ιρѕυм ∂σł#" + #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -7668,12 +7703,6 @@ msgstr "grädéd Ⱡ'σяєм ιρѕυ#" msgid "problem distribution graded" msgstr "prößlém dïstrïßütïön grädéd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє#" -#. Translators: This is a past-tense verb that is inserted into task progress -#. messages as {action}. -#: lms/djangoapps/instructor_task/tasks.py -msgid "generated" -msgstr "générätéd Ⱡ'σяєм ιρѕυм ∂σł#" - #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -10900,18 +10929,6 @@ msgstr "" "Nö dätä prövïdéd för üsér préférénçé üpdäté Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" -#: openedx/core/lib/api/paginators.py -msgid "Page is not 'last', nor can it be converted to an int." -msgstr "" -"Pägé ïs nöt 'läst', nör çän ït ßé çönvértéd tö än ïnt. Ⱡ'σяєм ιρѕυм ∂σłσя " -"ѕιт αмєт, ¢σηѕє¢тєтυя α#" - -#: openedx/core/lib/api/paginators.py -#, python-format -msgid "Invalid page (%(page_number)s): %(message)s" -msgstr "" -"Ìnvälïd pägé (%(page_number)s): %(message)s Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σ#" - #: openedx/core/lib/api/view_utils.py msgid "This value is invalid." msgstr "Thïs välüé ïs ïnvälïd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" @@ -14596,8 +14613,12 @@ msgid "Section:" msgstr "Séçtïön: Ⱡ'σяєм ιρѕυм ∂#" #: lms/templates/courseware/legacy_instructor_dashboard.html -msgid "Problem urlname:" -msgstr "Prößlém ürlnämé: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" +msgid "" +"To download a CSV listing student responses to a given problem, visit the " +"Data Download section of the Instructor Dashboard." +msgstr "" +"Tö döwnlöäd ä ÇSV lïstïng stüdént réspönsés tö ä gïvén prößlém, vïsït thé " +"Dätä Döwnlöäd séçtïön öf thé Ìnstrüçtör Däshßöärd. Ⱡ'σяєм ι#" #: lms/templates/courseware/legacy_instructor_dashboard.html msgid "" @@ -16947,6 +16968,29 @@ msgstr "" "Généräté Pröçtöréd Éxäm Résülts Répört Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя#" +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "" +"To generate a CSV file that lists all student answers to a given problem, " +"enter the location of the problem (from its Staff Debug Info)." +msgstr "" +"Tö généräté ä ÇSV fïlé thät lïsts äll stüdént änswérs tö ä gïvén prößlém, " +"éntér thé löçätïön öf thé prößlém (fröm ïts Stäff Déßüg Ìnfö). Ⱡ'σяєм ιρѕυм " +"∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя " +"ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ " +"ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ " +"¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє " +"¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт " +"ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι∂ єѕт łαвσя#" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Problem location: " +msgstr "Prößlém löçätïön: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Download a CSV of problem responses" +msgstr "" +"Döwnlöäd ä ÇSV öf prößlém réspönsés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" + #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" "For smaller courses, click to list profile information for enrolled students" diff --git a/conf/locale/eo/LC_MESSAGES/djangojs.mo b/conf/locale/eo/LC_MESSAGES/djangojs.mo index 115ea26634e242abf671c178b5063c8ad2617c59..b542d206419883d389696cdd400ab88a763d4e30 100644 GIT binary patch delta 34982 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 delta 33643 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 eR?lB8QlbCnz5M^_)xy#44OK diff --git a/conf/locale/eo/LC_MESSAGES/djangojs.po b/conf/locale/eo/LC_MESSAGES/djangojs.po index c4c100b72d..409a0dd024 100644 --- a/conf/locale/eo/LC_MESSAGES/djangojs.po +++ b/conf/locale/eo/LC_MESSAGES/djangojs.po @@ -26,8 +26,8 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-24 22:03+0000\n" -"PO-Revision-Date: 2015-08-24 22:03:48.948707\n" +"POT-Creation-Date: 2015-09-04 14:15+0000\n" +"PO-Revision-Date: 2015-09-04 14:15:47.640544\n" "Last-Translator: \n" "Language-Team: openedx-translation \n" "MIME-Version: 1.0\n" @@ -73,8 +73,8 @@ msgstr "ÖK Ⱡ'σя#" #: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js #: cms/static/js/views/modals/base_modal.js #: cms/static/js/views/modals/course_outline_modals.js -#: cms/static/js/views/utils/view_utils.js #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/js/components/utils/view_utils.js #: cms/templates/js/add-xblock-component-menu-problem.underscore #: cms/templates/js/add-xblock-component-menu.underscore #: cms/templates/js/certificate-editor.underscore @@ -89,6 +89,7 @@ msgstr "ÖK Ⱡ'σя#" #: common/static/common/templates/discussion/response-comment-edit.underscore #: common/static/common/templates/discussion/thread-edit.underscore #: common/static/common/templates/discussion/thread-response-edit.underscore +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cancel" msgstr "Çänçél Ⱡ'σяєм ιρѕυ#" @@ -2160,6 +2161,22 @@ msgstr "" "Àré ýöü süré ýöü wänt tö délété thïs réspönsé? Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя α#" +#: common/static/common/js/components/utils/view_utils.js +msgid "Required field." +msgstr "Réqüïréd fïéld. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces in this field." +msgstr "" +"Pléäsé dö nöt üsé äný späçés ïn thïs fïéld. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " +"¢σηѕє¢тєтυя #" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces or special characters in this field." +msgstr "" +"Pléäsé dö nöt üsé äný späçés ör spéçïäl çhäräçtérs ïn thïs fïéld. Ⱡ'σяєм " +"ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" + #: common/static/common/js/components/views/paging_header.js msgid "Showing %(first_index)s out of %(num_items)s total" msgstr "" @@ -2365,6 +2382,7 @@ msgid "Public" msgstr "Püßlïç Ⱡ'σяєм ιρѕυ#" #: common/static/js/vendor/ova/catch/js/catch.js +#: common/static/common/templates/components/search-field.underscore #: lms/djangoapps/support/static/support/templates/certificates.underscore msgid "Search" msgstr "Séärçh Ⱡ'σяєм ιρѕυ#" @@ -2429,21 +2447,35 @@ msgstr "" "αмєт, ¢σηѕє¢тєтυя α#" #: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "last activity" +msgstr "läst äçtïvïtý Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" + +#: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "open slots" +msgstr "öpén slöts Ⱡ'σяєм ιρѕυм ∂σłσ#" + #: lms/djangoapps/teams/static/teams/js/collections/topic.js #: lms/templates/edxnotes/tab-item.underscore msgid "name" msgstr "nämé Ⱡ'σяєм ι#" -#: lms/djangoapps/teams/static/teams/js/collections/team.js -msgid "open_slots" -msgstr "öpén_slöts Ⱡ'σяєм ιρѕυм ∂σłσ#" - #. Translators: This refers to the number of teams (a count of how many teams #. there are) #: lms/djangoapps/teams/static/teams/js/collections/topic.js msgid "team count" msgstr "téäm çöünt Ⱡ'σяєм ιρѕυм ∂σłσ#" +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: cms/templates/js/certificate-editor.underscore +#: cms/templates/js/content-group-editor.underscore +#: cms/templates/js/group-configuration-editor.underscore +msgid "Create" +msgstr "Çréäté Ⱡ'σяєм ιρѕυ#" + +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +msgid "Update" +msgstr "Ûpdäté Ⱡ'σяєм ιρѕυ#" + #: lms/djangoapps/teams/static/teams/js/views/edit_team.js msgid "Team Name (Required) *" msgstr "Téäm Nämé (Réqüïréd) * Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#" @@ -2530,22 +2562,52 @@ msgstr "" "Ýöü äré nöt çürréntlý ä mémßér öf äný téäm. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя #" +#. Translators: "and others" refers to fact that additional members of a team +#. exist that are not displayed. +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "and others" +msgstr "änd öthérs Ⱡ'σяєм ιρѕυм ∂σłσ#" + +#. Translators: 'date' is a placeholder for a fuzzy, relative timestamp (see: +#. https://github.com/rmm5t/jquery-timeago) +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "Last Activity %(date)s" +msgstr "Läst Àçtïvïtý %(date)s Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" + #: lms/djangoapps/teams/static/teams/js/views/team_card.js msgid "View %(span_start)s %(team_name)s %(span_end)s" msgstr "" "Vïéw %(span_start)s %(team_name)s %(span_end)s Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js #: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "An error occurred. Try again." msgstr "Àn érrör öççürréd. Trý ägäïn. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "Leave this team?" +msgstr "Léävé thïs téäm? Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "" +"If you leave, you can no longer post in this team's discussions. Your place " +"will be available to another learner." +msgstr "" +"Ìf ýöü léävé, ýöü çän nö löngér pöst ïn thïs téäm's dïsçüssïöns. Ýöür pläçé " +"wïll ßé äväïläßlé tö änöthér léärnér. Ⱡ'σяєм ιρѕυм ∂σłσ#" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/static/js/verify_student/views/reverify_view.js +#: lms/templates/verify_student/review_photos_step.underscore +msgid "Confirm" +msgstr "Çönfïrm Ⱡ'σяєм ιρѕυм #" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "You already belong to another team." msgstr "" "Ýöü älréädý ßélöng tö änöthér téäm. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "This team is full." msgstr "Thïs téäm ïs füll. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" @@ -2565,6 +2627,10 @@ msgstr "Àll téäms Ⱡ'σяєм ιρѕυм ∂σł#" msgid "teams" msgstr "téäms Ⱡ'σяєм ιρѕ#" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Teams" +msgstr "Téäms Ⱡ'σяєм ιρѕ#" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "" "See all teams in your course, organized by topic. Join a team to collaborate" @@ -2579,33 +2645,57 @@ msgstr "" "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт " "ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι∂#" -#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "Teams" -msgstr "Téäms Ⱡ'σяєм ιρѕ#" - #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "My Team" msgstr "Mý Téäm Ⱡ'σяєм ιρѕυм #" #. Translators: sr_start and sr_end surround text meant only for screen -#. readers. The whole string will be shown to users as "Browse teams" if they -#. are using a screenreader, and "Browse" otherwise. +#. readers. +#. The whole string will be shown to users as "Browse teams" if they are using +#. a +#. screenreader, and "Browse" otherwise. #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Browse %(sr_start)s teams %(sr_end)s" msgstr "Bröwsé %(sr_start)s téäms %(sr_end)s Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"Create a new team if you can't find existing teams to join, or if you would " -"like to learn with friends you know." +msgid "Team Search" +msgstr "Téäm Séärçh Ⱡ'σяєм ιρѕυм ∂σłσя #" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Showing results for \"%(searchString)s\"" msgstr "" -"Çréäté ä néw téäm ïf ýöü çän't fïnd éxïstïng téäms tö jöïn, ör ïf ýöü wöüld " -"lïké tö léärn wïth frïénds ýöü knöw. Ⱡ'σяєм ιρѕυм ∂σłσя#" +"Shöwïng résülts för \"%(searchString)s\" Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Create a New Team" msgstr "Çréäté ä Néw Téäm Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"Create a new team if you can't find an existing team to join, or if you " +"would like to learn with friends you know." +msgstr "" +"Çréäté ä néw téäm ïf ýöü çän't fïnd än éxïstïng téäm tö jöïn, ör ïf ýöü " +"wöüld lïké tö léärn wïth frïénds ýöü knöw. Ⱡ'σяєм ιρѕυм ∂σł#" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Edit Team" +msgstr "Édït Téäm Ⱡ'σяєм ιρѕυм ∂σł#" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"If you make significant changes, make sure you notify members of the team " +"before making these changes." +msgstr "" +"Ìf ýöü mäké sïgnïfïçänt çhängés, mäké süré ýöü nötïfý mémßérs öf thé téäm " +"ßéföré mäkïng thésé çhängés. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Search teams" +msgstr "Séärçh téäms Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "All Topics" msgstr "Àll Töpïçs Ⱡ'σяєм ιρѕυм ∂σłσ#" @@ -2634,27 +2724,39 @@ msgid_plural "%(team_count)s Teams" msgstr[0] "%(team_count)s Téäm Ⱡ'σяєм ιρѕυм ∂#" msgstr[1] "%(team_count)s Téäms Ⱡ'σяєм ιρѕυм ∂σł#" +#: lms/djangoapps/teams/static/teams/js/views/topic_card.js +msgid "Topic" +msgstr "Töpïç Ⱡ'σяєм ιρѕ#" + #: lms/djangoapps/teams/static/teams/js/views/topic_card.js msgid "View Teams in the %(topic_name)s Topic" msgstr "" "Vïéw Téäms ïn thé %(topic_name)s Töpïç Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє#" +#. Translators: this string is shown at the bottom of the teams page +#. to find a team to join or else to create a new one. There are three +#. links that need to be included in the message: +#. 1. Browse teams in other topics +#. 2. search teams +#. 3. create a new team +#. Be careful to start each link with the appropriate start indicator +#. (e.g. {browse_span_start} for #1) and finish it with {span_end}. #: lms/djangoapps/teams/static/teams/js/views/topic_teams.js msgid "" -"Try {browse_span_start}browsing all teams{span_end} or " -"{search_span_start}searching team descriptions{span_end}. If you still can't" -" find a team to join, {create_span_start}create a new team in this " +"{browse_span_start}Browse teams in other topics{span_end} or " +"{search_span_start}search teams{span_end} in this topic. If you still can't " +"find a team to join, {create_span_start}create a new team in this " "topic{span_end}." msgstr "" -"Trý {browse_span_start}ßröwsïng äll téäms{span_end} ör " -"{search_span_start}séärçhïng téäm désçrïptïöns{span_end}. Ìf ýöü stïll çän't" -" fïnd ä téäm tö jöïn, {create_span_start}çréäté ä néw téäm ïn thïs " +"{browse_span_start}Bröwsé téäms ïn öthér töpïçs{span_end} ör " +"{search_span_start}séärçh téäms{span_end} ïn thïs töpïç. Ìf ýöü stïll çän't " +"fïnd ä téäm tö jöïn, {create_span_start}çréäté ä néw téäm ïn thïs " "töpïç{span_end}. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, " "ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм " "α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ " "єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє" " νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт " -"¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι∂#" +"¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт αη#" #: lms/djangoapps/teams/static/teams/js/views/topics.js msgid "All topics" @@ -4343,11 +4445,6 @@ msgstr "Täké ä phötö öf ýöür ÌD Ⱡ'σяєм ιρѕυм ∂σłσя ѕ msgid "Review your info" msgstr "Révïéw ýöür ïnfö Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" -#: lms/static/js/verify_student/views/reverify_view.js -#: lms/templates/verify_student/review_photos_step.underscore -msgid "Confirm" -msgstr "Çönfïrm Ⱡ'σяєм ιρѕυм #" - #: lms/static/js/verify_student/views/step_view.js msgid "An error has occurred. Please try reloading the page." msgstr "" @@ -5730,22 +5827,6 @@ msgstr "" "Thé çömßïnéd léngth öf thé örgänïzätïön änd lïßrärý çödé fïélds çännöt ßé " "möré thän <%=limit%> çhäräçtérs. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#" -#: cms/static/js/views/utils/view_utils.js -msgid "Required field." -msgstr "Réqüïréd fïéld. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт α#" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces in this field." -msgstr "" -"Pléäsé dö nöt üsé äný späçés ïn thïs fïéld. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " -"¢σηѕє¢тєтυя #" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces or special characters in this field." -msgstr "" -"Pléäsé dö nöt üsé äný späçés ör spéçïäl çhäräçtérs ïn thïs fïéld. Ⱡ'σяєм " -"ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#" - #: cms/static/js/views/utils/xblock_utils.js msgid "component" msgstr "çömpönént Ⱡ'σяєм ιρѕυм ∂σł#" @@ -5877,6 +5958,14 @@ msgstr "" "Éntér thé pägé nümßér ýöü'd lïké tö qüïçklý nävïgäté tö. Ⱡ'σяєм ιρѕυм ∂σłσя " "ѕιт αмєт, ¢σηѕє¢тєтυя α#" +#: common/static/common/templates/components/paging-header.underscore +msgid "Sorted by" +msgstr "Sörtéd ßý Ⱡ'σяєм ιρѕυм ∂σł#" + +#: common/static/common/templates/components/search-field.underscore +msgid "Clear search" +msgstr "Çléär séärçh Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" + #: common/static/common/templates/discussion/discussion-home.underscore msgid "DISCUSSION HOME:" msgstr "DÌSÇÛSSÌÖN HÖMÉ: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#" @@ -6296,8 +6385,12 @@ msgstr "" "Régénéräté thé üsér's çértïfïçäté Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" #: lms/djangoapps/teams/static/teams/templates/edit-team.underscore -msgid "Your team could not be created!" -msgstr "Ýöür téäm çöüld nöt ßé çréätéd! Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" +msgid "Your team could not be created." +msgstr "Ýöür téäm çöüld nöt ßé çréätéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be updated." +msgstr "Ýöür téäm çöüld nöt ßé üpdätéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#" #: lms/djangoapps/teams/static/teams/templates/edit-team.underscore msgid "" @@ -6327,15 +6420,20 @@ msgstr "" "¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρт#" #: lms/djangoapps/teams/static/teams/templates/edit-team.underscore -msgid "{primaryButtonTitle} {span_start}a new team{span_end}" -msgstr "" -"{primaryButtonTitle} {span_start}ä néw téäm{span_end} Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт" -" αмєт, #" +msgid "Create team." +msgstr "Çréäté téäm. Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" #: lms/djangoapps/teams/static/teams/templates/edit-team.underscore -msgid "Cancel {span_start}a new team{span_end}" -msgstr "" -"Çänçél {span_start}ä néw téäm{span_end} Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σ#" +msgid "Update team." +msgstr "Ûpdäté téäm. Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team creating." +msgstr "Çänçél téäm çréätïng. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team updating." +msgstr "Çänçél téäm üpdätïng. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" #: lms/djangoapps/teams/static/teams/templates/team-actions.underscore msgid "Are you having trouble finding a team to join?" @@ -6343,7 +6441,7 @@ msgstr "" "Àré ýöü hävïng tröüßlé fïndïng ä téäm tö jöïn? Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, " "¢σηѕє¢тєтυя α#" -#: lms/djangoapps/teams/static/teams/templates/team-join.underscore +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore msgid "Join Team" msgstr "Jöïn Téäm Ⱡ'σяєм ιρѕυм ∂σł#" @@ -7683,6 +7781,16 @@ msgstr "" msgid "status" msgstr "stätüs Ⱡ'σяєм ιρѕυ#" +#: cms/templates/js/add-xblock-component-button.underscore +msgid "Add Component:" +msgstr "Àdd Çömpönént: Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" + +#: cms/templates/js/add-xblock-component-menu-problem.underscore +#: cms/templates/js/add-xblock-component-menu.underscore +#, python-format +msgid "%(type)s Component Template Menu" +msgstr "%(type)s Çömpönént Témpläté Ménü Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє#" + #: cms/templates/js/add-xblock-component-menu-problem.underscore msgid "Common Problem Types" msgstr "Çömmön Prößlém Týpés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" @@ -7761,6 +7869,11 @@ msgstr "ÌD Ⱡ'σя#" msgid "Certificate Details" msgstr "Çértïfïçäté Détäïls Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" +#: cms/templates/js/certificate-details.underscore +#: cms/templates/js/certificate-editor.underscore +msgid "Course Title" +msgstr "Çöürsé Tïtlé Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" + #: cms/templates/js/certificate-details.underscore #: cms/templates/js/certificate-editor.underscore msgid "Course Title Override" @@ -7807,8 +7920,8 @@ msgstr "" "çértïfïçätés. Léävé ßlänk tö üsé thé öffïçïäl çöürsé tïtlé. Ⱡ'σяєм #" #: cms/templates/js/certificate-editor.underscore -msgid "Add Signatory" -msgstr "Àdd Sïgnätörý Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" +msgid "Add Additional Signatory" +msgstr "Àdd Àddïtïönäl Sïgnätörý Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢ση#" #: cms/templates/js/certificate-editor.underscore msgid "(Up to 4 signatories are allowed for a certificate)" @@ -7816,12 +7929,6 @@ msgstr "" "(Ûp tö 4 sïgnätörïés äré ällöwéd för ä çértïfïçäté) Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт " "αмєт, ¢σηѕє¢тєтυя α#" -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/group-configuration-editor.underscore -msgid "Create" -msgstr "Çréäté Ⱡ'σяєм ιρѕυ#" - #: cms/templates/js/certificate-web-preview.underscore msgid "Choose mode" msgstr "Çhöösé mödé Ⱡ'σяєм ιρѕυм ∂σłσя #" diff --git a/conf/locale/es_419/LC_MESSAGES/django.mo b/conf/locale/es_419/LC_MESSAGES/django.mo index d433140de643c5195959c3fd3e5e00ecacd9339f..5fcc54f989d4fcd37c0e155b5e4c9ca8313074f5 100644 GIT binary patch delta 82704 zcmXWkb$}LC7sv5=VgYFokY?$WhNW4$yKCu|?i@M<>5vu>kQ4+YB?YC!7ikHDkXEGO z{r=|6`_E_YJQMexd(NGCb{F4MV>8aX8R`C(G(6YgfA14IPFjpV*l|95>^N^9Yp>(H zEE{mv<16fptD*zWWK2*l;QWL0@jgx|A8@|LffWMI0!&lU_HW0(Xn$2H;H<-ml>^Rd zELbJrtZ*FHxy;5=b_}l?aQ?tF)dJ2QbgBoOe_=0f!!0!e&O_`}GvLg^hP49DG`xd* zabWF$vl9!|2{?%Zj`IMs;k&v4Cmv?0A8^j|dHx30fl$MMGm`r|>)6P{0XZ85oRS>S zxUn5L3)|4{*u+MD6!X!}+ce;G#2D<0KjKQxk7^chg0!zT4>(EiH%yLCFfPVw5pZH- z64Y_2Fu?ttv~1{r^jHXUVoGd%he&^sAMeGIp7qgU9C&Nse>a?Q*_#8LnC~F+cADu zyWt^JNbjRYl(3scXgun~Z!sfY!an#K>)~hJ1I{AchpMXPpIHvQLM2^_9swr-rt)>O zv!S^xf(mg-`~>S@D(sA!cG60#*NqQRVmy)zSBUJ5j%Y(}{K(oQz{o zk&NHp1`vrlK0gk{a_Bx{V=o&T$@&52VN}PiqRO$wK)Z1l)Pgi0HMiSPBRq;a{!i3( zIu5cCjzAs11Qns(zGqNV@y8(QUmK6uq0qeajXl`fDNxCo6&2dtsL+yqxxh1G6 zT8+BV_oxn@z-@RPl`FG`FmlRqp`@LB81-M1jTyrNP5~W={V~z-fHMNep>7-;Vda(_ zb)zU$Xse(XA=J9i1&5%Ey5TESQU*ra@!3(yS`xEkW0#FcHb!DjT!y;gF;tRW!^8L- zlhN~CbodhO)1v}T2V67SMjC%iz-d7{J*pgsVr5){ir62h$M`e+6qk-Q-IHwSMz2vL z`gol6EIVomuH)MnHS$)dB%^HDaN4q?Fe-%eurqGN;+TArC0`xX5b!_~mYgZ@1MM8B$mN)CQ&?a=@z;ggu|pT?iK^Sde*1I3 zJ;!%7YEF0h?K7wd-16J+Q3Fc+r9~hr>=9I1yY%O$Ayg;iftP9ZkVvO_)pAF3Lz zpgQsoDiRS3YzmU2MwTCQ5z2Cy4?kNNaGtV%@glqMw8b`+yHMr$6Dq>@aX-F5MPi4$ z#BOu|b))mXw=pj5XBdg^P#sLa)FO}t!?a7H<~-VOH^e)%n_(oDTV~1I4z*NIL_Nk= z;~;bov7ziN@s%CW12rX6@e(8Z64lc_D{P8}qHZ`2b=;S@3%|xv7_-uDun3jBJ1_$t zM@{j4R0RJ;rqXpHzP1RY#cX_#7uCZ?*bw`m7NVo5xjls%$u%sBZ&1eg5f3A192wN{pWP}iA`@wvaV#{Xa&YN0uguki&c)X&yg1Y)hX3nV~= zHaDt+Wl$Yzikgx>sECZf9Jl~i;vrN{b=qK6&<9=hdjS=z=1>kLu7JypHdY>$}diA8drrP|5Qe8)AZeRY$e97;KF_Q47y$R3st} z*~k*2+F4OI&WpNUG4z&b)ML3Js@nSEC#wI!Y{cLU)YAAEH4^7=z-bNzF&e+X+;|%E z;cHag=lao(uYg+d2B1Q|7Bxk$uok8}Vjbv?D*MUk>VWlZsLalwdUg*rhmTPs2pqN0 zeS}K3WT=itqNb(*>i9CKUX1Nc2UGWF#tr^HIlbL0xA*>iTDWZ=yo~1a*E=_n6%vJ!<5+ zeM_TvLsaNmp+-0q^+GY(Z*M@|U=OOJC;av$EJ*tpD}| z(19yZq1}c$;TUSf7f_-719gG-{^yBKT4d6o22c#u@v1l$WAJOdjk@8)Q#QcWsN=U` zcGdrnZ0NE30CQoI)0T9lP#tQ3%Hl4l4vj)3*>u!XZl(YEan#h@_S+F>?2Ah}EWuJ+ z6Vd?B?Ju@JD`ur#615_>MV0FU zREL+Nl5H2Rz^kaaANfCv_+)ey>P2j*Zr7kr+=QC*qrNwMU!tZe$pu@0GNW$L0F^rf zP>~snI)6TD>NaBzJdRcIAAf(TU#Wkc(D+vibvM+Ti;GQg5mwO&sL+?ZXcw%G-Dr0} z4d4uZidRt``sh-?DTcXG9qE92wv6zdfr{kHOVqzU*uV~jdOs>TF8Kb5O1kH$GK_WE zk|{Gr(k_qQf`rPUk*Ec0CF;7nQ4u|bn%X~6Q=9CH?XTvtp^&ykl~+G3gQHL(-H*D^ zDbxsWqDGeRsyz#;pgPzO_0SoIiqtgJ`AbkqydGol02aUu*8)xvbnCI9P)tOvqG$sAoq;RL3g$_CwA2a*V`1sDWKW-T0pWd79t6h`3G>Hp=rs z2UL&O_-;qt@UY)Lj~eMsRF*$Qb^H}7#K9Yu3#n0ao(&b*vY08rcR%bwyZ=oq!`nDQ z_2221y)6ELZFIoxfYS>vU{|d4yH&@xs8D{7UGRk8F8qg$v>GZR-B3wA4K;ujs19yH zh5Q&Q*FIo8)qnCoZA2MSALK+uqAcpfTD~1oWjX?L<2Y1@HlwQG2xh=@7==$!Q<3v8 z>tF@c`5jOZ?2fLowI3V0;OCehzsJ#d2UQJS@7Tj+2$rC|0X64$P}!XPuFY|E)bUMF z*X`^(617s!MNQ#eRF0jxOZ{t(F0n)2M}_V!=EcPK?B{%CQ76nmCF3I0@jI~^b9)>$ z(qwcBYE zg_fg|Z3h;@vzQUXkE|TCp+=k^^I$pDD_u|2R2*~t1J0r@cnfud7pQVf_ShaOsZfvE zQmEsaqax57l>=k^{qs?w--x>LkC+cHU?fI7F|%P2+HMs#yf2IX2MbW4+l|WJ%c#)a z#R3?7Y7d>l*ot;@ERH*|G(N+MnE#oT^#D{PccLCvw|(RMX+H(gD*qZ&R-vpdra40J4 zYrmz=u_da5*H9h0rTq%oGd47WMDHxb1ySwFr~|vAl5Qw!L^DtwU5Sd^CREw(!wh&H zzrtsz<7dCO0j)+&?MBpqp1!C4BiM-d!Frkm^+5*I92ZA*q$=t{-ElCE^!L9&C0}ZO zx25A6qB=4N+u;;chaRD-C1D`weXoc_4ZKOf4SF5u&kl`fsPA~xh-aX3U^S|&_MxWa z0&4E>qmnOiFzBrlc~I9Wj9M?sqB>p^HKnal*Xx9lIMQW9JzItf^%hi*525DnHtK>; zP@#T<>PWnh9iIuczmRVQR0JCMc19gP%>R6r?+Vm?-S61YNPqOb;`;;@qFCXe_g0)4 z)$`h@g`*SZ!^Nnz{UjZ0N*?cpQVVg5I~+ zQ>eL37dz-Q!X~Jtb|b1|M{yYbj^(j+oS^s4xB^F04X?2(`-jI3I=O>99Z}Der}2YM zH0{U)L4M;(U9?SP7x*M`&>6{z%`pNmCkc8h-i@R|@6{>E$3bU47wC<5F;23ex4=Bb z_#7WUxlLWF6c(xCsF&Az_y8B+6P)l#&|47)r3^aRxxcfV4b}fKEP!271--}cLX4(; z0=HoN)Inz%?n5oLF=>L%99)b;ut3_NGmeg|M{fyEAM}36GyqHS`5_#QAFv#b&Jc85 zh3+sLdalQcv{08rW%qoXj6Yx-tdcS4y+VD1k+f4}vKvHUCfegr<+}zu<3XH;IWyb! zc49NyzoDk4SeBsc{hEAq7Q5g{Y|94^aRS!K8l;B#vWcHzyKF({HlD%u_+9p(_Z=@q z4jb7Xtj7M*IfLGBzb4{5+NV+Hcgz*^eiCvX6_Lo?)PHq0T9F}r@f)m-Y4TVScEd`v zccaSD`PAk-Au1VjqN=Ans(hQG%C{?)#L1`y?g;8(b^;4yIB(Erh@)yF4zzMyPe+A5?B-E^JF~CsbsX zpcbqjkoCZIPO+gS^fG3~=a>#t6|s>-p+Z~+)v<gZd{ zj!BDK)|WsH=p1U~f1+MY{=wMz4!!UH5hd)#Nl+snjJnYzRLJL|Lb(nVfjy`ZpF%yH zenm~$E!0$gK#ed>NxM;X)c*RYspyGXFJ_da{3sdvC={B zHyC-!SaqC5C0B~FcH?HK>KWv_3%{lP1{K-$(YEBi!(st`yjRXT*rvQ|3(55IHo|{U zPpNPP3u$6h$Fia3IzOs@i=ZAt-B1ymh&paQ>ip$?dm}2;J5W=-A2pR_E870bE*nkQ zQ5#jSt5Ie08uhqMUCBC95EbI8e!G+39*)Y9g&2tk@l(8wTEY`ow&X5~nyN-v3)`Tk z#NEV(=HfW&b@?Icz&KURk5O}-9&2KD)Cl^crfwK&giCx^p$4!KTj43phqx2C9DVpbiXFv+|3Libx7nx#mTMz7}c$YK2_T>5ZC-Fa6I~ zpgQ~=YHD_&&Od^mXj1-QLpOelDx+|9yJ2e79Op!3e`VBC-NfHN3Ww8Pf=aT~HLT1& z^Bs!n@FdiAze3&kdsJCoz+_5_d;X61sPal$(;|`uweaLb&3!S{LedyD;$f%@Pea}4 zYg~YPaRfH5W$y|9Lq#fSZJYZ{IE{91bPurcfenT1KpngBacoBW463I&>)QK4X&gv< zFc!tfSOv4yvnuL|y3u)54&6pg?L$-qpP@P)s&4~LQJ?zP%9Mj0I-w|PB;`;eZRR@? zRUIqwG`_%sc(j4t;1%ll_o%tf+|Y6-7iwzrqXt;a-(Mbezp4$Xe?2@JutTBjhI)vM zLM77zR1O?Ob@VrX{{zfTJ6R)JDWkC(?OLevn~&(+fVTFw8oQm1v?i)5rs6}4-#+M!$Jf{hM|EIi zbnI8`MEh~ap!avfjXMRMtF%jY4mwxxlP*E$GCsquc(QBI`-_L7-K;~Ku#E2XmW}2* zv3t<_JD_=}3%B|#=zNDiqDDNZN6`5X|A%w%L{H|Ljx{qc1 zEL2&qLQTmIRFa;>k2KPY{*GI|cdF@unpC#d7ywCpe zm=SyTx15-Tm1wU(<;-0yiJ1owX)P?R*-%o9K$XcPjKWzs7>}dYfeHg{1#5yjZy@Hu zIjHhGh&t{s)D2%_28lZ0P`Tn_eY}Qx%;pETh2nG6h35Ni zMm;Q!q2}r?YRSzq!pf}$YA)wuAv}vpvhYY-xKf}(Uk3H26odJ2Ici|%Py=;uv7re3 zhg#|0qaHeGh>R|n3$tM<)JoPKl_OJ8Sw7Eq4QdK^qHb^+b^dSI3ZI~+y7s7`_orCR zu!`z`6&v~a;2~-*(~q_jCZKx$2M)vRV{Fb>qB^_*)q!mo#v_;ukE2$^=ctapL?vr* ztaTs~bzW{vqxvt!hU&2?YOY(OZqNg@lny{8&s0>>%|fl^i+tChZnPB@!5>glcLf#6 zSEx|O8E2oTLq(#5RQ*?CLvvLZ)zjXX6{le)+=lvQbP-i%Z~S)TcxzWgo!=Ex<7CwF zUt=Wx?C-yanwszg`#c%CnxkTD$m*#2ZHda--sp`S6`@(EP%l7@a4ELKA5h0dPPFXK zhKfjW)IwDO7186UNSwzdcxNK@uk0T`$v&8c3fUUp?@>v01a;h1?1*w!&&f)SEXfp`+mxu0WJDd99W_^ZP&bT1C0PxO z#DS;OLPZq3S>REW2SA)CpBl zkI!bP8x6x~oQ!$#I4Zkep>iiQ+j1l>DtVKmB9{f#p{A%ce-K9F=U5C+Ubo#1$?BqR+zRzP?}D0wF{r6o zh+T0fs*E!&v?+-~O+{Uo4TY*X>PEd$q0xRN%{ae3A9ccF)D2hr?JcOt?Ln30JJfZY zMRtB7)QB^o&MS)QNICy=x3PafS5zoRphmC^6}lZ53OLS9)JpfqVv9`TCH9V(7Il0> zR1SQG%AJXr2{-wk^FRL=HQ+=`y%!qS$;yUKXo;n9Eb7JwF(=+fjUd@FdxOb=`n)Mt z!qHe6e?m<`!mlh>a-arO4Yj{J>b&u&9NC10RsYx7PzaMQx36LiF(2*EQB|=URj*f2 zBm8)UeV!Lv(T>5^xEEDcX;<15=0Z(HKGgm)s41w4%AF=yg!?-k*iaHK^gmdQ%KojW zh#bL!82UQsEX1PN3(sL=EVs(ulE1{>w4Y#SY`fYba}2Z4PP``Q{oAl27>D*bbX68t z*ia8|qUPoiD%-=~*oc#%-fZ%rKCg-DU^~=t{r%6!q3VA*mcgAEg)guK=38r1(hW7` zQ`b`edDz&>4n6&DqUJQtI$H^Aqi)a`mEE0i6L!V9m~y>+Mcag3Xt&*9*ExoR6(_;V^#bWl|vb}*%Y)wP5GCo4!KL&P^dPbZnzzlo%>O9eiD`S z_fRKh(86#Zb%E#D4BuluZ2E(Zd=l!yGtdjA-`l>BGik?dQ|pqMRnjLDwJ3J&;LSo;1Mb!AFw=r zyx-c5F)QtEmB}|`n(A?!m+ptFXLi#4+fnTnD&s}ct0wV zXE7SDqN*nCVGDg7RENjnJe+>mweR!UezfH4hkBaDJ7PV}jCwXyLoHNO{QWyoRq-3@ z_*bZBMUtbo;uXO5w7X(mJcU{T)Bj{i*$frIi7p$l$@aOJ510HLbk^vEV|IZ7$L$A; zmvIaGGoP?XTtJO1_eonXV(=R6p{V+Aa>_ck6k}+AkJT{wX^TK>RCT!B+33Q?0@M@) z&)7%{V>Ioys5xEXyA>7UA5n9B#`kwry}$7N=&a>Z8dRhTqH>`Ys(fc4&j{C9&4xnv zCu-@8IA<$iO3XyN1nNeuP$BDsN=g@%l+#h?&&Q0o19gMTm=hnPsw35TtFFAL>qKFM zp8u8D(2Z-Lk}3u@k~gRW6Z~Q?6lqZ9R|<9G8mOvi;M)cjsUCiNBZ53tf%m2R5|u9PvGkS}-o6>NNgEdw-9@p|s1OI=Ty)L+3H7I`Uq! zh_ygXSy$8zNBDk$8u=2`IZ)RNo{zsKHK z5VK#g*X`!08w^GbXbPssIjE=VR@BOR24i8)tJHs5Hu7J!8`nZTELva)+h9KIfOYj(pSsECh3t-O<5HWYyss5#$>I`I}NnVzDO zD0toWCqYe3M$`xzqmFBZ8hKCD@uN{WF$0zTKVf#fh7RjY_&1A?8*#(tG9l`~il}64 zhN|0{s0eL9jqn&=#@nbV+k4ZhH=f!17{toL*Jv4=>%578>sTkdfP%6h02Y3s19~TMPLjn)H6|$U4U8-4xu{q028SG zL%-XNlAuDF%{K~lfvTt^s*CDKFI2XVMJ+s=QQ3SJ^W%T0j%WYFI#vpmI}K6mKnyB5 z7o+$4zg2ALDYqMS;lEII{PCZ5!75mQ_Fz=5tiu>QfU4^Ze_03fppvo%YNVY}9hr#= z{c1dj2T@5n_73&0xt+|0Lb@6waVIK7mr*A^!5tXyu3hjjDiW7aBYA*|)N|Bz-eDrnsN?&gIzId!^{+Xb%nq&fD^NE)f_fFZiJIGp`V#sbIj(~$%U-CFx~OuS zh`PZ-R7f|W%5od(Mte{lI_B@ciaP!_Y9RmVLfR4gfn{?VRJ(|8HPi)Kp?cg4)sf-Y z1*f7S@f;gryoVOawx|e>Lv?s9YJgiX5_h9I;9g}zbjRuQ(WjDFM_U9n+=7yE%wCG zsGdDRT_Esp&{>Y@u{IvSPchMRTc}E-s$l@?Y4|_X+`mLc>K*EZCBc9Gdj+PWT>|5% z{+qI)xonI1u|F!Lt9zS|f+J2m#5Ow|r%z-<7Z=oU) z_l;dAHLB`zqpJ@pvY|3-h`R7+s16K8-EbXC^nTQNf1#4vMqUwhek+%a#ccG&vzRCp@|Mn<*ot<#aL9Yr z8ir43Z^6HCMMTJXiIZc6y#KVqnAjm_6QLdxC**vM1>%OhU*G>4FXS|&eJy^-X{r4Q zLtYh4OBC|{7Sz4YhRUIJ;*j^y8G%~KwxH&82iC+xSP>H?vB)$;MWzE5!_QFVxe7HE z|DuvMe$tTlTl91oP5UgCz$71s^j}bLotkXaW5=LmA#cSxh68Co!m8LYdB}VCY{G)H zJEaJDf0Viaf25uH6Go1Au^i4%X#=>7s)ie=j{J?yh`?LF-8gl~IivdT%!aZ)DvkBL z5@w;@3KfAdsHOJ{)EqAKU5gs&PAraRQ8^ShZOD6e6u?-ttD@GEI;hBYL|vylCQ#Z> z4!Szw0~@OI1nI4(c~BuMkE((Os2pkUw?|`M+A~pEe*jgsS5enVoFU}Bw&(M$hxysx z4^{48V-4JxA!Psl?-e^bup>bvNr8Q_B`!fl<~3?A!x?Q#68ok>E#28rpBG0RUkMd~ zI{xQfF$eA8sK~BD4QxY3*G|~W4vqLIs_ZVJdR!!vb*K|67iOYPT#O3&2GotVp+bEc zOW|Lrg(!38kfUcuWvqhTP}%<-X2gfCe?X!v7Sckf3%5h{xEm_Ovr#W3n@}MbR8#sN)x*H`k~L?L~F$41TQozru!k_{jg@C3dGB%4u2J z3sshT@Kbz-UtnY|F2I7a3Dto^xkKK==r*>d{Q-5O)_FqS3raUs2aln0;uc17e<$Ko zOO|Y?xvqvPrw*uGSb&kZ-2eO#=AwNaRfci$hP?OvDAZK6MRn*4RL3{sSo{NL(cv!n zLe2r&Z}L{K%3OlAM(Qg(dl(jo7U+`3>+_Fu^V^sH%1RF?OQuMpd&FYbo~Di8u{wR=3bzMO`pd!|FB{M$@iPh`51>8|)e3pven;Uk+WU~lzUxe?ZAo$kqxm2~osjp{dk0p+&UHiH z*X)g`vik*-;hlORryZZat#9Smx`7=(9Mz#iI0IkeE}Y!ZB3Yr4riA*N$A;GYM_2)C zHnz~t!0EJ4qCRig#MXn|sHBb6)K<(AsE5^7Y>SDT*#P>YR>-SZ5l1%!&I`1+WXg%- z**^nSH7PpS0u_x))?TPwT8|pw`3}^-MxL~z^|%9m#GI}~t%MspSwwzDmD^jaffYO3 z@iR~(JcBhcMHkEV_Sl#9B~;nf=xS5D5_P{jzQwz_A@A2~Q@YvO9=E%#P{mN8o`dS~ zX-q}Oo@0L6iF%mPs0j8!9ls2F;$_srRJEr?pf@TRmtj`CfLh|;xNPVG`Fq)0Z47Fp zcTrQ2zqgI7FDl9QqaL4W`WbFno(L6uS6{vq!ltKC8+(Wn77MJrLcauKz(<{xMa*ih8eY)2($ zaF8WqEhI-=XEqyo_}~ZBf%okLCu*>*d~H$nKNEGsi+=kxmZlv&#Lgdy%7yh9jn7bJ zT4*RYV(L1h%5UZ{+uwY+9!f4>CfU$jZ9RQbgs zht%<6m;uM5uCod?Wv5Zk{oJEM-XF16Kvlzhtj7JFU;G{EMq61m!`kd$j2gk;*cmg7 zv0RymdaiFrJ$@fx6s8<&p|6YDzYr(mQB(x$j*|K6;+9grhJq(qk%P}$TM!kBSz-9Ow>iCh9sQ(+x&Av&N zEK5HRdH-?f%XppxMoqDI!Uj`qjyt19HU|}<1E_3H^hL<~$!Aei4%Ej6xB%1PLmYwe zrdh`)qo!o-H0Guk8wc5;WGXP-Lfs2BhZj*jb!PZ08P=lN3mfAPm;#f{w5MinTtj;| zDu>$53VA;R`T^DP&a*9Ivr$vK)@4IIypG544Ju2I%&`kkn`?;z7j!hgx6U=U>`GA!>nT`4{*VA3VmzIAdYR z`zM&6F0yyNT{w>Yxfk04vl-{pzKV0O-;$8`pW%+P)UJ0BHPXz>EV-NDG};TXo$5d5 zR~E{tSeFle_uGY+TgRrL7N}dOk;GaNasrHC23Dj!Yh}o3gBMXNTCuO~*)SZVY41Vh z#9Lf|6;|1|;p>=G_5YX+t?9wlmSlxcA#Q_O7dqj`IL+U`0+l@9U|c+an!*$Q{(GpL z2&}QMSSeA}kR78j8nr}^#uVJ&na@T}+=O~vzJ&2H-Z%C}lM*%8MNmmp9Tn1ns2is| zGp?fjGsa^|dak!Gr$aZ`H>$CiiqF45U1trdYW_t%^lEIR{#9l}Hd+K$pcb5ysPc)k z$yU1dn1S{}RL^&#j=O_e2Qq(aq3w&xfvuiXD|U?MqTF)X2xgy z`+ILkimf&U8Bq&PPE@G7qULO{-*!HPMms1X-OC0zwn&cxtyoQNwi=Z=u~e=u+g&(a>e z(|#~nZ5K~Rl5-4B!QH!UDX+X&IY9jlV52oBtVd;MydU&~LDp`ZfCcx3ynj5t3lGxH zwm;+?!n>#>T7STj?iQ}5o%Nv2{YlgmoI?%puD|~kwxRtVz5o7C>q9oe?x@fYKt*5# z#>X#EAzX-B2Uep(xd*f0ajcAwQ9phwde}PF2uskOf*J8B>ioN?1@0ZXN{Y~rmgVtL zF9t_U~{Nz{})KwaoRRIa>5bv*MC`*vFhHS&fS#Ez&Ac0nCK@d)*= z3v6OX9o&ZMY51r;#j>F~(g!1PA}XoAL4|fN>Vm&uT6~5YP@d#D?{Le+WFpDhO>QB{!@ z75cL1MFcga9bGoO5u)aLBI<^7P&fM8cPpwxhfv2|MvdSvRQW#f_Xm&J$P=M%nAx`& z>ik-$4s^h3=nh~*A>WVr@fOy_q{r>?+aA@CUA{kKRoWM^C`O*J$88hT(mD?-;WktU zUZa-sL?^8S-B1hFXr!E7X8{|UlWnNE-H#g4FQ_E>6SX47KV?gDO)O7)CdR`5p{nL8 zD)hf&PJHU`PjlK@%9~t1}d5M;RZa8^>EM?`!aeAchD|&HRS!*@Sosz z+N-Wn|5ey%aotv~l~|mSRR4{+!ErZi&X(N_Ib%5Pd+dP4Z&?SHqN*nEZJUb1sHrH4 zn)?cC3F)O zpnVVXV4A!33RV@PXb(pXU>klyimb87()+j{cw}9p*NuP zsI|Q%>O#X&4OYOa@|a$zUxItP4DV~F-OnDy{SbNRTU(H@F7J#R_{7%o988y&c!V z?Cif7JIv32*!aK>mCx)rVeeNj$FT+Nq9295Z#uK^B<-VEOvlBw4xdEjLj8DQFZ3=d z^r_?9dHu01?QgI+#!V3Ra-*an+^688R?-7c&~J44E__mhyWs0HW; zRL5UpUv%@N3VV;&Wf;wl8(0}5Q-{5z>Wp1z&-B}`@jC4+X>6{8X)P!6V@LK+M12>0 zh>GB=bYbro4cpR(z4akY2J1i+GH}=F&W5sfCU(c&sJYG-8Fqfce{dA;$r$#Q+ESUq z-ups-)RefWcUC0guR!_BB%~G^xFqe<$MDb`qo)(s@D4cgnGOF6SWX!$`*D8>x7bQXwJ8x zs^J!Dtsam)?ERK&3Th>*mLu$~<%_U0?Qd`!CeCRiJ%TE~d)Nd&$rW}Yu@`D-o`JgG z226r^a?{qx%dk-f8)I3Viz>4V7>Nna6@`k;i{rrGR#+v!4e}#NvzOeUL+<=W}KS8ZrmGfJ99>+GcqYGGsmZL&kq@b0V zi(26h;dhv(klpY!R;T?pYG6eRTm272<;JSQZrIsEwjN`LUZI8+wYi;$(d=K1>foIy zJ28H-u)X16i2W5X604y1%?9=6GZB@Pi+y+ap7(v|8^!00 zZT}WO#@(oqpGHOUchnO873+?p%5!JD? z7zh7Cb?h<5#}|G(T-vfbKB{BsF$xP}1?+}eIX7WRrStD>D4R2sFpIssw45s+W^v_)|ry10Sqlq{cB?! zJ9NQms5N~(*2E*I9w)6}BS?iBX+~5>vZIozxWB(9>W1}E189pnzmLCvFe+&$qV7AZ zf@?{(m>rs%Z%`*}_uY&2XdgzMn7pEeE)tasIZ+)cfl9WTzHLw)>yPTlMBn+S^VXm` zy3=JtC;o&w;VP<(9-(p~RLRVQ%7JpIHNLIybj(Nl2h`j@^!I;U*&k)3 zioQm5%w6m6*o6woKEM4l25Fx{_4q7mq_N>3LKKZ=*)=05w%lQC0EM-=Cza?N5PPKhmK( zk`u>a0o47zN522^V{Jz`6u#UY;X2{k5T{0 zr6~N3{T=Ity}y>JSU>Fj(CMXbnFe;9aj3{`L`C)pssq=s0frk=|0=7d4Q*})qYjvc z8qxO{iC0h^d*hp>k-aU~LhYZ1jd2Gm)Cn8gc|B0&It?}Ay{Ia=Zl|ckLti8EQw8O0;WWRh)_H$Q6vlv@v#kX;h9h$2vF=3*k{z zM_!{klAyIWP=5czhUUHuYN>64aT&>4On}?kgq_lOs4dR~blQi#|1Maq4)ztQWXG`g zyWKxg=e6%-$=9>94P>hCdQ>hP#|3yB-v+3^;a$SsU#ku2X0OdvyNA7><9~%GIk3uS z7TRPz!rmVwrRy2?er9wE@A3J}UgoggVeiLm9s8K+`r5bO3%(=zv69lkto`l!MF$Xh zmmSyHIK+iw4YC^^!_Bnk4K}L`2|NFz{nGc;P^*F!!^j=ZKRZ0^6v2;1T1U&eVf%;5 zqwIA%Vzj-?&OtpZE{tL17%`UmpUOsXoV{jGM;#C`-WHT1IF$BsJi!gpP6#{T+?{C8 zg8QhldW(9ReLTtbXF@$Y3ZssXLVaEwmCRL9Ip9vB{*`14*`W*VKrJYzQTtz`I`qk8 zE7K~d>gbFrs}YzH*Q3ht6e@@Q!*y8obNiP254NV=X^K5Vj-qnz>=Z(!1?C<*)Wd&K z7Ya?ahff~VdqF`|{gy>_pd0F8GzwKtpQD!Q&8Q3SL?zof-+QPI2fnbSJs;}6C0#aD z7L`$t*Jk(&cE@8_cA8!Aqv`e?F%!;We;w?FxA7X*pJ5%$H`Bg$H^%|&Pd>{YZc|Vl z-GqwR|4>W5`yU&clkBs@P7fw42DKudoMYwl0LRddH`i`34Yfkwo?9%O1jufY%1fT9%iXfQx%OGSasCO+6{B)`9F;fJ#2Ph0X%|w34MVY zX_BSZq2gG8k#7Zun{22@ zZ&3$EF1Mw#G{&L*1?q7+4;7(ps0&<1UGN`N@_w|!+9^@xl^1nfHB<-NV@@1^sbT@z+x`luj&;XGI26_4 z&oL6e`kMMzxg2DN9y(W0bNmW*gVL*PBy~_#(hWP|2poiepr)ebYAd(lsFBaXp7ePXH(02Xp^ndw@31N= z%PVgTJ4YFDUDPYwC*N8wZ9tXXTkMZfo5S88vAY}C(A<~UVi9PF8u?Vz$X5960~ksB zR~&~gP%Go`?`-{;jEdX=RN39Yf*5P7eIF=}T4x5Ja%BS&S=afQji>DR8w=6%>)Y%{ zrAfZGpV21SVIiH5pK;t~)Jm3ar;V%vD#>Q!kGKN0@O0i~E<-(AF8V&gspOC)C;j}C5wa^~IlCz6Tt?(S`2Kf%yPqn(Evj2PBh`*w$XWT)1 z2KTG_pCvz9uB=5@*}9btEet17W%eKH>GaVN3vDv|l6Gd)8_Zsu zOZ(JOd+N3S$wt~8^Ra&e*2Zht0(1Y&vjr!jlK43)5)sF!f0a#|WA;?akLpl;EP~xJ z3ogeH;4l3E+;eJeeJnYP*W7n_&4}qR1?YKjy%}b~%dxWL%Eoz{}&$!m3nrEyo zTcSGD8Rf71RZvqvk%=c`K)E*qL^D)aUCk5AH#A=q|>_XQ;@% zM%~v<^^0YFUepQEsFC$RebpL^b#Tl7=rIO7p+6lsN`*dn!2%=g5wsWBDVFC z?ca|Yz$L%^4-z^4`;V9HHy;^LbJPsAKy=11jzx`h5=P)R7~lq*{QaA+*wgbY>f!V+ zX2c{{?QvWPHRp#>3y^coMjnMf>HWVZ8wz!@-z-!aQ5VRK8bK{Qip{VxM&7UycSg?Z1I_ue<- zpEi<;s1CHjTsR2};#T|)|3XD-EGuvi}Q8}>>bzH7~>1pitGdtqnV?rb)8vhfB-N{UJ!W&^fR757AIy@7V{R>e8S%ZqmVN^BU zM?DJy5fR>k6c1e`R~9zZvtl>^>tba*in>99SP@=?Qlc(U2));H)Q#)-pEpI7Yd_Rd zJrg5wK90nlsE1or>&1@XzyHFHiR@^DkFWsNi4)Wq`ee1bw8sz{0KGR7jgOhhkBYQo{cm)YGje95Eeuw zQ*FQ97IpjxR3yftlIaUnN4KML=`w1a_!o7(kK@}EWJPtb6e@{hTs9)vSdQx9Aykj= zqRJ*|0=qzFR7Z-SLR=MfgHEX9#$zPT!wk3sHRl&m9e9LFVkem&A6EC7(Abv-k{}R=~j}k?AOLJP({z|A0G)7&&3o7SE+J4uW z#fC=mwe4^Yqe6NCb%S^Q{-lZRf>}`ei=dwC)ltuYiKx(ik6J%2q2~BG>i7gntjaQ> z?w21^>ixeC8#SW3Uiz#FBUmHI?a7Q2*K}$%aDL40WSns1eOVowyP;l8dMdzQst){)v5F6(1-%Iuhf{WVY#>5p2l8l<=LV^ERkhbr3%s7O!sU7w!%SCSlOhwA+{Cc^hv025}g zxsOIgq&@1m{-|u8ftsS#sPa9Cb@2}Bov&D=b)+6@>N;U0j>4X}+-0L88;LX8jT@no zq$3W($>=3ZChJflR5F&ss@MS|aU*JEr%@ezh>GM#neFq$s16rEU9Sr2g~e^ehDO!_ zb>ji3DOrG;^Bt%QUqdamZ%`x7oyA6088xyNSOy1R1>AW+X|r0Sqp&IMI>^+x z&Npl*>Gog|JddR@PPPc|TX1Dm&xfHpIumvL3e>`~3ssIMuoK?J{8%TuCFdyAdD~Dq za0E5-6WCw%e}#>VIw6Pkun#H+CZm#W0qTM${q{T55}Q9~g!gh;7ZuVGSQw|E>i+=h zyazZC)8(>(%t3X09eV%$uf6^U=X~#=p5yOO*&8>vg)$wgD#~FtY>Y~>5!fief`vV3 zKgbhd|8Vis2>W{?T*UqXc`c`sPz%rs)WY;VDw&EFu#wcq zqO`}NLcSXn+KZ@;+{J1bC}>ku1NC`3jE((J=M6(e?8}1GzmjV;JCr0xP|xR^sK?_y zREP2uvWP^Zo{qIJ8V8}0ZzpOUIFG9TH>m5xDr_N7geuRh7=<-(0gf%~+6~ebv8Ay9 z*5rd8SORyWI`SOV<6=c^?kb~lrYULwL$M?-KuysFRI=SiP2m&NKtfTLW1pa^DWA(m zLpEBYdcF-6qW!2jzJ^~ix1nM-g2lycDh{DO{|D8P)Fmv`rBLfbE!69JZ&Vq7C~5n% zl(G(1K|M9ymTc%@GsXX4E~;+Vp;pGze)}&}B;uB~P}f48HxM<#QCJ*jqss6UDguSe z*c6n&NZNH#5$l7T?>aNs(DQyFYD9-n5x9q{`&ebow5a_BQOQ;Zb>l9mhtx1Eh2Nq& z@&Gm0*`h6pV=$8TP*lz=!bD2*?f#ARawxoQpXt+x7Ni3);adHsTo6lnq8ja16S-&>}Vz>XR6Qw^4OluBxqo z^-(t(k6O7lpvr3>Y6^Zr9e)LN;lEKg3RkmaONhs5XGSIYBUClKsz&{5sZ3DalBziN zBx~DYHTIvY5#jx7_%t;moPO+YkHgr1u~vllm(UGr+qzM!PK5Wf;Vu}9&o7`lat$@W z=a>t#)wSfShZ<1tx~^SdK09)<<2%$GT|?D-u%3l3G3tW3P@h-8bJ!JC?(~0DeGKR{^(y&0RHA4+r8ZT#jY1N<+))38)?)#)5bsyJ5OUR>zZ2 zNwx#a;SE$WXKZX8YmJ(^PN;zm#z=H0u%UWfgL3t?0ye^x?4OI3v3Os5x{m5g{p)eNhaLaJIQ^`?uVWqB&HCG$%UT>k zyV3wcOGgf4N!q0bMR-4Y8H{CVAH}H{Yp^}WXJc*JH&IiXZ;0OccoRZBe(w*V{&%pE zdT50A=kVuoDeX$b>>cj^T%7}WWX%(=C%c=OtZij&+qP{ZYg@C(+RWOvZ6j;j_I_*L z_jkJUzqz-c=j83KuCA))IWw6|oa2_`5<3cAmwVX z7Q6+Hfjmzd#ev zTv(0rFL)SM8t&^_2&0Ygb>7$81S?UFKhi9=062j1QP><78)epxcPW_~2;8I1>aGuy zQ|=5C!zq>rh?-yJ`Rb zBGVN?r*UQWD7}W5A|R9qJCfGB}cqPOeojD%=5M!4sBupzik{ zZT(NEDTpw`ya+2h@S`6>4s0&oUiY3w4v)4HfV)s1BWjt>HbW5hyj==+~XiKGX=b zMxZ$#1+~f-LdTF*JO*%)OD&)50fPw)9=dsJ9p9yXUi4e4iC5oTU!9!C4aW0X(8dT{(Avj(2SO4v)W z*qk3-ml%h~p*mJ!skuwGg1T*c2a!=v=RnQra+n*ggIdi`poT2+GBcF^P(z;8mWxBR zuMSthM$iL&mm5ZgWhlpnrBx4gn_dce$>(+LBcr*#0ksR>LJeKy73Pf23bjU>LOqtx zg4(A0ZT(wVn{winCa@k*BQgSNsvbbu`wCOQ_^Zq=DFmJW|6P%co?h!forGWM; z%}J;ccmy-TFl)^|&I0v-Q63hBt)Uj{3aB0(fSQ8GQ2Y8FOa;TNGe>w@sB@t-^oO;e z?Dc|P4e1nHu>-2dH=yJ(*ZVqut(F%yqkIj@P~Ht@EtG-Gp{tH%H<+68c&GrkLd|tB z)Is(XYVG`n8j&a)+5b|ExzQYv8K5Gs4b@-(RHRcaH^8%$&%mj0)+Y00lWDVAq+Ow= zAP{P5?!s5F&K7eN7vE}bR#jk2;e;SH$9jD zb+#{rn$vYqi+CH6CID&`kActOLs$x)+G!j_ z-DQS0F4W0Z*s=`NVygz^zb^P7(K*yJi8X#X1n`s9g~-BC zQx-wQeTFrm*1$Zdhtnf44D{J=R(Ck4A&v*N*z!Osjvf2+v^B1m?`yq&%r_Mlw-s2QRYP&b|5uo5hA%=|WMG#o|Q@3?s> zHW?E=YOw|nT_D~8FPE=70i$#zXiJ? z_nh-}KI7HTvd?*6=kIuXUGR1OxU~62^Q6=Gl6jK44Xe|x(q;4Pw-CzVAE>o8>55s* zeXg?q&m(wAra9bojUyAsiLU#)mQv1sgPu~p4y#eFearkJawXJiuW{QtU;@;t zUIn!ngP{(l%TSB-9@OG}0eiuZx7q)yXmiIrsdR(wC=Y_u;Y%y`-Zk58EKEi~Gocpg z?t5mHKZW@ye}&qvS??Q;f?E9#paO9{FpLPbw&FZs|IZ~;6M+t#k1!qdduWcz?64^1 z8c>UE8dT5sz{cR@NOrg zeR~?p;VoDNzJ`@yfoEop$3XRTBMg97paL)W+)Tw3sBO3p%E4`z27ZRJo9Kl(crrl+ zULLZIy{`Ubsv?*THKea$aVfks9B+96ss}M&nU~|~pd2)W3N#QFgqNZ8qP;dpaBAqG zTofw6vM>g04HM}3zb_dbIMbl!emB(WeF8N{uc3xC>>D!z37|%-FqEOnuqSK=bx*hs zTfrw#`@Z~JbHZ+bBPid1one!AJa6FNb)L*%nBu)Tf|o)W+5#28L8v*r0X38lVHo%c z>UR1CYEgMUm^F|FDzIEo9V-jfp-#5GC)9`xgI+ZpOGXaXKq+p88p1tL_xp>s{sGKG z`6WyXlYKNJQyywDHG^{46KXNev0MeEzr*qY1l55(PBbeT@IMmImKGa$m`I-IiOJ*4Y4apj) z@)np2?t<;$dn>R1#ms$EsD0f9&V>D;4zgHZ&CMwZ+(Wq#l-(aN4fOeDMk<|UAupMf zR8)f+`d)Ad90+xk{)4Ar^6zF!-oOHs!~8H)Rv4b4Tn0)%=1(Kf4K)=-paN@U<(+N0 z4^&6JL&<10kAm8_Gog;gO)x)vZ_DX_8ND`8j`~1t+c|JLd;@h~ANt!o=bwX`#rGs{7?Z`wQLHrQ0@Zda3Rz) z<9S>E8fwk_f+b<{e`Xs8z^vN;W65Y+?S-0(v(VXIP=S51jL8J)Y|my{8me6b*a&uj zZQyAu&*9^ChQ1_p&Iu^{&7cz%N8asJmG0G!had--9&Lg?ah{T4{PwIAiotI9z5y)^ysQoz% zD#DFWi{>5Fevj*MJ8vo#hv6u9g6e5^m>mW|t@hJU=fD*xyU$==_}em5?RLy`o+E;nWX!Ra~S{xs(LY#=kKsuNec~+=^n!#MKyDhJR>e(Ks{rnkf_xyyK zvM7<<&TdHnbtI>UQD9z6Zy7SW+0=&G|1F?SssT_#w-jm-?uHtH^N@Y(dIPmRJ(1n6 zrZ5xKBA#Hm7Rupis8>QaptkoXsFC^uSp!~|JBk^?#88o?f!g1>p?X{z>R_o0wJn!I z1-t@k>b63EcmXQlkGAZIY640NRbLva0|8bZ2(xSdFD6sOM;|zHJD*&L9o_V}9&A8^ zPEbRB8fvIrG0Y;(2el|$LrvXe$P*2p^D(>%i&6dzHHEojx}E2N09clCFwBF0SL|3O zvPw`D?Vwik7N`K8!HTeWY_pvvLOH$!W%v(F3p2-YJNJec7E|N z9BP|Cf?hRD9MA2%W-AS~82dmOSP8qq&rpE`#5Y5K1nRDK0XlOFwMIVKdQSo~g|T2M z_s+>jkyeh9zMC*B~<&frj`4JPlJPbUQD}KEk$?dnIx^pKN#lhf=Pb*zFn& zFTzT&dJ;1=3*jZoH=!J^O=@<M(NVzxkgIBy{B(>Z5jK^Qtit?B=W+XpA zEz0_7%}MH=OC}kDlQ0u}1ylL(@;aS~xNv$CU;xzI^@Yw!2(|r|Kn>*qsE%BM+6_;j z&WZ3DxXZzmQ0GbosDQge&I3OGM`jL!d9V!3m(gwh4;a*K@&nZBO_j+Up@X2xH((u@ zEwkAbqhSfk!B8h*v@GU4hyykE8KDlW0x%kE2K}}FyOGfdOoci+w?WO#DX0_d63h%A zK=nLoR-=~@s)t3PPQC_Ej{3rIa1>Ne$3wknT?;Q#K9|kyDo=S~cDHM~_W$b~Zs)7j zhvYOzWQ<(KL1HKa*`Q9us!*%CDb($=11t)ML9LymP#p+{3giJ)fbT6M#SLjY6&URxduwPuz;og)`vDfkm=7ZlBB7FkEA zwKEGU(B-fyT%V8qukG;M4{2TQ^Th0GCM1!|3r^^(a(W*Te;kHd#BZDF_b+0F<>%sH?f z%3fn_Uc_HPTQeLV)|lOF5~UqYRPElL@#gIW{cpia_MrOkO#7`E`?`M-?Y`GWJ4 zWu5k3*W_|;=iRD^<=xKr_BMvyX_%#g32X_}E_ejLK%a`{Y4{t|wkuc3?R-))0O~xr z54CpkR5nL%SvZjL0H_iAY2|sV=-gocbs(d~vH@yw9kaX)lTm&M6+qakW;-Q^>RBPE zZB!d-WCp;jaFMOQ1U2Wcq3mR>X8csQY$Iy_4S3@X4)un9Z^H6j`6nu8}hRLAl|E&395 z+5eiup$Me761IjLU=Qh6G&XB9_N5sOO>H^Q%ftK2X(jH z2{px6U~2f-YcmlVm^sb{6=7}o4K{(=-*p2l`T; z2jyr9)EYT$lgbzQfD4@ThfYieFHC4(|p7izIJfg18IFghF#H8Mdk zKfD69R-!iJ251GOgVG&hc0Km{BGwKmqlB-;OxTbTWw5hkUg0*r!z_E7t_UrX~^ zZ?5G5s9o_0>Ynihs;B>Kef(CYz97^+qYBjdQ6DPMzEB<73ghD6b&QM_&t2FCeuvs_ z%~~7BJ)s=TgpzND3g9@DgPTw{ohMLFOtAt?N6JCjZ3`7ZAk+vhvD^ur`~O)ox-DLV z8ls<22Tim#X3-RZS__S!_U|y55uS%K{2OYh6Sg(mHx1Otw1ql&y2Gq+49o@hK#j!5 zw(Nh+Va9f5&f7vw!9v&p9)#L1ncACIJO!cZ17HC-5^7Z+f$G3R_zL=VFadmk8kwI^ zBayzN=~yYK4)y5hHFvAo2;L$%3Dd*voy>lH2-TB6P}|MZ*^E#$Se9~XsJZM6)ziUH zBM}6(YnDLgK!OVN43y)SFddBQ?P9i7J}5`kp|(dusHx}ywSC4w1+drh7}TTGIp|Cs z^r!q2Dxid2%@a~as3|K5wN^$!*_~?XT}4LQ<^a^9dJYx&PpHM_*UdCY1m!S0R3Q1G z9F?&3HKDd^J1g%BwKj%Aog0gwZd$vcPSER+5%ap9kkP9A1$8ru*4+f+564r^0TuBf z*a%*S8oFFP%xZ4}70@)O5u69LI9EUo`4y-&^a*Mze0rK!LJ47Z{r+z_nHN;->}6hL zF6!-ezUL=uAGh;$+6SQOJM=X#P-^uvLpl%YXnhIQ!)X28&inf5phk2S)S5U1HRm_r zSoqh<#|+?n(f(gV<~}?E8^R?6&4Yt$ka=ZO3id=k3Tid~h2dak7O#4i18Q{_huRg5 zpg)`iH6pvAM&c+e1s_4}qO^nA|Cz{?C8Jf}3(DXkm>F(_yWoAOxt=w|G+YfEQ$7v% z!*oO4&M&E6z#^1u4l{P9LET%HK#kCCs44yoHKpMK+5gHU2sCRTE7Xx&3d&&s)S~PI zH^Q+{XMe%r#!+Rco5}>J#d;WOj;}%OiVsljV~sEePZ}t_Mo=Txbp%79IUHvzw!lJ^ zPe2*+9cfl;Qm9>#5o)pKhw4!ksBcVf0~b1m%XXA6y7EcL^7n{hc5Fpj-_WgcTN>5g7&bI)6W`hdlgJGxROs zLdt=#9{ydamYFvOyf822YRlcuU#E>^Bzy+bzzjRh zkk^2jDffa3Xc?rv*R{?n+=d$Zzg8j6F4Hgx)P5~y%jKcwv?El&BcR$%fzn$IH3D0# ze7BWff;tawLoMQtyLFJU|5lLE_BaG(=sDD4`v(uf2zyL}V5nW<-fKoCHq?-&hnku~ z&>vQ?>;ScP#zXaZ4OHM;EQ3Yu|EFZ~z`syKoO_>H)s>)zxVJ4YgIc}kp)dRd74Ubc zfTQg#gganvqcx!x(I_|`ZiD&)p%Mp8!nbO6hs<$ML)P=6d9(_GTAZ~nxt-654S@O|&T%iBo5<=b z=0K`&)x3w?3u@#%*UYbMazU+`$?y`~3T1EPb#sDx*V)Vy=$uS9OphzT@+fwJ8u~p@ z_ktHt|902!rWyLgw@d)-p!WZC7zF==(jR-<{7PpHTu8as9k=TmjC|^VBa;n5 z)_Z2?nnNwhW3V=iec$a`3_C!TqdqVr)*3#g90VuAfe+oTV=(d~)BZB-OF6}3^PbT> zIGyr6xDxhwqBY0R7-~0Ue`an*2ccH)52(eM^SRskKw(>` z5exsq?Ro-h!WuB&OB3*TSe^2Is1b_(ig(?$|5uSI3VXjcPbfQKL5BD>EDqDYbvqxq zYX8n`pUbce`tM*7nESok`M6#$c%5>>59S??|DZ;o#z%AJpM?sb$S2c&3iK{TaEnY2 z=>5+;*MElUS&h$TyNrSzDSw7-Ve>CW9t7AON>VS3msvd0e-B6&a>VUsMQ`WuE#m^TR@H63MhwnU`-e+p2vA?Zwu3D|Bol5p6`Gu zVVd|J=cAPsq2_QgEC%1%a@GVMS5e9XpnALy>aXIy!#k9_Ci1vS!^(+0&h2(O)KqPR zI^b@@LGUMZ_J7|b9_KC5BuPEafiVbbdwhp_RI1`{=6*EPPzJ*^@C#H25-0Px{NX%U z5AKJWl6c9@)V6{uZ-JV7R|=2wMn~Bc9i0UUu^On+c4 zSSXbl;;Ar*@^x4qc1~@2z8h+>`lK=KNV1@4%P~+4t2hG&ydkj{e@bs#d3O_yH+pQjPhxyr`C+Q%*j^@9-{mhwuH-a zdt66hggo>Vo`>Rqf4a5(%4HHU)>n4|Xq+(P*m90)fQq^CZ-Fe&759!Odh_BgM2j=+A@=PF{h`9`=~ z%eQ(_kMlqfxtPbfIc$e|_G?t!EXMb673CBqJg&p=EYzZ#RMMP;X-k=arb3O_C3q3$ zEbVdbmhLiUs=7cuPh5n3VV<&3+h-G*j4(qvkMr5jx-bnrxCOQ7!c_1$Ppx&KR{2q= z{T;QUIm2ti0LlyDDd<Hwn7PdfRbLs#fbF1m%Rs1oJ`-vUJhk$FPzPIrs^%_P1jeNtSe5-R!*da+ z!7->scps{Vv8oxv4WI(;1*NwP4uuDxdRV-=S$s{PoAPw1Z8{ff_nd@UQ$JuD=u^Y2 zwRAPu|78$lM-T`0gX+;_s3UVJ)Z#i1{h5+sHBG~%walVi2esXHK+XMi*aYUQZS2m1 zI?x_M?Sj~K%#@XYZ77fTl2HI(VRBfwt~t}2L9Oz+P!ABdp&prv)H64$@lcLGTgIwy zR(DRQq22(sR<1zJebNSIB)UPBm%#ea`;|;KGSwP-oL8~Kp!WM@m_fS*l)7^|r4(Lz0e|N7r66YdFi{K`dp)fs+ zfz*~+pbnO31#pD%OG;+J;c) zLlXfkMnl{v!Q+k^Ae7w{^tnuoIhfu*;Wr=2jnqEnN{wEV<_K)+6`?-o0D@Xd_nm- zREH0aVgKJI;~r}cm`AV*<*eg8&Zpl7!$OoZjyFTt4(_7d3kFDUf_dFA6F#IIexk?u z9>CX@rze@ITs7I_e6IK}EKNsFO<^s-Xww)f%~iGO9_J0jPOt^#$TK|7uVA`DZJUTe z9_P1R(V-S$9H>>D3~Ha}g<6b_V0zfcmX|=SiT$uFyaKfr63;XbEa|*t)SwB}Vj2Ur zpBF&Q@e!C7zJwWIj9I2!7!ITy0Q148PO0*JlSz%> z>{{lO@@Ke`a=Gda&t12bh8(90`jcUvt*%^VhH|<)Y_IfSaKl zeuv*+{_`w4+GW3B)=1@x=2_9_l3C1GU>WoxUbZ6xY43Ffk|{yOaj4ZD;fmP>rJz=6 z02~JA!bZ^ls(FeX1a;8-flXlLYi7>ZLk0dED&REN%`2f%b)@|ZOb2^_H*n<=6!==Q1zXl z^ryiHa2M3g=O|1JZ^3NvJJd;-{xSPsM{X@LSzuqN6L1yO33my$fp4J>l-f_so6g-} zQ_A0AQm?{x z$nQh#it;bbTFCawybsVCHb6cdD&UV$0Va6uasEmsH`K%CI;a5mLQTPasHutf#w^PE zZ`l7@bdwQin*~E{mw!+6p;mX(Pv&j5{jfgehX0xKVFy%?zrtWx{j<3_CH-Qy zRbi+DW(3qwpMsj&UocDVc|;4wU!$#w_5JB+-rHz@~9#I|Hle~EiYJJvAkh<2ZqDp16zJ-`O@;O zc0LzfCzZ)T&JZ{a}7L z1eSn$<#P;b*W85C`wV?y#6MTtY0S$)Q$75i0I33FI z3aAH>jnE&Sg@xcdsIxueU$f}iLY<&9U=er*7KIW2nU{JMq4W3u^~flqzAzdbY!xO$ zjlg^;$IGF%(*|3A32LP7!-(*Ur4QN)JhEjxn2B-FHG(&wrr;4Q0AE10PZ`F~ypjsT z=byD0Iv|ka5m1iiLpj(Cb<;QxyTXKF{hSdQ4pkAs~3Fk+b z*fmi0+Q77MIBX5qd&y|1V*8qi{h=aG549GuLY>_ep+=$|)FSE%74Rsio-Tx%iq%l| z4qBdp3iKM(iTD`mVfGVLJO2LG&pD|gKtK9nHQ;q!AmfkVlM%RLdiDMHKa-X z%#ap@nu1nP0gr=vET0M$z;dXbZ-feDKlIW5KTbx9C!zN5ZOgAv4x)!Qiz+kJkmrXw zs;fg8-U#JzH`H7of(rb!t^WqqW1k47J`z+Qv7z(+UkWm@5M-7BmVi21D?=Hs4t18- zgBsF-Rz4JJZbw5+)eIN}=R(=Z8PPZ_0#i{g3)Q|8Q~=$fR|bZV(YBcY^#C&4DqMjY zsz*@U>=o2D`VF->^F}iDHK77%Xv@tl+d*}pn`K|9zy?FDwXu=d{}RkWprKz570@B5 zp+5&J!q>0^%p2Ko8SF(lMif8i7m1@`0OeO6S? zb#M6%wf|$sG=2+v$!G*BLK&_DTlioA>i_)QkLBk)V0?@1=R6M_i{t0~iq$`^39KK~ zqFfGjF6@Vy;8oZXhK*-B(grGku`oScYUw>s#vj2?sK^q=Hwqu>FG$(5ntlLasII?!nf3S%z;0aSO+Un6%Nv%?b|LlH1omWHjl8d}5KU_=^yB7oXf zb`GNxZ9w|)`Fk6vA5Ka{;vPVK9_m|Lov_Hlk?(H<&!+KzPNQKoR>JT9Qf>mug`sOG zPqD$Zqi5C7e}`6M+9YCH(&OZib+E_wGNKJ+1Ld2v8OHS(8;iNF(Fvt#wDC@(C*Q2s z_$c>dShL`iPe{4?P##Hx!!(%9)r;u;kne(Jal8R1+Vi1P1KM}R@C$;@jZ=NI#sS(c zqs>XmOQ`1`VY(Jlo~iqs82=AL8Eube zV(5pQVMD1mWu@onccuMtD9*gRunYDt+W?Yo|u#9U3Kq z;5`c`m0(16TU`WZ{JWxX*e=3m1oM-8af~-2U&i)6Ar0434oUlP(k;{ojG$hL4@oV59i zv~NbB+t5#KgIb6^r9s%N&Gi^LkAki!*coJfEc1ryk(48%bb`upDv*}g0EUxaK;0?o zQj%|tyqR4{A7E3;si;@-$5}&qe}H^J8dRgsM( zz~)pmx3W`KZ!0{&6^~vv$H_b!Oj+w;4R&wSW*qIG*iLpu_p5Ec(*)#owM1~3YdK1K zHoHvzTu7KUqWQM`h(*2*)qc=~eE zs{ggH^S^>dD=|2LOX&@Y=d5xG0t-(M7g8Q!>%(BM3i1dTzfKS-?I>QOE#EWtzw`y2 zHq=G1z1Hi7C3K<=Qwl_QufwwKbmLkCt6L<4w>I$s>tMz<{X zlrAekoO`%J&L7t?3?#v7DMW`+tZRG!gg~}h{<=Gc8!}u+aW)zQABp@qS4JFsRv9N3pi)Yl zyreD;<>MIMPhCh_NZnRjC_qrJvHhQVOB!sMo50%O=OO{@gx)2EJwXmdH!{vkqqCN)Cl0crGo5@4v5^U;K(pb&^ z5~5JzO=;IkD)e_5b6`u#Yshz`vC^O}~{uvI=a*gF` zN?YP~r6%ycl+Vz1H+iM8=(|L9@Ug0b)?QUa>e+~WrBp>vHycpbq!XXqh+aB?ucIQLlo2+^Z zc$w&fLj@E_W2GMO4($_S=PEjR;2o$mm|#NESTYF+YACWR*zusJ~!l@LS832Fiklme(qt}1UQ0&W)C^g5~5Dc%T!90`>L8WxI=f%)FLcjy;Fh^ks{V>#%cCnB}A%KWD zs3s@K!%)_{AtkW+$_8A=wrz+`2R*@DwZ?;RSOkah;U_AU?qYZ$4Yu1x$1#Y1*Br_< zXt$dHJoIcmfsG;`Kz)#P^a$AooBu=4m!kI$drAW^QXe1Q4LGZVAUuU|JZmjKq?C5Qr9MoqH z!~74RaUg}AR)Ifya@E4fD0P#>8)2@^7-~;FUx4mfN1*pG;De5m{-ep zAeF0-g~QP_u9r9;8!D)7ft|911Wk%aW-amFdMX?BVN`)C6enb1e)E{GS2y!2skNgiEh(@^yb}FEIfOem7 zdW*bLc;rg&?Udki;vsaZON)JW4hAxQSJAJ4Zc@DWMzOc`TpU^Gw3I?D zY|XUt6L2%_x8tKZ@`rp0xvLs0C^?0>C|BqD$~7LPICgA(sb51kl#(HjhmkYL%Hy;x z<(vd|3s$3?jn3>PxI@(Mq+H*2`wHcf=w-!DDz2;yNdaV8A~8dAa8$uMcnaM(2#>*h zHUK$ZY|lT0i`z7Wk;5o(ddey zPOt-xe%dzgtZ}2w+CZKWCnIPdhM?x5KZblC^zzY}w*;3WBJ;n1Xq2`Q@kKjCTOn_u zJO2XXUMRym(VLGUrQ5X2i(V7*=Lu}8BW3*{8;GMx^tb}oQ5#@S^iNv*QeA=0e_o7T zum&ZZOk|I6m=}ZDL&@hTNV^_hS|h#~PJ}!zJ*k8vB@gXNQyxNRCQ}!N@(xB}7S5D5 z(Y7%1KGude1w+#V!%eLqCJpz?+5eY{;p`@Q$1om?AluRI54wXfp53mEkS6PG`8$G+ zQ7lmjnO+r`>XIR z@)htFIyDHkH)Z~pfRidxo{EosHUQ^@K1k&al=m=HMKGR*k+{b-pK`tbDRO_t=ueED z=X#8uQeLj-Ty44dwcGzv8k;YM-e#^0INeOAwlSqKX|MDXc@jMY{0lYDy{O;=NKP68 z@6j+nLtPL_B0Ewi$w#wB8Y4SQuvanGiB9As=#$8vP`@7A18Lug_VtkaSi6NOU*kH4 z9o?Z^k5E!-hmkQf?!$;&q|7IqT>r?2v-Rf~zS=ZgB%>J5K|UnSqjz!9|Aix^LfBb@ zP8!;Tq~6v}(EpW9U*i+r%l`{-Jw)b*yfWDT= zaeRW&xWY&%MJAsf12b*;39{E1QEG~=(sJtGQGb}gD_c7$2>t>2G+aZieqS5ZK79}% z0?LDI^m{N82gTkf-XW-Al+RKwhx2d@8^0+3Um8d6(jogv`v|oEOAvLf11XKOx_3j# z+S%6S(7i)D+kYcnkHM!zo0N*Cp&Csk$S-!zq*)rhJ9bJ&Gpu|AgOmD)(n*RWz?OT! z!iL+&u;-*C^fCqpFHw2H3g@HTjuFVnr8JvSX^U(RjA@54 z3J$(dUPW6a9|9^*xs)AM$&zDl9UUvGk%CHv!`S|hrD0i&)e8`!vWMSAm81NR4QZB`GE2P>NDC=aU7xhkhU|pp5ZGU!jaUE3K{GiI3bYXuGO5>$ACjf3In1l|grov^PRfeVz65=2RC6rs%(E0>LDHeltw zhfvsqAUDP;GDq=k0Jp8v<3yYfhuhIP5Ba!|>kV9uJP!t*D*#!tsR!+P5!`U>hNK{y zPi}2W{)*r_hwT4vRK&r#(hmaZ$5q+}Vx;sAM|tVRA{r|3ofOVDrr#o<`&@aDKejeh ze~YUKHacT#7P>7NoiR25Uv&MEJL^9p(GH_`9f>kpsJT8$gJd*}fze$Yf>cZIaCd-M`#i8z?oRWUS_l$=37>=jN zAWmag<%k$n8fJMDgJ-zP5p@NOEF*{yHpnFe+zGvR*09>WM<*nW4K?R2X`g~%2UFQp z_9D^$H5gh(h0-eWxiIt(qdlywi#5iFo}Dz_%2nut-Xc4^>FLBWoaIEOFQ}VB{a$S4 zqJ1Ttet=_`#=q!|b}Vsxhi$=%r`H2)&l?lfJ+7M=nPwdgp}__k=S1Gp>ZL;V8Dr6r zpFx(uj>ceH-vPO@(`fTAXh>e4nBHZm^ry*7OxK_<@2Q?n`L!J&J}2WUiP^X`8AN?O zVsB|@e=%~Us^}gMQSWAEp?CeXYF9t)WYK+1(>iIm6lSO!aKlsDTz&(f(V;U=B1k%9r<{EeNt?$;mDL4<2WR>Mkf*FT3l@jW|&^= zD-FaM|CGyh&_;g&#X|JF3r^o~9mVk(Mj;wkNcu)lO7|_5pM&9@Tn`DFk3YLob5)_e z(jxNt$@9T4S9ZI`g1tC=g>p5VcO!_xR5XDna2S#NKse4i%|$>HG2&-O=oD?M<4mbC zMt@=>CvATjk?T5jUu}o1$U%B+wzoE&{{O>KIIindkEh}@hLq-_sI&@0MY)RM*h_B@ zQ?FO4i)S{;VRd@8pZYC!g|DIf ziQ%t6xdm4tI~5zTr4)>ee-!76jopK^Q)*`Gyh*5djPqUAm?}pQNM;oFVW=Zfz9f)X zILS(RC3R!Cl&V`}tI;__CzLW6xOU)d3i>r+NIFC&26p`M8HrB4(Svp++fYi=G1v!Q zqB0rsFA!I4`QlL zGjczX#pgPQ@s~7AW;?cmpw3VZ=BgK}v$8#Xqfa<*0~#l0sN&<~J5KuBA>V3y@e(H? zDKqu8(fdsh)o6E*yizsT8RJutDebZyXouVvd-ZAeot}rJ^Vm#Ff&X^Nw|*1h0vZ?L za$Dy+;V~M=pst8@QZl5qFT)vxM(62FNzrkyAM>_J>k;iF`3wg$~bR z#8T@SsGOY>{*|fg1=l_zON7H@b`_6Cxc~;X+Q4K`X$HEts4Gv8HW5ex>YLDJ3=ZZK zKu#PaMYh{cjoMU0H#>FfkvGQAeZAST0V6lLqTocSI!a2vP)tY9!eV^69f4Og+)iC8 z%D%`4qLTpqF6spBzY{=3NMR7yCj_~O_5?;3 zBi}%T0XUjSS*ZvHOH%$#{sp@C?Gy#zyePU#*N`jSr%h7iu@#t2|N#xNxkS)E847p^q(Q3k52Z=AEa35bYrw4(e7uc;aA;HdQ}7C z^>Da>AgiDk6a9JU4(A%nRe*Xw0&GOvYkJG~G7a@T_TlJFakvxe?_Rc(9|M0_C;H2< z0R;I311~Y$96E_nnM-*cmy-U3MQIYjC&5u=>?n=1oqJ}dt{?T@To~C%5F=3-Omy8S zAD|+O?fFIOhGRGZ44oQabP0l2)HOvn8;%mw_A$YxKsF9r$H}*&U1#)8(W!0(|BR7I zVgsL{*8np@SByfpH9NRld5B6l5IGOK(?c}nk$&0JxXJx zk(BS!%V{|Ofq@pZiHGhK^25n1J*K=1$E(rliR>43%NW5d)^T0xb|dd=eL4PP(x{&u z+GaGkYb#fv+=+5Zy8v5}zeGT1xs*y$E(GV$_7}a&f};jp>(!n%_o**zN9hCsg`pfe z{nDGQF_Bb4DIblt*da@akq;Q1Por8~`Dj?0y8qCbMD(=@xHfI(P!|EVA)rFYVo>*m z@(1)sBU^_J{ar;Kf{D!t%tU7}wu87bVlS26Y;T6qswiecDJl({VPq@42}$`W7pCqU z{6WK8=qe4T-C2x>%0Wh*-}(UDc8Tn}RhZM$CtFc^a?LfMhM)Y!g(V>h}fxZ;GW zPeeH!fqL`P_#lc=Z7HZBiNnvXc|sJ(nZQ2C=9ke3z1K@nOQc_9=7}#JJ*n1*IQ~zb-5-H z^r zi#E#{PCpF4qQ0% z18GQ)auR7lj2~numC_K9(pl?J`BVg)i#Dlo(vJLX9P~hMpKT+Z)#y*OO;~3^qNuj#>06?x=jELXwcdYR2=GR63jrZJXE-i-4yb5Fp?xx zAFClRhrxKXQ921FCWlvi*mT|i!g z{0D0+1%b4-6Q%l>$ggwhD|D3BW3Pk_?gFwCIE{+D9Cq6~8jSyR8Vn?WA+QcT-%5jC zHh^B_(~_@*a%Ae28W2EM48+25De6aIxO=D|no_@w`ZaK+Y2u26{dolY!}Qu!1)Jx{ zf6~Wa7Et+z%4XK7+8n}}4~DNJzd^o>b+DJR(sJqo7~1WWYhuIS_EL2@aJ~}x5dtV{ zZDz8LC(~vW^1+nX)6P53_DT)&A((=~F)H`ba3@TRtS`=Q;&3tLigv30p#PoG`hi|S zWdFhb=#}T{g3ShY4aHO%S~P)Y>|>^t=_k&(QvOf=boN2~eq`wP8w(Btiej^@(1GPREhe*O8-ChQ`-y&obB%Ns6O0 z)=5@7ymc52rQ}vu`Ce9k5IW=ONLEH7KS38mw-K_oI2wrk{nkbjYeQ|z=#k?o#*X4_ z2a(q!|Cx%s&$d*!HgT|$ix1&BK4qDQ~SOk03 zI{JZpFM8YIUu-5L@I_ovuu%v3DCGG~AYRuAGC46k1jW@D&}ha(IX+4SQ7%pW13L{d z&}l-zN=m7&+cl=j^^Llaq&Ic1W6uo_*|w_NMgFYj{~<;LY0%j^$wpb} z8V28zA59RaLp2Pb7yi`kX9ThnfKpM@8`o;ei>Z%A-Fw@n7IxR8uQV8rvAT~bH_-Zv zhhihHZ7hjwtQONUgP>oYnLX@7vAOHv<> z@=WVcI_0d5zxYc^-kYCciA^t0pj^xLyao9x7*NV&8!yKw->Tw#gT-YU7RT{%xDee( z$ZLj-9)?4wIJW(8>N7AZ+X%iVI-|JGhIK`71=)rR%>6JkjSJ$dCs#JAd~CIBPQcej zd^Kb`JL9`Own9>TWR^6vlSykY9sOwWH=oL#4woHwM;NhaGW{4xNnjWCT|noGH~n9+FPc^9jgr zAX|u|2b7fx(Jm_G?gaadwx;)Wo%ohyvpCHA8(!4z|L*jWISc!emyr3+1BNSK5n>x!Bu>>^0>DdfO)w4wvJ28cLgBNa{`yeW{Cy>?8Sg z7(Gj{|IyE(b__yvk6UN!uu+OOT_|ryUumDE@>KmVRmA2Q{jpDKjCSXmMpR!>enkGF z9f3GFU&P3Sq)q6Y=Zf-wnmQYps;e-JcR#ogC?Fq734#b?ff^)3AWYO0Vsp}lR5T(B4)%p=xG9cfJt3Ad&!iYh#H`75Hce}M6*w)KNsR~;mW4Q z7onN-ml!Fyi65k)Mbyq>-Ge7GT_^-|AX`YoPGXCQod#$%=i7*!O)iT5)3~+>g#1O$ zZkdpuL7=uFc}$*QXtU}+_A`x!G)XK%Spta=)N0#JZZE}kfLKMGf%PQySDDU_{R)Vu z(`RDsk!yA5e3pUS5L!%cA2><$gb-WFURy09FX&(PjhAa_LS-X+1yBHfks>QG6JXl< zX}m{MJo|EaeI!t)?L6ya5Ui#qh5BzqY_+W0g`|Hz%oN{g=mRlSK=Q%`QCzgu16Z8}awj(tqp>owj zfFGmTZbxLZU!L6nSN9u0+i5;aW4FY0Spc9`rhl9MF-Wd(euX+uJWM7%K)wqM{j*NP z#M;<9x-fqp#cmvG34V=;CP3P0yvCY_xTOLRB|Bw5r}K(dXzwk6c&QR6Nc>*&|EgW6A7JHfEM=g6jECkJi06m`+? zCStZCCX6+o*nEJs83A;}dw3BRL0raaw}TL_;x=-qy@V&@(bTpG@q5&3n*jF(YBB!U zGsIyeHcOF0OaV=|P#MmuElF;r2tWlv7tMomjkl?L<^d7+i8teQ;Qc`SX~FF!mPKzK zT+z76_Sl%e6oOq4Ra1Nzf*XNcN%H<`J!uff$-+=QR{t5A8@D>4im$SB9Fs{Pyg_ga< z`?(NpC1AeFK3gs?U1lu&pUZY%4?RIsj0{^$LoN;90`@)ediIydoe+?%#Mbe+F9?Yy zs%5{KnXV%=0`Q+7$dyq$%0O0$c_VruHR}<5U;j?f5+OEG=m)@20LLKFHcnwEjf0Sv ziU1w&qFLL+0{R`flL!u=zmT}UOP~x9CiMVu`Wz~7;I|DQHQK1qd|4o4s`uBJ8x1P;S@YrPDlWrZ>fs!-AUrZ4A~H67 zvFa```}nH^Rp!Y&^^)14(o+TcI81!3l3E?UY;j61%+Jit-n71^#M82{#y`_CO{KnU znHj9ER9HNs)Vx!clX>o~`t;-7SMU97^kIOcz(F1k2XxvF;_b#gVTc3-EpZYpKI I(>Cw_02wk delta 86536 zcmXusWq=jOwua%}GPt`126uNK+&#Fv1r2cU4Z&T5g~2T(xCcmZch{i7NeC_h?)&xX zd;UCCy?b|8ty-(PXCRzex5H14NE`YyLGVY1|HX>yIH_=Of5%Cg$Z>AG&{4;!T*l}8 zf>p31zQJ+WysXc8g%9xwUN7f!mf@lDK4&g=tzgH)D*BuU^k3j=yj;oWtiT^C`ON;P`fB)`=eQN8585 zYWtjcKF29h$LD0i8g+e6Ozcz7=bYp7Vc*&S>ecr-L%F~6kwy+q7|_7y6z7B$4ei9c z*oyv^MmF;#jeSmT`a`ijuEpM%sEN;6%J;{hpMLgcJ|{lr!o(PXE%>|v#-P8YxzCA; zd(hAQog*~(+&PXq;UwnAE0_#p@ogNk7H{QqD&fx<1^-1|=sjv+v0D>LOopj31BPKajE+?>J=Vi` z_&?Nj#-au`#p|y@O=NRxU&x)|aSmvv_c1Ge##orSja{GsY9PfiA=XAETRR+&(c4<6 zXQF1f8vEfzY=hO?`JBDD4#Tlmd!I80r?(IJobEKTcknq0a2{sIHK?__ih1xK%#7h3 zeGYl&R7TBUb|-T!PNjbk!?8hUpOXRqhYIz4R8l^~0`%W^@j10HXQ->K(Gb)OSKt=h ziMnC0?<}NqQ8U_&ico=W_PrLEmi`#*g+F5*OxfM%{Dj?5)fK&m<LJcq@euwFBIzGWIsPh)}vTE3cy5TA8k2jDB zhn)JotsJ_ba-cVADJGx>vH+D#8@>L1)W9xddHe@eP6fWVEH8l?P(xHihoG)E9W{XE zsAS#b_Nl+!G}!!{rB5?2D;U=jHG$ff{gi)PUNfdqZ?@i0%zh)v^h7 z<8v4XZ(thL|5F;#FlJvf5$c3*P$ACY^~+*7{W_@n?~N+Q#i)U<@%q1G2l~fw9Omt3 zk=%)zz-iR^w=gu2#tRyMW7q%LOq%pJd!q(89#xJp2H1_0qBf+8sGY7YYKDDL=g&k% zB+)=-h&fQ_S4Tytv**x()W1S9g99=WHS?98TRjh=lJf#8wAWCfeU7#96Doq$2iXkk zqi)n5HNb(m87HE0rOaTT!&jUtgQ4#PDQMair5U)<9spZ#88dV))<7k z(a)$6?n4di5^4|s;u$u^W*!TbM5#~@nVeV-8{jsahh?ztSlhT}Vt)ED$N8KHERBU! z|HEi#%iV^p@g8bxtuWpmyUnmD{R611|AIO{=LFlD8>4PK9;@Lg)H5K(M4wX%E1<47 z5@+F0SQ7J1@;OtKu03f)C#23~pK}OeOtEAXGfr`{A@AG@89C3cKvaJ3Sb*p6gmIDC{p+-IeRSn}% z16hKK#AehI96-(N7G@)qFEBTzjPyDGa=h9CyKc#awv?Sv<=77u;koz+t_aakC^{^% z8}&flXt?JzR1z-6aQqcDz>}y5oW~$OL9O{eUO%wd=RBkz4a4yTDtY5Cv8}og>hT<^ zPvd_ydZDuOv3EkMrM4u+@d`7mgc@l0a$BOTs2k=-R(T%a2gtU7F2Ro#T-~0>);U7 z7fz$H{~A`nH&_gdueTfaL!I{nYG9L4OSuTk;$c*-#ModFOtOLc@6CZ+9B7M+Q8^H{ z(Jqh_73yrL8J0z5do$F9TBCN#Zm0+j!k0J}pQ^t}dp!HZW()m0tU~{rE%qATaZAW% zG@k?d;x^2OtGC*k-o&c(U*lLTz0Dpv44n$W^^B`<6~3^3;k|uUIz7r`ly|(8EVOTc@97&<#5m0sK~7GKHq^_ z%Dt#0{Tr3sVSiZlgyPUp=yGBWMqCVa!LfVn3ky&;-hw)Q40Zl(ROp|hF8B$R^})SX z-&s)QnGdz3b+7=o#acKA8BoZ1MB^q0zM^h$bDz!d6(*qn3041b_FLVyMGasnDmm9< zVe}vHIcu>PF2Ki_7snp7>->h=cut}sco}1;{%_Gxl0CsR=s#p%NQXMHpw};n+IVWC zw&<4F5__OFmeZ(6L^*7ci;L=KLftqw>Uu>{r!hBvLe+ovqjr9I%ul}`D&(tCOY{-7;iW!C{c9unj)v-gJZ8pU zQ72wNmEC*P023UywM>SZNj6ln=0hc2Nz{O=pq8i!YVA9sl6Zi3d>Cq?la5pWdTuZ0 zfRbzc%Tk-`|W{vVExQoJHN|FYoh@ zCqlNC(N3DlP+!dA^$Vfat|Dq?wY`38)Q!5L&hL-9@Mu&denL%TC2D|sQ0HAkUFQ)h zhdzY7M)Xs*1j$hsD2}>8CDhEn_3VJ|4N;LBjhf+7)CfYM@^|% zd*KKigUc}HIo*%?TTeqXJdOIoO;i;;M?HoUpSO3pVyJ<&M-6B&DvPI~2J|y(hTBn3 zy%XN&uTV=9^Mak93vu7}1Y+v)0Dwh&K4ePJ~gz^kYk#o@gy z95bLcnhL1nH8CT$!@@WoRj&I`13rc-_q!NcLL+$9)_x@_fj zp3$yZKP~Ee#V|KkN8MmBDzXbuk@*$%{XM9qyLyfK&qCuB2P$K#>-Ir=)E7diP|rZU z$*jVLcmOM5sv8#icBl(}k6myQY69;uCkAiYfbwAx`ro1kGU+Dq*F$Cn2jmV^C{K9( zi>Q!3LgmI6&p3Zt(xpZvTW(bHR>yGcitdJl%Au90+&O`|&plK`--c*tZR6aswJnMI zpf@U{<5A@`A4}oSsE|HFUFa=phS6`^%nD<6`aMx)Hy^cutwAN}Hq`eIp&}c)K%)hX z$Cwu@-|;yGaUd!Z>rpQ#J5c+>?^q6xqGlfZu3b1A>V`#8&yK37fpzzsk6NN*7>@Um ziG`f7dv@als1wSgBGLlO;w03F&v^ccn#nV-{|R;D==UwlQ=kT(4i(Als9Y$ATJu_{ z$acbXYRz)4Ji;6@i)Xe&MPDYjK3e?)K zK@I3CYUY1q8vKZbF~w7hbX^REbKpA~y1*pV4QHaVbw28Xn=lXF!r>V2nN`Dd%twC- z7Q>6EHIMh)lDQNrdA~}ld;a{jEdy85l-`{3JROm9Ia-%5L z#!jg7cc7B-0P1^pu!@g;1(j1JU)b6=M3rez&nYiL7SgpGP>6S7HNJQb6|&SX?Te*Q zBX5XVu{$bKb5Ju}gc`sa)OC)blI=F;#}AkmbH1{2tc99z;}DG;G`e6DoQ+zFm);2< zP#28x+HMezD#wzjhe}!0D_ncjc_UB}n2XARU%cacP!qU>y76<&jiE0z!fE7sW7fig z^n0SV+!fyOeW=jgLuIf3t%Wu|=B1w<_0VaK&2a=4#XDFMQ@*ob*EdF$^#UZ4A?FSa zeKF>HGcPKM8ltj%6e@I)sEy|j)E*xAU~j=CP`NP#HLz(Ij*Cze*o#`4o2ZC=L~YIA zeAIF3zX*-?9H@^fkDXW%U!k(L*eBais(RK#4Xha|lzmX&8|8hz8#SRrs2e^*Em_?E zZ0!@Fw(iszkNZ1$X((CBqIRyPsF}3G1^7KG%M*OI-1r8ywi!^_T@qYkLVbqZC2E`vXS-)JTh= zj#oxSrVVOfy-+uviT!b!_JN_Y6e0esWZVa$`2EjvDy?Q2WLd)W&iUGvOOlWKzX2^P)DaipT&$PCFWU zN)5tZI0kit52!CDiRpKaVRo#AZ&4dd#aMo)J`O`w&n49N{=q>QE4JS$i(|1N9>?KS zL;5&=_g!;&T)&fDfBybAja;0NB7xtD@bl9vZlOOukzF7nvELcW7e`Y!%;af9gE{e48y-eG>Xu8 zjRi1ge!u&&*aoxEAB|d)b*LNui*>MY0ZYDdsJecHD!>0w$(665mDxa4?#w~$GsmzV zp2d6^%2>#Dq(+|YQP1z*sF9z+r+5cdjwcKI-G|g&%uoL*X23K>Y)31P8c;*8-xVY2 z4@K<@sft=|RmVcA|0y&SnnS3a>;Y;&c#C>|`-@pbQlmDGvZ$G~LWQ^^YG6aW{&dum ztU~Q@TTx4L5|xAxP!n^C`+2XR{^HZn7xH6#EQ8vs>!IFwTA*e$1U0~Es2eXvJ&d-Y zzIO-%cm?$|y@7h1-$Cv9Pf!DYhsuF3n1TB{#Y$KxTcS3i8K_*?hg$1**a54Qv`DST zO!Uv7dqLCzu!ZRa9kzZNVcP9n5wcxBqu7QMNto%TBrejhg$P~sHGd^eZC$Qxs#~# zZlWUl(Cfbn(NHKpqjDjvimmA=)bWX^r`JrZhtE*e5>eG2Caq8d>W>QbWUv3L*WZWA zmD?DOQLFjgx9cpZoj25ghO&GxYR!Ja8n^Vq zpk73pp(fM^75W*dSFNR}>up6X#h>oy#QYHrjrcukZN8!|5VMwDFdJ$HWl^E7in?Jd zR1Wk&<;X~XpBGLslkRGVDABq`pK5E8$QP;hIip&$7i~hQP_b;`~$52TQq^M`1YJ^(*PBKY*alo0b$)r&Qg=q> zPS3{Fzt*-N2b2^;y${BsZa5kB5Sfb#<$Bb^rv-cFfUO z1!rJRyoq}J#tb#Jq$!0;zK)m|zsKCT91G$_bidHdLRt!oa(pzF#yy@+bF1?R)RMGD zKh8&mej#c?>rfL39ipL--aQb{EL9hKcoppGcmH1Te7w$i!@u)8*RXjv zzjIYrD$?EW{yr~355N02AqJzW;5C-QvOWFouV#khA^JD411|05cQ#^--Ztai_?CW( z@9p(FejnDFfvmtf9KX=le)`SS&yxKxCeTc-&``ENMXkwaRF)?BpC#otsD5V8T-cL- zLDbf}0+l=Kum|qM(U`rz9p8vb!r$=;9>=t}bpVl6Qe2@?0Ux1~Cf7iFL+Om#SeB!5 zVn3=%PGMoZg8ebxAlnDVp*FBc)c1B_4!njczo>)lyd0?eMGU6?)6f{r0nKm)YCvmH zBi@a=@iA2ST}17OPrbe~#GZ~xQ1#y(6~TR|$Xv&ccptl9^`Um1ZJ3q*$)VK0vh*DX zv>~LYuWHDORj~}JDkh?Kx|yf}tU?WRH)?}AiOKOgR>wD38Osi{0ZqVg`pZz&aS-cb zy3lZY%=Sg)z%)#NOHmixii*S;)XZ*rzD0#P?hm$9xlmhf7u3G67`2qwF+V05Vb`yU z+Mt@DA|Dz_L$6HBFgHF#%`E9in`vfL1WKTGy7H)pPHWVFdtxU10rm9z8I>dFP+R&9 z&*!Km{DQiEqEYVmLrw-7%{fpAwbnDS8ZN|2_!RSC{?WFU?NH~RKn*Wk=HleoC zov7S7hZ?{YR5{-9e2$992UG+D<80}|F^=lLGz}$HP1Ff(Q3Dy~IRUj+vrq%wiW%_& zro)ez9={oHWmX2&@8I>vqrSfmQ{ZXu^CuVz=RlkZ_Capc+Ehhdpb2V?hk8y$RlyQe zWVWI^b5w+`phA5Mm7Mpn4F)FKc^y#6{T(VIp^4Q0Xd2@N~)NX?Yy+uo_;QL%N1wRUxk`j$tm`9t%15YmBttjgk!R)HiM$5 zaw~Hmj#`QWs7TgBO{kS;s3Q%n zb$3)!O-E(_cJG9v-tjY7p5t#Z0~ViY8%rzHlFURU=TcO8?M2P_fae8NF5UNhiwr2_ zMElVmuZdA>*Aq2>OQ;Y(M3vn$)Qmr(1{`meZPf)ltD}~z9qRlcs2ff|g*p-yi7Ti` zyu)~U{s(7Uc_c=SxFG6A6;Ly4in?JJ)W9aA9-j+QH`R&VK!~un>7Y49DYJ`JPp&E{5a0@Dg?@((SCDKBk z48!SHLJhnVs!aQ#A~6`X1Pf40^t0E$5=s4M;lMo(=nJtHSRE%oeIXNSFVBk_Xi3kC z-tk)Kt|@B9T~OsZ5S3)JP}fNyTbf)nIRmYtc+S(35EyXNUs1~7a zv=tSZgQ%Q2=Jju)&cBPg;WMxQ4i!1yA}h;ssOwZjeLqy6hIXz_s4osi4P=aW!hG-Z zb*ND8N6p|bROCKmz(=GO+fJ8liAAgd7UuIdsPpHca$qB7!jqUz_5a!$PST}zLNU~g z>!aRix}v_Y1WV#k)QzJqvmG)IY649#H+DyTz5pxWVXTO;m)jD2i{bRUqx<{6Dc%Pg zP+vTbN|M)D0MoCq5H`Ys^yi^&bOu!w&PprSaMTPNqdxD0&2bsFME@#F&Niqe?1}F4 zzpwYfNYoNcMV~UPNqE~k{tT71w~z0LNfM{1ba( zp6dg%O$ zYjGX^h%MIJk7%#46aAGN>^ku_+60Si3|Tpp;XpS|sExJocWi}mHrXFM^gxyAS=82C ze6u|h`k?B44k}qUV|=RNDeAfZd5aA&>sBkzqNuVfhkBMY2+>gXc0`4E5Nb;v=bf+w zwa0HlMdlpphObfe9&a0eIE5)NAI`;kcmgwG_;$S4AyNBh-1VP`S|!wXcjv?Su=F90@r) zyaUHk7x)V`fLEww`+#pS?oRt-wy<4XkPt`W6psJ4+wcDOz*T>@8{b5I?=MtjKcOZN z_Yb>nGSq!iV@^H)bI?#dHbITJC92%MLv5A)J;z`M`m>Oo%h`!;r0{3@_i-0a-eWVZ zw%4kl6>1>8Q3Dx`y6zMm=l;$D?}Uw*pZ+0Kh(4m$I?+Dc7xJJkP#ha$dCZLqP$55s zy6`1*BkA>Dp+fK9Z%LOFbzT+>>4U;Fw9{2bMPfLrtVW{-G7A-%^{D#Y?e#C9&bxye zz`v;E{eT)kf&&)GaMb5HP+4C96_E-DsQ*2kl`9Mc@KKQB0lOX#;bY&Q-&Vv$UO5gbo@BxGgNh64)ykEjbD#aVa}tK)Y^ zE%|n!o@RB9*+4sE8TwN&2cGqge?e76hU0dAY1Ff#A!@_>AGXDHAsV%5Bs^i|*A8>i zUx*6fNsLOiU&q{d@1);Zsq;_U1$JT;`f1MCp9ObDMIz-{n^-SY4lTnQxCgc6N1n5R zh3?a6!GZr!7ixOmBCs4akPX-gZ(&}ne8FZq5F_ZXM6Kx~&kv}FSd5Fd#)&<%qMivQ zJ!>Jk6mnYAP^kK&a$yFlelMXO63;sH8lIO1g`v z@83jy?=$N9X)f#if%+>*LsifcRbG8i7aD@9?+K_qdm7HiWvH2yxnk$l!*KeoQDyZ5 z>c-PhRWsLf1u9aTy#4`npZ{lR=sA8H3u5Z4cEfK`U+9QRn*ONI*JBoZ;PvBPvxiRw z)cJ!^52;C*2M=L-e202SrMzy*UKc~k=Fv2?W(!aw{uvd*tylvOp=OlmhD9iqXGYY% zkqcF>Z7~W?#)0@FYQXVs+EP|TRmmt+gg4%#{@RvUH|kg>R)Sqmjk-cQ&hRcxNTc( zCe)0Ep`K!6P&ZzN+9@}peqh;#xp61zDftvNp*N`Oh2635rA6(KxlseG9HOBUYho{K zfx6)tRLC!*w%}W+to?vm`?z=Qdqq%dUKy2qjlJWYP)pMvb-gvH^ERVqeh_tj=n4%b z#Y0pTq`qgbNcqw6u^*r!)a<^kWqZ_lKcSLxJ*s>kp&}Ic%VrpkSLqi;Em^_`RyEl$ z6a5m_4>@gVXr_HpCk{bfa3(6$>rh+rZqy8pqAqaFJMMdE1B#8xrF2*U3!%z%Fe-wR zQMs`SwFG-Gj_Us^4GrKCDzq;!D<*&BB^$cQhMIXN)If%KPDXuyAu5Mfq6TsZmF?G1 z8&K58mdu$k5B(aLi2FN3X=r3KP|5QPYCqV53jHh8jsHVE?czVN3zx+F^t+%gxB&Cw zX;iNGp4!%)6jj#!Py-x+O3Eb|(oBD+p&L9xh5j?{#bnPcORu5U_BJY{pD`TcKDP+v zL4B_hZo@XH>!tYHB9R+4k#eX=RYzUt+rO#*5;Qt+Kp|a<8u@0_7mlGuejc@Ew^4ik z2hMx8$ewZUsTUlJw?JicZ?8Yma}nzMn^6Nkgc`_s?1cAFk*NOC-VfTKA{p9FBLj`=s1ZA_ zY=+S=oNj#70P>+WjB=*4*$hJ@EUG-ZGUny@r^wLE@NMv|CT>b#3NV$e|+ce zCn4t;4JDWJ-Y)zN>cY9P5F5~V)LQTTV4=K$3iUtO9piqq0S-l7X9_OHU$G|E{A4dO zkyx1iacqHs|MXO({@Tz`4va>HYy#?O_!FkZ75EJvL9P7*)SCW-dC>paLYv>S3hHs& z5>?J4P)jxm$Kp!Vb@F^+;Hv+kG&JL?_%klY)>!MSJytiMzHkGz^ZkX&jaWQ-v@?dI zmL!K~Db$kHM%8<3RE`bvoQ#q5=VM40DCP^eJ6}c59;isnL0xDSs{D3%$Iqe4?JnxV zA5jB{=C>QBKsR|&1FnI(ULVv%Mxr7-$sY*0Ni~N9O0Jbyz{iUR_NM~iL^&JeyPpI=!h1q~IpmL-LY6A7cLIJl7x_KW=MJ3l7Y=tLL zNs}u|!2R!aJD{@s9BO83q6XaDxPY4BOVkbh(E@Hx#qf-a+7T0>u9p>+)U89_2ZK>b zI1O{)EL24Hqe6cUb%CciAD!p{=L|$*3G5yt;Qq4d7c8icV+P#6Q(77y(9aVq;JnAA zu>u{=hiB6AlNnU`1uKO*HBa`Gp$wfF&*Z1Zp<{(=$MB6-05 z#l%9?-*Uf(bvPcDGT?4p4Y42n!B`nz;WjLhD&W5Jy~c6$Gk+6s4&Vk{i~Uju_|c8} z%b3Py&=FM)-B1G=fQ`A~c&~pyJm8$>_#0H#A53clKaUycKSf0#Ub=w01*b$UVHVHA zsHCfiMX?2DQvJ`Np@+yH7zHn(_UfCc(7r-l=mWZCmOkKaEGe)M$1|Y5*Ax}vHmLW6 zE~tUcLgmg*ERJVT=f%oE{c9$PXsB$`p+;B&b)#=lH}2pa?~6Kr5^7`l2{q8)P!T(W zTI)Ng9QoJl$ITdUAHQi(Szi;iLw3$c{i}W_aX=T`hiUPSXCPC+-C{GM>b?P1!%f&y%Pv{7UAKo$!bZOo6{7c8 z2~%aWDrkp_&_dMbdodUOg}QK}>^9(3s8ClxUh(v8P>oI^w zQAu+W6~eoy2>gx8i8rY8f;j^2-vNn++7E`KzPAOHe8*4|{0FrJQF8{|U(qB$k~HLO zr=gMGMN2I0*~d)2}pYV`+&aa28Hy#3>2|oIUi{6b?9T zuzQh!vk1>(TkKtwCE>hFs9d;F%#Oz^9&mp!>4UvEz5;c>WF@G7J?+Yuu%})xJVk#2 z=EH6!Z9t2#Dg8az5L1=18}z|O^jD#-<11|u%!Nw6$+!(Sp=RDSBH--CS(q8WEfWg3 zf8sH?Ou+pQ29uQyI1~AxO*#9*KiG$Uit+*XXTm91h5imy=mQn(2AMDu{XbDN3#(}7 z=S6L~O;P*EY*ab#!Q2=vRLQabm2C#|P&57m2Vv4Gwx%=iSNfZ=AGWR< za5mu;EQS-S*$ob3UHb2^3|6gf1Dc4sUg!vo$~4N?uz^g%o%A=OX5O==_5VVRd~vOS z`?ud7qc*JCwFB-SDow)4^uM4&JE@LcZwsnyZ(szz!HQU@Za{xKHslPUp*NO~s1fF= z7jVjAZ{!4L3zo!u-v*qc*c0{qFIL}jWFkh;{{uUr(;(pf9q-Oqfo}4K0rz)EEm37R z3KQYnMoMDpZ*5~MzxYk;3%O7O>Vs2pHSWOTO)ZpfP)ky|neF+DupIp_SRBhX54e9Y zF%TjV4xPd|U_fO7=cWZI2AtAZ8Pnoe%z~@2D4s{{FR|NMId;R)QVuMnQ5DOzx8$3QTBDPw5GLvn zaDS=X1eNvcQ9Igs)LQ#GS`K8zGW6%6%JK#dz=EA@-&luQ+Mb>5dz(5_{~b7Rodct= zY!@q=Bd8tfB`Tz8yIL|eN6l~~YUT$})so~pwqn+_K5D0H+07y{5S6rRQCsp`)cIw* z+XRPqr~a#R;0Onl?TLHX4<6%DYy26tw)K134d;43#i1N8*~=oa3!Bn^f(muT-ZtQ2 zn4E#FL_Li5es8`+MKFD+kA0yIcIUtZR7gLfB9N}HC1V}TNPi4!k6(kjz+D`N@%q_J z=b@J1E^1;K{%3DQy-;O%%JU(%pwGX*VK-`tdY7Aw+A5c!LVX(bEQmY6W>gUsk#49h zb^~h0mr&=$8yIkZn5~3Lwk4=4@(&8Q|1sMPR1W1E>@E@i{wED3%Q)25dKa~Wilx38;j5d52XmyQnf;r*;s6X8*ntn8fj%c1N+i{gBobpQC5E2 zu{!s6p3q2xg-6?k8e%j0!!Rk{#CrG!RSi|fSfoaw`lnH46?3fps8$m-fk^C#XHmIQ zbet_wN7O@V0fq|GI7UOE_m8&^s^d8N{ZS$GPq3t_jN0?Zqt^Pccl-+~yD=fhr_QjPS%!+h*%>53O&Xs$kO`~Lv|l8A zkJJvDmN0%wt<#JmGuy;fxm`m zG@$VjlVF`W_89GiE9t*OCDp>Y0rz)9A5kM;HqSzM2DR1?PyQ(F+Dkst`u$ldg;e7TYf@PT~amU6$B8;9DH2{ioAX+i;%aY)(kFEa3i~&GopQeud?B!7r$p zwpwA?J`*R?zl?3L!%BOHwT98wT2f^~)k6P4*+!9!yUE80tdzu>t1Y zY&+XnRGDo>4dfPT1B$-Is;2@LqQ3|=u*;}{zuQ9n>%-_oFUca<`pV6ZLr$uiphV<9>JrhhYjm z{~P~q$)9-g5;d5`_(vgKZWhf9*q!3lU~pY7?*4p=Tsz?Pi9 z7nP)G58Cey`{QW(l@A5n|K|KO?&bbYiNgVBAAUh4)7~SNeD81t{o+S02kxRel1rWHL$Lz z$LnI$8s9)|C|^)JUBVNV8_7}Go(}cCP#sl8<1jZaMCHus6V!hi8h1IM5&KWtg<_$S zCIM>XMKK(!pl03${Wu6y<51N3k*I+jz*=|=HP95N>|s^{HIOkFj*+LRe$bO?3cr4S8; z{ub)Qzr7Q_qHYlPjMaM<)ILxMRUO4qp|6i_L{Muw2;CW?);bb(!_}z!{N{NSHK5QH z8anYG)C~SZ)p3-wc03ts<{42pEb3Vkb%D010Sv?{H~|&%i2a1r*ze{l!4 zxoj^msjk=rFXBLsr@k6+ZsT0suKFK%&1R7Qy8Ucd4fS`vhG9QGAA7@oFYpx=(oQ$| zg9%*#8{jK!h*kfz@?C-&@L}A8|DxUpHr}#<{e_D3!rRopLUD=46ijl*9;Yi%$#emK z#oJg1C*8FlQg7il`Zezb+<#U-%6)t9--(qt-s>;hxOQMsCerEwOM~+s+LCQ~6mWjv zyc3V8|8_KLJ+=XCMwLzZC$X?pN^IyFFA=Jil3pK-+s4~m? z)FPV?^-$}Gs)`X$sec`q!2y-kI?to1TFe#z){cEq;$zNLb zHbrg4KVdn%gt|eBSGKclLuLCF)Wp7Gc1-@-B3S{oPlTFy2YPx3MxlOK{0UW7M^PKk z9aP93U@Ux#xPImZt`T?iM{UEa?8S>Jo-Na6-N)LHA`dN7SHOj+;@TN**ofW_dXrK>s@& zfe)||c8MNz|81E4s0gi#5p>_6F5)Qq|BD%PtLHPOrJpNS(5;5rs2sZ=D;RQjumrK~ z0-aGIoPw(BBd8Pap_V3ooS^$t@jO%r%f_{Vx5v!%pQFkxalD{gJwIbt`nRzuR*xTa ze}-IzC+OdZAF><%oWMqW7nKX05(eGS|A-2Go<#P=@z|RF?^qPW69?TKX@Z*ZIP8mY zlLXx#N=IRS`j7B8OqDd~R>fsZPXAqq#yuMGli7)HusZ#$$%F0>CjC4&q8?Iz<0s6U zBIy1(e$JFZ`!6L^1>N5d97ioh-*0SyKcOac5p$zIb0FPo1 z{DQ5pdzzs8pXHs#D)bA62i@O@gissMdDIN!qz$@%Wuq+WnX&~V@C{bPLg_50hF~Z9 zE3F@L;-wF||NeI|)LJLY5Oi~*BDSX=iTar^kkLXIH&f94o$)c${*X7b4WI^U=EE@y zu0*Z<8Pr;r$P#o8WAv;+XBeKv!g~JK%@%ZD7{;U45RrgV|+Ztxa zg!HSSHl&uQ7maSH9WR6#a5icu+=bebZ+OQ8Ik>LsKMM`LR8~WcxQo}ng!=pqD)fDG z+EV@Dc@y<|{Ry=Z70DHJ|6rjGYR!+Ks^J}KtDcZM=>F-~V$|cjWge~{i^c{T9r1VE zjG6MM2dQqV$I2eZ-dhf1==cpEQbD%@Hq=>87qJSrL66t?e0VmbQzus%j9 zVjEX8RC(UUR@k5@^{)_ZD{3LGR?N!mN7N2?1vg^e;&#LPSe3r7gw3ov>KQQ+l^Z*8 z1Ic;|W73~i%9b_~BRIYbl@p&!+xOCiB7*jYg8@EhjN#ZEl@mizZ$6P&0XL$O^Sx)n zGS<)KS;e!RXUKD&=N8X1|Nr?@uMwrJT_`Oov?V+nd-n63;kn-Pq~{aVh7z@$MX(g= zRcyHDOjHuCL{-6VjH>7VeHwahKSPz#XVm+9%<@)VNl+2Uh6-tE)Lvc<^}Us-?`=oj z@DPUKRa6UsTEs4VY8W z?GS1QjZx9I?$W5F9^|aLMyF>UvL5TYJ=M_H<2)8gTb&)W2rXmjfE{5Y)&< zppxlF@AxXz4cDUHf_I}XaMC+|0ktIePy_fIwFK``OBSqd=g0RV+YBOWNi)>3Ej>3XQu$Hu5%p2m z?~gIKzcWM)9E-Zp49tr^p>A*z^@Xdb8T^Tv@F6Nvaq61sJPV;Vw5ndemDlfsir{$E zj<^urzyG_HhHktMwPhYd-S{qQ=6_>pj9SlLP%3$D!uA|b^Q}ECM_~*4e|nazZ#&(5 zR3x`y9{e3Ofq&{#|1)VMX<&8z3+jU%s5QKe+A9CU?3lEnC0jYvz&fH{UWa-81(=oo zHq4B7FdIg1WDzQW`d($sf~^}-|9W_g=YW=A4l0|MqW+WM#ge24XLCaTIFp_V3EbNf7Xh=y)h5yPVgwIH)90-n_fS4 z3wt}RgbMWn)I;VohGVgoR;Eo+GarXq^Ua<|u?YP?QEyD4q^)d3bx{N9gnEuo#PUR7 zKbD~%t&O*V;1&8UF&dv2X>0pInRYgS7N{}~p_XnsX2dnP6wjk3_`mjURfL>HG_)h_ zLv1W~P=#<1MU3ggF$*w{79~w*1&3?p+);;L{8SqBb_ww|xBrM+3 zCeqlmKdPE$<6K;a{7c?Wm0m&jFS%9xp0{e%f8stt_xJqW@C5xteJ!+ia2@?8{etc< zmFE2~=sc$1qQ6;rK+yd)T)u(k6I{vXO9q)$2eZX;!%mDbPfxVh@Me>!e?4T*O|p%}KRM|BinKc(=K_xroGnxB8L)Kf6VOxx3opt89M>Ull_SK~$Ojl+Hnx_=h*3iWKMH_MW*IcmS@7owpN4o6*R zD(b1X1NGwY2da)wpa$>`b)nd^t*nxww(gRstge7cx)z@OPy?Qf+R}HSZhQpYGCfa2 zkKYG)9^d0pJTb>EIBTx`Fu4w=bNmMOz#j90?tf5x3pK!9KiQAx53w)(CG+iRmn_l- zS{&1Iyfx|>FalYUkh7UaHx}zDD%6b^S{V(%AL!3P-5}*6+cGO+6Z+k;EZ;kd`h{bx zCHAgZ74=%a3bod^Q5)7LEQS}B+ET||7IcQG{)^Mdzz4ffp}K=winz;z?*F-T5iCc4 zKQ6$iD=b1QP&;PNm6mifQA;@+^$=TuTB?(%iCspW{|LQhdQj=shESy9jT zN~jq%L%kFB^&ICJ>AAu4Ajamr&{Z0m!9(xBR~$$`_EyV*v8WJELxp-V>ipgK884!; z{QS0{bBGz=M7`22+hMs>^fxQJaoC6B2XGP=-Rb5?$T>_y5x9ezdGcL0v)rhD4GhP& zI1)#qcE;$tZBI{vid+p;*?ouka0V8~L#Vyq|GQ0~C@RP53A$p{}4uC%p*bP zd#sL%+`l!Dl5$|Nsxx?|wr|jXA?X=}eAyl$PoTmP@F*N3Y%4`Jc=`;%!+Qm2r*Q4HK zs+(koC}8oN25 z5#7Rq_#QK0t_zlY^-y2zgG#pX_y_)s(->Iii@fLidB|L{^J-l++oQ^C5SGAksEHmz zRn^rH4b|&o)QCQ#w%!ES%#^6-b_P^r@}LG%9Ce{O7?%OGLzQ8l>$X%wksq&}-%!Vo zqjKva>N?L+_Y1xE8nJKKo}CU=UL{Z)P8HNn*b#NXA5d#Q15@HA?1-nm&kNtQ_l3%+ z8}~(Jdk7V|F{m4_K$1S>?4*%{11C{4`-u9{E8d@!8J4=mh;j05d#|5+#|Cr~mAsEo zOBe4h<;HngQ4x!{XUD6fCeYsN4?{(6E*4e&|4Kt^^Z+%Z*BHcj_id($QLkhL(Z>yn zd&f)uWzX~GsHf*}Op6O}3hqIzdF=U0^$E2G{Tq zK0wv|n#VTd*Qm8j^~AEi04itNp(fA`73y)Q$gD!`jC(OZKEh6z>M8ZFFOH(2wVjOG z;TB?LJctT$oM-lfNg*snKk(c(p0e14{t#6CUqNMcs=tHoUtrFG+K|SflI|4t!K9@Nd-h zKA~S1}y_MQw1Q1Rv~Wu`sGEN}+P04r*g+gZk&R`=S0K z!jz9eXBEd+ezIpp?f-)A|2^+0tj6(cSO7D9CRaGWDYm9R?~4uaKkP_9{A*Buy*K2H zr7@fXWhgR*W4!xNb0^dqRi?dB=TE`ps{h$ER0SJ6e?y(P9~H9OsI`BO%Hk-|!`xp^$48abx2SR* z+>eULCDefLpsL^rs(jy}B9t&em|IoFP|t)qsEw&oHJ=c`a-@$Nvh(j@2BCRa zZd?p?p+>03YCF{T2cQNx9N=BA`^i#t|NY+$G*k{}P+xeAZYa}O zwkAb=o)^<$Rn&#Lq0avSwblz!-}}w$A4etO161S^gj+clMn$#-y8r$E4>VL3Q&DTV z8nyQyMJ3lw)D0e@mcpOb&QFei($9~-V1jhE=D(vN_$O*9USKv1qz`jnKyqPm`fbuv z|4O0-9FV(ES$Pe0qyJDdN|?dEm;p7DMyLx8!EjvVeSQ?j_;`!PEgT<}Da;v1zj$Wb zPY!0W2*k=7=Kg?_KWiw={k>gZ4rl;}QT6;6M#03{EYzt`Yn&JJVRzK$i&3Fmg-W&) zsEE8lmGOn__WfI^NW4asZPXkV>DVE!kpq<^)ll``7UQBm&x=z~Yrhv2k^89g-k`EM zeokAW%$SjWS*(qnP`R@Ml{4p1OZ^bTG33h?=KjVa9hT?7G}MhRp=R~~|A#ShTh{)7 z8qieKfc9Z!{0qY|S00;LEz|(JqarmP_4zc^fHxvl5OR*t&>PGp)Xe@u-S{nPNmAss zH7|ln&gQ5k8jMQHUr{qVjGEaEEQN2e92U%H*BgL3KN1z`?bt~5e};zECTo66x)NBB zemyLSR6tbjCfx2J~uRj#E#cn{oL!L!#EMHIqj#b#|zYOYo-LM}nKusiZ z5$azf&rU-jEQ$J{u4gCI^L!{OLK9F+vjBDeKFoxdQAzd%>-+d)x}st3kKNsh@#@C$ z>o^136c2O%Yx}pToSI&O`kz1}M#(T|6wX2=OR7?~0i{P)$SI6UrfsO1oX0{KENvk# zj`8R>LJg!dR>2=o`^X9J^Lwawzt^ax`mc1zLY6$jk}ESRNh+eA&#h5U$1bQHaSbXW zdr?ovQy78oQOQ@djO_#UQ1w3;b)7M&$WBF-=L#&0Cqgvl(g>Ed8!W)$^fzL4{2Pm5 z@p3kheyBCxfm*u5sGPZqs*X>n@24nlOVj|BY+X@H*b6n0k*FLC&7q-kT94o2ZPdsM zR ziEm*ze!}F+?o>6c&I_TEs3L0PX@v^e0_=wSu^Q&BWqbP&Y()PQHpa}gEi%JVOL_nc z;%h98+3MH?yP%eEI)=1GZl_TO|3ihgR9zeCaMT7AiD_|-clPsYy@h8w@?xP@GbSP5C-bog;JqHT?1QSTU0Xb!+dxiwKP#0SoY^c zl~-xh5>!T=-xPJ-?@%`yh1#&D;4xf=O7b2JsehHjz=pO}PDUlwZ`j?(uV%3d{ko0A z-2bv+K7P;f`#6Z>jhcozAMgTd-#FDQ%>7;QV~j$-L30~Ob5x}IVK!WeD%W!%8k*6+ zs0$=(VH-<+)EYHM)%yrk=%%4&_KWxV0X$3p32KJBTH1}zVsrXeP!lZF%B+f7$`+Ux zL&IpOyf&iN?igx>?{GP$Yi*CyBdDy7+QtT49=phEs>1azA#BjQ)Q3ENB?!W)pl7_z62el^CP;0awE8t(Kr(O0=7V%AMlJ*vcn$fu0#j?9lSNkb=DC!HhFao1|XSq-b z8_<7_J+OSYF#b(I{_qN0)9>DcnflogQLkW6dU0L)S$l`Mzd7yI$6m?4?;Gaq=6l=v zQvca$^!=YD$>RRDXWzo#xIo1LBnzMW2HF}X9K?X=7eyuOz`+*El~|SjVcdubhWsB_ z=Kx;U^R?}hw#i9tD@m2wR#MxxZTr-=ZQHhO+qT{Be)dd$Z@&Lr*X})7v(}n5*!v)- z-p-HD9)XJ7ynf~cyb2dlj>EPu26uYM==SQ>-`sBV!ON6KK<)2(1H7HjdTzp5l+z6K zcE0;@6!yT8B7@BBcF$n*7R(P=5V_(*yq#}441;AT#~SMGd@#`vYD(9`F7T^|jLz!T z!@QmEa?FCAC|4ft?R?mL6sD!zbc8t(CqRwpJxmQ#jr4Z@P@y8+O8GU^He58y+cg+o zgjHen(PnDb!1R=(j4{uGo_u65#1G_Rogz=PDEh4bNrN#4%;d|4)&$jpRVYtLaHSagcF{zAgzI!LA=6)C2AJ71L= z2DQ3x!2tLkCWbMm8D@q$3Clx8pe3vXCqZxc6c&Q7p{63^bQ8h$P;)*D2E&K2y7qta z87Aa?U`HC>L2bu|GtJ!hgXJing?b=KJj?8gVCX}6AZ!Ciz})aF)WMW#wqbs#5to8G z`Hn$-i{=J&{{BD4Tyqyo1Lav(s5$Hkbr3Cva%eZyS$+c^f^T3pxM7~Rs|kDxb+alx z-<*_Fpdz^!%Are8NBe!Kei0Wi)e3PC8Qn%3L!C@*pia2amJ4AV%G;qIJO};Zd#H0F z#zNDc8|I~40Y-tNp>ArkppN9NP4u^7NE({OvK;4v{LFtRS!tA2VP~|F6a^0ZL2Ty-8 zr^$G)$mZ5ze)Whg+cm$SMYaT+QtTSt%1uToc z#jpzPAJ-d$#W$FNorc^cJ+7x@w7UO6olJ=~nh}?Rn%k;SCte*G2q!^>ZZ}j&&q0O$ zo-KcXikR0XZ|B=^k)U4lZMNJEi&H)fi)sHy+HCIEm7!K^8>l%S2DKYzL+z5?P)GGW zs0Wg$Tg>Bm38?Mb7OH(VtOid*IhJgziA;8=DH{i+ZwX9>eb;d^+Ago5JpTpt6zj9i zoQQFuBGDS^X4MI5Ev&KiyI=~+2Vqb694caswwu=nGoa@DBh(;+R?$O~E4gJ&rBf|Fp0edY=0 zHq;{Z+i#{IE7a7ChA*Md0dpjO@R0GQ;xB9h!yPmoTf&@_`#>q)3^jKp4w-G)1$Ll( z8fpOf4;zK$p{BGB)FN&Ib>#Mhn$qb|YilFaRC^AQ@h5WuYE^!+jB~`S;@t2V_2Xet z*yE@%uoo({N1;x*HEEn}n45 z5wH_-TW@(g-~CE`+c4D~Z|CoTQ{44-{x~)IJ@dp9`M!Cg8VM`W?>DRi%ReyoRzG0> zYjG8PXjXHoN8Zj)EKi4xsBiI@BNM}?;9|-To-k6%L!X+5PVeXDgURYpt3AvMGgWb+ z&Vl?;i@FBXV(bkgz=2SUbj%C(zgF)wD!Re>wju6I^Tgs070UE*3Y>21GrTg}Ef4g^ zq2f@BwB>8F$|u9zl$XHj@SbJPH)i#ZgK}h@$7XgyEv_SQHVpgL960k~YRcQ7AAA6V zV3>Diu@#0Ic`H~CdZ3QryHEoQ^WL;agj$4tP=+%=orIp;WV9bEK^>8uU{yF0R)P1S zj>_yG%*e{X)|BhQuJ8m@s0)5H+p8AzqdW@A;A*J;J7H~j0m`xTpPaj)$CZPOJShXU zoti?O{9aOFQnQ6ne^+C$CZFsM+D zhhg9XsGHGZs5P|}Y7Jb4a_lkGz`j8ZDDhwRzXX#1H6h6Y)iDp0fm%?4jiEx=3d*7W zwtXDTNqIWdh|WVr<_FYTiuTVKOb%tIlw}Pl`DXt-CNqu-o&DRP_U$vMn}$E;byKPg zRUU53JE0W3gDGJ=FCS;o6@(f0U+Iw_nE(?FeYhoBbq8Mq6+hSIw{oR70uJ?qIR zRM#zE!{n4*-ad?tm*sE(Ob2z8u7xMy1*j>R<>TYL=Gy=@WpCgq_!Ub2pxe|xftvfb zP>#j&b?QB?BxF>P3Tot;p;mKFsC`=;>SSyH^T4^bd;>}@Zg^uT6|6wH6r2KQ!O}2u z1Rqy1*cWPw4?|7SCm5*xA2XuyFdx)ORut;~-2f`2{h%T=0%`MpHGJGCN&odYdbHwyvRnd6nWU2u(Qtkk?Hs(XMAAwSE9cF^}pd5-8-yBQBWne`ao^7HBd+8eyG*_7{-GUGMMd|3~CYPg?_Ls zRC_yE5)Oj};036M*Jv5d+GuY%8)l{c1XQFwf5>PGQf4x{U=Wmn(NH0s3va-sZ~^R} z*~j^uARvp6^NQ&L)S@ks)$E$yP>XH|Tmu)wTCh?!ALpwcYhY8#xwAWw^tk4c(W(re z!yKihp+DvBFg=_BQ+V<68p`80IgNvHa+#?Mgj%fGp|)Qos7SVh8pr^sgKQGiIk6q; zCU*&@(*FNRMji*`Huw8rIE!)_SR6iw?O>)n<}Nu8YV}@*IzrRuHRWNjI_3LNyCPRU zvweF*Z_4|i&VwURbAJn_(Efi(CK`;E-^{5$R0Ik^9i2^}FYEzzf(?Kf;5ev}?}d`P z1vSEVPzOzf0>)4v3`aR9)Ijq=e{RLfwAnLCyUl zsHxonC3nk1M*IDvt%y_7tlsocH=!Vy6qbTo&8?su>I3y~ItuCq#Z;)1Z!Odjd)(H? zE@e*8^p?bVmP$3Voi^=IAX98&d8HAHZvH72HwAoC8hE8iVd~CNlm| z5zGSf!9h?F*l*ka!nu^AmN)0kT6h5au80-Psy_oWA@CL!fJrNwBeWhYL3tX?4DUnj z-x!t5zRnGEQ?3Vl!s$>aVT{U#b)eS7QmB*iGSqqU1~&F$|HZ885_i9E#P<0>Y z-Kw4NJRKs}@Nxc(?k<#Lm1>$@Fads{ydGABOKX{J_Z@bp9H+K955_{Rou^Q1>l^F~ z)7BwE+W#xasNosZ!I7}8SuFLS7FQR`fzY4wc&Kf-5o$YKfEw9rs9oe;&qO9IR75L4 zwGV)r^O;b3?m>@MrB{7pFs@~Ks3Wv6)MBe<>zl$zlzYSEa5&5W*FYUaw{7_c)BzOO zz&tY+gNi^|TdoJS`kOXj|BoWmhYIa)--c!zC5EXfr-xeI)u9$=dnm_xKpiZjpjQ1n zC<8le`$<@q@*P+Zrfp;*)!K3>RQrNP9`j)FjtVWVyp7GGX$y-{-Ubz+zc3iaYGM>t zgF3jTLe=kuLD1FI+=POmB2^bggsq?)?FQ?^@la3G?>%I60DXfR;XkNF=G)B7WpOCM zwy+uO0?Wf&untVy+&DfQ%HU3@NFIZ_8{URmBj2G060?QbRjHxsJ&njnurJhH&wwf6 za?5j2bNv;{!GtY+_`yluvVq#?iCUSdstL9D20_WKfPQcz41||pQ}`Qt!$z$gJN*7X z87-D^Pz`IKj?7IkC)@_L3*JG^@gFEdQQDaLY*4Ga5LEx#P$O*!`@!x|5&UZT2Wl$9 zwN>QUe@Vz_`&EEiY=fZ`&bH+(wtNQWp#CY8!o=;2L&>2+o*n9lE(H~tIxr8M0iBy1 z)Z6jDq1HsA4%pTH4p(4zPEh;%qU8selybC=Oc4q)L4V2xJDJyf4J`*l?T%$o z_l})VBRy=}@7i{+&gR|`3wmTIDH(ZM04l^ip&~I7YLP62E#MxgZI`l(F`Ng=KwYT% z?obYlg1R})g&E-rm<`^58c39`MsJ3$?0-2>k_v^eg=Jr;MKlrW?l=o7Li?Z&oGVak zCR{hO76M>t$|YbrI2lUs0jN;lhr#eQRAe%AHwRFz?(F|eRFtP8JM0e?iLFp`_yKCp zGxRW?H-&8|4}sb(AE91ydG$2y>7eeWWuP1!4mE(K@FhG6<-nF+CNldxWEA3eP$P@b z+l(kTOi#H!d;`Zo8S34~Y}chwiVi|W>NHe@uD}xT71UH_>uW|@6e<#RpmtLWsHyXG zBO_18Lv5?IFg3gkwF~}28H(G_tOXUul*d<~9C-rA!0%8F3>{$JZkr7ixt~z0 zJ^4W6P)(=^HiBB5ZJ;7P13KUT-$q7raTK|0ds72lzYIjV9e(>U0 z_P;{&i3)|}4=f53jx*b-Axuws0MzPV2c_^P)NXkJcffe#&D>suI$$2bdNAw+AJ<;k z2)2g)6V2^=43wTT6Im>}$=s$wp^7!h%yoLGxy^4`8EP%Ggo;Q%sKqoNYE5i_>)~Oj zdqCI8#?UaRd&@DXMf(eCs-sRZyCb!Sj1-iG*z` zYSGq!+8s@y9PJD>py5zI!M*^_r+jOg8DO93CgPsaWE6^(PzS^gs5v?UwN1QcnBCzA zwV(4t?S_W7zN4)l3pIrsVOn_Jw*Q8Kl;h9zaSefmpdx-8G9~Q4Su7SjYy+cDg}lLhMu?+xVKTUT0rw7ge<5oDMqljXdIAHM__#Jf-(~D~ zxO+M8C%_jgSgdf!DzhC6uJLhAz&>B4G6zHOTJu&)JE)Uv0o0tXgw5b~SPLdyXVy$F zsECY#h2a#~3*La5x+?3L0kmwF+3#nd_WLiWxlg&W3*Z_`zx#3HwU66c_iBN7R zxnL;A8bWQ~7JJzL{$zSmp=~q^R)EW`;18$}yY`wX@`afwW`|nU&7dMO4(cX$9O_D&SMwy|`i^7)Wp&YFZwP-s+Ma~1Y7>7Yk$x@gO?t)B($Mu|y_T@XM4qivh>JAS( zQceUlvawJH%RVT>ub>QmgHjy%s5vnMpazm3>eX}=sC&pXD8ol!UHB0e(f+S+%-jyA zK!tt}%mD90ITZD{Q4klZy(rWaw18^wZ|jFcZQE70ycue0uR%Hd9;)AOD7jcCh=BHg zVlrw-4%LtkPJl(BR`WF&A4WfEc1c<&`HE1Bt|dGGyFkh3IAwNA2dKz+pzbk~p{8aT z^n+WVN13Z+w1~bzjVShM<9TAs9G2x_PTE^Qg?K*H>fQzw;s>@I^^A#BZs<*Y9Vmwz zK{?zDYCuEIF#c#{=24+VvL5Q@a?bJ|>__<>EDzhAHMi5fP;>baj)6(f;g}b%9ic-0 zQD*S1PdeM|KL*0HWz&x-u)YL46+J@_(B6bOC zzV|l=YObT)GHay-)RB4J(iHNqqCIs6J0v3vK;BbL_#vpDy|nbbdp`ah!wJT&)` zSdYztv;~f*{XQge9{#f!^I6V3sO|L&UW7@W8igOAj?%c#49h|1V1gR)7FY`2gjy3R zo}07264d|m+X*W4!(JE%E<^4Ae{h=if8Cd+!xwmxhS;x+$M@k?$^%}T7mqdGm{&YA zp+a{WYEfo<>*IV8(E}G!zG}-o-Ydhg@>G|Mx1gmU)}^w<8+|IxhhI0gn$ zc7HN&!depS<#rrc0gF@q4b`zo7`O9h zGcRC0%Jss!ossQ{>f?6Zgu{IJ{&PYyjoe0I zKUj_O9jMix&DZU`QP>e`#QUJO*GHHi#t-jyK9H;q72=a{Kl}%^M)pTA29rf}JCAPN zq3SQfb}+jqlH1uvi(winj=~i116&H@Mm7%Zg*7P0j^cLypO1F%9_4sZjU(S-TFN=1 z8AFZW9Ljs3wr%a`ZfF0GhD9hJhuTG+$T8f`Z8AS>OhtcNehl?!mMW&(*_MrCxt&)s zLt%B~cET1gMr;$A-j-`&bLt;>@*x-iBPU=@;8-S@lX8!QhU=lG;5jS=6DKnL8$d<&6!eE*p++7r zu_ET-O(QZ|on4>|Z-%|$6R5@4Fo{_UD_~j5PhoqQEvegi)>~|O05+ulF3b#r{7ic% zn4I!BsDo%T)IG(^p8;Xtm5+=+#hZ8=-EWQM0<8+iz)@mGW+=bK*VJ z?KpilvzD4eMP?Z+4FAAsFgUy0IeKqE4LrFghw->I)FNC9wdmf$0x(BTxAW&YU7-vW z%4O!-1A{2ffeGMUm3VSK&_?AaFbSLv@&kz1Hr>kPqBr{ zx}7JKUggZ)@H*^;T&ePA-yeZHDL1d+cAgIcDw=!6DX7;Cohq5d8LqOqSLA{RsecHy z2$xhbCu9Dq>G^fReunb%K6|8e!^&rhf-0M@K=)?Sup2WvBsG_cSt#uM6~{ zVkOjm-2kfY76)pv6@bNIaTo`VgBsCNs1tMt+yoy(Kc-}Q6Vq=;Q?n=! zLhUxsX)>Do*RVb;*UTth3w6SMh1vyanwvSR0b5XB2<1S;7Us5G8Rntf4QfqofQ{jM zsFSryOLOyD2xT~YD~J64D;cfsl8^(zbr@=~ynvefY^_ZshC!9L!&)$68*`g&1|w6R z4z=HxLOnt4gPQ9nP}|U}t+|Ipgo^Zf7)ASk8yU^%Q5Y58g&O%=s6`ae&M*U1gz`Xz zdZw*k1GNZuK=nTbHAT0e9D58k_aC7jjMUzg(?jR;|KeoSVF-)>$3l5N1IB_|U@CYL z%D_jM7l!HJcHRLg05yOrQ2pA#jBq&247bB9@Fi3v5_dH6si5=wUj@lTp`k2{3G2YA zumhAqcPBHFxKIwIfO0esl;cI=ZCDN}^l3Z0otJDC;V#O<;Q?5ri`)6H-h8@pRI?}_ zcV++UF*;Xww`&{~-C$qn)6*=j!M)6OIt}%>9J9B19vBFpQ1p5HTn%Oa~K4*-6}yX%38Mm3XDei8PuG9hYGdN zK+`V(DstIiY*@mw9t@z|1(t@>pzJ+@x_O253^MoqVo;A-Lt%Qj5-POUp%&KzsJZ+E zwe3<2HjAk(%tv`F41}kk^n8ZuA8&}EKhy!02I{=154FfW-N?wmN*D(2hT6ybptj>r zsG~LMQ1j530?NQ(*Z?kvNnrS4=HLm0T8x#UBGDS^;dB7>gY%%)&VIa0~eq|{|;)gM;+nj zdj=k!c*tmu0-)xwDAcO23AJ5XLWQg|RL7Cfxd+(#4Nz<0IP`;$q1KA`NHc&qQ2Rds zYUKH#`WJ`J-~ZJoBM*C7PKO%dR#+0Af*NV;QRbO13v5BTGi(KKLpe}wP>b6O~q*_N3TPT=qt<)qm47q zh{a%S%A;X*_#En}4H|D)94fNqpw5YU~w_M^(c01n_+yQsfzG{kDQ!S>to$vpThWd!+792(U>uKiszsGd;zqZxI z>2Bw9{ctnPD(?tKQhy$5H`JbKj?k&_Ipq_uDBL*9?YafOLme=eXS<#EgaYQcoo~x^ zg88XWGS@_~4%|Vx1#AujJoC&8ijnXE6~EwJcxS%h?geHpXDxI)Z%)03#Td!1MXUuF zW{H`q!b{!G8;cEKWBUJtGhpLoX4m|I;V6e)ZWf_0)S~vpB%^(v25P&MhiPCdTb=^7 zCf36e@F>(;h`PeeeL^VticpKT57c&^05!*3U?98&)535oO*s?ntNmY-Ol}&kLEYt| zuQDOc4W%IVYF0HP%?q`EORaG`f8WyzE}`sNYi>46VKBuzP!1(sXBKZMsH4^cHI)b9 zU-$=B(fsS|IO3J}IOk`R>f6B9A4!9StgkPW>pTE;Y@)Xom`|M)>OJRmxCNzVgBC!%`ga@I{ zg}YFTC+=?Zj_2$Vf+Uin;uKPcxv!qm{7^C(9tta{8mcyv4Nc0Oo$1@&|M z`A@i=KgBM4(!7$o3iSvUbjl2*Gi3F<=6T4>Ba`^Fc_VQTjE{m$XUxb;opn2ZYCQ-} zLT~hT=U^RV~{YBe8y zWFEc#KqoSfjlwP4Jg0R3j%GEQeVxP-WKMiJjRw!z^M|1GTi^0 z+xheSjZnAG^54yaNi(Pj|?MM@i@^z-D1C*gTumQXdr@`D|d|mzF1*p|sDXg#a z!NYo3i*mVezRvlu0&2w1;b~aJ+gCRyk1M*5ud6r}nV=4s9#Em)1(U%yFiaSp3*5fW zT`X33UuW(EV0%_^SzF!{!PnWA&!L-s@gw>=5%h z07i;p1XDq8$_1d-ND*7#1o}|!4fTLA(3ZzTE#_%Z4sC+k&U;{VcpUn|n^E}xkMuL zhL3CZbsVTgmjbF^R;U9jKXf7j)qft8BP*c{uZNP~2D$(7tyL>HsO!zia@QYhENf13q1<`ATm0;XF(bG z0cALBLNn(PphgfAsyzs5JrAKAc?PBD3)G0iB=$AmmVs(70TsDw ziP`_!cJ-*xw(0=2T31_v<4}&Ax8&0w{;FLrp~? zSO(VjkZD6^wPpOIzRvxBD6B*MAJ`n$@-sXLb5)!>d|T+l%aP}Ctcd)=76aKb+hRJwRlHB z8QusLk^N9}eF`>amA-@ee}pQh^wo2R$JIKOc~Hn5=<9qYI~mHew@`~SL27do$^z3< zE(x2!?ocDS4duW;s5KEUjbUNvN4Xu8W8-Z7b{ItYkyFq9OPh%`#;%tN;~>4$uz{hdMx3z|-&&)ClKiHFJCd>K^hQ%8{tq zjHBsbS<1zr*4AX`sZZtu8O>3}?8abM=tp@9)GFNybHT7VOvv*=wbzF_NcuxO<# z+zs_IJV{PpS2fr^@C0*QZDk%S%D>4jeI}J6*&wyqp+q;ucT*E zpC%l)JicG%s;kq36c~BhhAdt&H7gsrdZ>={CK5*khB|9SlZIhqAlE_a%X7e7qq~mw z_UNCE%wVoes9i_Ir(i2oJN zRUV-sD6W8_&?z5E5` zl7EduqeGP!+Wb#7l0H*zj?6(1MwFW4d2EbC=X#Iw%ou)5T~!Py&9@H5p<`{X&B%4O z&J9JT2chkX6Bn!@(~BL8kpLXuYa^6_K51zThwd2+)YFcPlD-Zw8fV&J=rW4VbIq^@ z%3M)h}Hg7GV8}f5FqO>2q6+?|Y6?!W3 ztx(rS8eUNtz@?K=wwzI z3mV-@4bc+|nbZ1TF%zKRy!C#m4WWcCBD9W6sVBp5=%8QT zS4u#~bfG%`psqZ|dTJo=F4<`*h@n)}#kNXcBHI&P{uo+8oj-Y{=jbg+T>%)K`Ulh}$F}pUO!aN&KX|M( zoW`*j-i5LrnmZP0Q98b*t`K$CU`Xm?Lpp>$#Zj09heA?PWTz0(TFCG)@2Y8?QTrh3 zC+Ysbl}28}IFE4?>5vg6MXZJ(jMt;CIL4K-(diUU=3^vo@;z;RRumVezCPsxHZtjv zKSF&0WQ(A4MJUIl>!c&c{2#?gR0Ol*NHHq!+9*gUJNcP7P!}0}fhB->9F9T!@(b#VAivr6pGCf#v0+t3YCF38I1<5jh>ncX8kBrzRCAG8$fy@t*{`-e2t(PaABk)eWFsKk zmi%{|7)E|Jbp^U@_{#!Z;XxZ5^#nw5r>FZ}q8YUaOR7xr)Z5E@vLVZ{Qr?_#)uiq^mtIZzF^Z719%W0cV%4=l{*=`-kNQ-0gaa7WDEb9Z7ma}ia~-ix zp4PA8JZI4kx9{C_RV_A8Y=X z#-i&s7CSX6cehR{@A0MM6h^p~ z4imYmpm;e(645Cdon|9Ek*Fvgvym8N=TCJVkjsF4ePn*1D;@onf~*7G=pP3M^@izJ z>bBE9ocvhoFGOViY;qEjlg4!J)^!5 zbxJ?UFM~cfe~8iTru+tdbLsz)y8KwnPq_|!L!Htobk#*R0S>J2&|w9cel*6#)7&WT z4D}vfc56hPI)}=u+!Of)^s8W%7NgGq8xgf<#rSP>7eJ3vAKD_~yf5V!(ob4R#LW3i zA(%^lGwy@JU_zffl(O+jVl&Vth!ieXg zLusJZ8y_cD>HM!l=U6D;K!?%@7eMd>UiuNXRtPoW>P^S6c5ZhgmyJG~kQo0ntuGZGEk|MjH{i^tGpk<5_bMK!B{vF-?nd{ zoD4@F)4x8Bc0zVAb+Ngo;@D#xoyMjA!D+d5WVYmKcXaF3>RiIs6XA{soFeaSm9K-j z9WQw?VLSgq{v`@VzZRDELcOz3Ym&>!5 z!Wz6QjZhKTpUNIw_c3@wWmpP>-7yl9c+<^EIjFl$eh}@oF+7@nf6({8=`s}^&~uS# z-HB|d9lkQrb{JDRq+TuR?9 zO^F*1eVd_cD*6Mslpfi^y3=mK`@VXW-HDtLa3uHceaiMQ+EVsl&0ZOedM-SnJ@H@#7OUQRmIq5+J|7{Gy^G$ zgQv+WC8Pf!z5aWHGXB2Rbptjp8{O;=uQSS5XNy{|g|rjId0z$_voJo9ix0 z)^ZI&Ip2>lANL^tfsVJ4=kpCGRYN8Xec#j8%Z_Xe5t&M##q=EpPtabGJ~c4>1o?cl zPr`<0C<31u@o{T>04guj&;Ugr>|8xXv6HCpY8P8~>U^yOy{KDnqjuj;h2&GC^9TlK zBdgCfawC`CMq+@G^SHVopwx+L63&e0Qp$&M{znLx4@TW|Douy9*2qQcnB=11#8O*d z3)xyY-q$*zpB&j}Wz*26^ciRF+qzrMuOgXx*8w_}!NYGjumgqH5iG}bk8t@zCH*bI zVGJ&}Bd>&_6sF1f_Ra%F+{g}~F#SqdM~*TO{!<56Yn*6K-F-Vv9rQwB0)kWNxE@8L zX!wb-x3*&qI+SGeFR2SgW(rFBV!RoK-ByY0N2Trx*J1KqkZVuBe>jprjik$V#G`4u z${=fFa~v|x`frTjUK>IQ=b&*X%5NZ`G@G*0XyoEsMQ?~icpH_T%9$rAs^fyDnWUBR(#R%WPm{Ii`oezC^+;-x--%Wmt`Garr)MPC#89<%j6IONPl z3XB}Un`;P7M(7t#grwni_+eqfZZyoo*k(T9NQ7?L&DE1oVNbQU$9pnl-lCG9q$Yka=%M)ZW&Q!$>uB zwYElA!Sb~6B~e#4D|3`cyd`hXVn%?Ghg4Rg;|Gk^K(U+f_Qk=|2xg)4O7ag-{?#gx zbGLC~CJrpOBl|+#V(Pka&9RP+vyLpFe}6lu8tCh#ztDI?_{Sj}k{aSjcpPbs@mmP@ zq0=|ot660=ke^PS(ir5Fnp2Ku+w;+HD}zW$c|K0HrG{j*UlhM}~`ZKa)GBykNx zek1ywgo7pZEIJJbl)mC+UOVa=G}b1+0!3S__ccN~BD8*f=c1&9Fn>sJKshvGtRt5X*_hD!dP|dTqCfalgP725=2Km-b?Q$yoDW^s8HM+D!=~UWUP@ayWJhXKnUl2K^ zn>IivXxn7#Obf4nkn`n~FN>km%vKEAQ{cchbS7bN`aWO5@N9^`R>@V%M0A`SD&jxs zcuA44PRhVa3@S~4+fep|5oV12TdfrhVk`7}y6S7NaKW`lkM?NB7+4%p`QaiOh z5jsf-pAdGXCFGA=g_S7>()o`KaT!LJ8|4{rG7s|C7~v+I9RZ7?XAX7Wt@Aagt4BE_ zx+-F;w(Ro_cGpT8^z{~f2{-|rmRiGSX={lwr99U2RTvJ7(a(&!i)5|xHH@+hqwk82 zHZo4%Ql_hGHaf!6o{TQZL4sq2l{W|6u-vf+K!!;$SjHce>Y?o|Ie4JGYXV8&>=4! zO4Iq14SRD%f>A3?Kv7n%TPQ0*`%PVQ{gHgt|qtPW3@95AECF0qSa5M+#fxofu^oJMz*P zNJn`ya!qlf2KlXnz9x-vaiR|+xkvssoxjp)1+p`d z;VYT0p|zO zK5SIxKO!BkQ@DfIk?Gh9uW)2P2JbN9-sGRsr!(~(ZHG@VJr0jE zBXo69q|jdx{T-i<_nk4K)D#6CoE$+pGWnC%SRtax6m*!m{uScL2Y`j*DY**H`IJLk#w z#Li>N-_gHK4@64d)_8an=A!X8!i$+BrJLltT1T$a_P^;l4pc%Wnsp=r(KvzfKm=Fe z$POH@!{{%PFGX8%>*Nq@_R;j3R5kd0!Ui-8jfso#P80qULcufn6)6i&-qI+w?@6O@ah zxFb9>>PhHi!HG>XOiR7%YYIqHqT7g=kApxg2Gsjp)9K-VW3$ z#q`4dXFOSm19|Nf>_cD~9TOn*#def%eXebkf8fLz^1YCohzvi!<{E{LKeXjQM+EYR zF{D(5x_*?a;^;72w-BzPE;6!dycquxJTHe5rAsib71ZBYSHj2|l+?Ccr=Dd@8*0;w zeJle+YatF5ppQ}@MnY0WqVXF&xzYa!o<@EIa#!_&xDyq=RE(v=GX#}NSOd9m<|yq- zd62!014EEWLp@*jbe*-K>`#4fuBx>0mvXMhAv=M(BIKW;;}>mp(eaD?60Q>T_3(3i z|D}8gkD|QZj^HE?rJ*h)jX`m0>SEiG4P?YhDTv@)YcK=-CzJ1QqnO+Fk58X#^iN^y z`_b>UKAbs5CJb}2od|?Z;Zbyt4lAv(b#OI~EwT}kY(4Vz=-ZaIR5)=29e3=2j@!sQ z!+}M#DP5&~5ze(@^!x;@>qA85KO2Ha@#;59Dp0wGQDs5tEsQ@xxVd#e3Z_wi3E77z z>WJbks_@I<7*7BzSi?TF1(DZ($=08| zXBdr2hfvs;iV~FfL8avw3Q37ErgRTSVwkM+?_c`$C!9(Xtr6vesE>iO)4250nM#YT z+<4mdn`!d6-lO=wDHtjKjf&wlHX;>ii-Y0{7|usWKe&)S!8m$^`Z$bGDG~K|6gB#l zBmcrwyVBA}DHHWqa9}XkXygvkZ=>E2QJTPrucELb4H*?)8eiGS7zrNDaAc%awu#Dl z|Ks!$+B)J;X8J}!-#^>Y%Z|Pf{EHJgk;zB?2X^Xc|0}JhVY3Z;F7m%=RC)xv(xI#^ ze>2stZuHAf{V1z^6>A_J7hisNWwK7zWdQkEuu3@@bsHSZOuv$F8v2$KCC_?{*5x`+ zLFoz|)*+w|v6te=K*}q*E)(($R&fmLXm8}^BKN@>sYJK&IJJ|yB~nION?QTsdc(-* zy9)D2Kk1G7+a`pwn^a|m22rNcX0U9o$WGVR=Fao2QffHZs z=&O-0V)JQ{eTK{|`fkH1{(c^vIgZQEb++ccjT*ug-Qo{%4eq1$jJZFQ(i$Uw_5n3BjV zJ;ga^{hvheIG!h?b8D1Wv5K>jKVW2CqfnIFdabIYHlLMH-@!m7t_jpNv4g0L&Mp|- zZ5>h{4+fP+GMKdFC(8a5G8Zt|DAWjBSmkf2e~MzIDi}Hr+u{8m>dr8dxELsoV@i>D zvtc;p7#LO>$AJ9k6A4{i&^?B$zjbZ~efK#17=LS&ouHv80>ACZ&*60`IuAriTk?I7 z2~YV9#s`q!LFWd@uE+U5c7#i)JB4DUchtuuKNb0c=-A2?k^<>h6df+wX6Q^mVLg^W z6O=8(kpk3br~DkgL3k!q3S>0VaO58blrqznj)kdr6 zxpknP=8V)TltT|tc91^3t!!4Di(uu3GN=}`DfPm^1w^nS1Gs4GcGKsFzVR741u%*h zR9v%RRofyfP#xu`$j8J$N|YVIKouesh{9UrJE{*XLVHK_2HAeasgI5WO8Ibj2{zs_ zi1O%g_J0*d+>wq-X=s>fBa#K-)i!_0Iy!{*yVUixqnJfGC!>0fftvLHO1Y}lwT-$Z zIQ@((5k_O!KBcJdg>I6^b(YLMJX~+XrrI^8(X|;5!!SZ$6pn$Dxx%9?D)OypYlmzF zt|FAnVBjEiUFdrTT_x;@6VsLx!#Np1AslbUH5?r~aeAI!|LsFTENhVLf2lenQA&&P zk91HPX5c!D@&*_SN#8Is8v_OH$W>ngo%hkPocvsjrNDWmY}BvB*}{sf;-3>`c`?u% z;X737kHUsfK4T5+q?n2&&E1eB(dh6&o+LQ((t2821bgPBR zJM%Ar-i+X%6)ugZZ%}a9hHxqEoiUPy5xS96I!eAcP7Jh8zM_6U{mN5U5oZoqN4g{X z&_*RUI=di~(b`F(*Z*JWP#%#Y5Hv=f6(ZDA85ABpTV`aYuWwVwZvP|=XWEkYd6IuQm%fAF>wp8w(6!{}Nf zR|~mVRz^AlFqVvdn~}dwxdnY*VSF$H%7L+u^leMKQhH>H;Y{e1OXt6r4YL}?lOG&P z;ylJ0a{1WNp29#`lqZ2oVPPO`doYxV@^9;03_?5%UG=%P;=o9pDu-Mh>eFKLJvx*U z>?d=EhQBD9F%gL|6;W3o6VCau^yemdJVNjAD9;f42!ulEEnbuedoXx{k9fcW@$xHhfJ8CIONj*QB@1!W` zR?3B3Eu8a4Zx|fdkIY$Y9oPF)bFF6*ER5o{7)p)Ov6THN-$zLRuA+x){ESf$#LMW~ZqI`92t{gzQoVcz{7DHLxVhPx{d*0SewB za06wv5MD^RG35v-RT^bSu-kUbh|F~A8ekwLeX8T!84TUBBkYS@7@XLGo=w)#9>`BO z>Rcr)y+gh{xQ@}5u$AF>p`&ya#r;sK)D2~=xb~yu6r5)b)wGUnz}X?T&dWwF1)NEJ zA)NS0p9VOoGy><2a%I*O==mT!g)10JqS4^(PPhrh#Tb1vl$@{%BcSX8iiV&tk~JI; zCzZO=rt|{YjpWP0N9fvv-WiljkiTpl7>WLn(ghBl|4PsB?kt_dAgmOIMHmHz+qoK8=TzSZMb&J%J_eqnEDR3K z<+_TFNU$;^yo|Ak82Lq6sS(#Hh_|$DdK0lq0TW8%Ed26R(0`+cW=OgzCJ&Vx!kGAKO%UWlS;>=rgz0mV%B03zw ziIo^pN@u`Nc<~AzL#^o46GLrrEH(-YTj&0wFmxJ6|3(;2iovV4Ejjs27>{e6yN<30 zb{fVIiG=#&QKilpsB9bF)2S}Ti=kv83b*21c-pJuj8Yi*ifbQo3+NM{y2Hr-r2G>n z3Q_)T9mq}pnAUh8eS&DeXQPmdK0oxT`m`08MZ*-7T;x*9M2B5m^N<+59WsP{sy8^&`{U&`vQP2L%QR2QsJ7^nh7gk%GQrbj)5}Z6~imrti51>y<>XpvY zwmIaF2P5H0G#c;P#(R`s$a~T!@>vj8+Jq5rMsp7%jo>88>1dzHsJkJv9Ua}MTaSaY z>|m*#3qckpk8Se<)*X`M!8aC$`k1u1-;*qON3l@`ZlF+W*j``!DwuRDkHF;j%{(I zD?&BMZ$&UQZEvW%MOkSU*H6mdX^Tmnw>1=u!;`2VguW!yB}I8kWRGEVDQ#;Q#9lk4 zg>dKv^-7*hG%6LqP-gNwXt;rbG?ZIXpA?1B>6nVP=+@X?xXCJ0-zmt3q^!1n9?m7T zm4~gd4>)x&L=ev4fyp%m1A&Y<0}2k^&B7foXNd&@Av(`|M%VRyLWQh z!e7Cb_H~Ujk6=yXeGaxBhF0|*`2LBfnWx?yEiCVsX@L5g^n)lL$^7eD?l*vL*8(@u ze}c6K@%wuikd}o=H{>GZzRdggS$l@yrR5irtg4GJ8UF?%bG5=Z0IWc6C4{8i9_^f*niB0;m`Yc#L#~DS#|ZCVSUWA2 zNPe_yg7S7d81s3gy-vT0ei?QS1-F%p`3^0+N0WOIPSVCP|8wLOjuh!1f#WXpwnO|^ z^1Dum;L|LAQ7d}74^Vy+a+6sbkEg9DZ)fd94SWxVy8)5*4A1#I4*@;}@bM7pL2j8| ze-ga{&q5r%2E0M!4vmAu)*ZvbyD;!E7V7OGjBSAVB@$wu10f>qFu)Jj<79?|lewdj znSp#aYky$;Sr*gaet`ay5NQMNBJjuX^g`+j$PGc_o+^W-x&%wwvk5T!0Zgw0Xro?R zhVX}Zq&`Km0k2Bhvr7Py zwuNVaXC+S;z+c7qYZzXOP8OL#<_^}_yLmra8!xf$@QmkqMt;|QN3)&Fcp}Evv)~cF zSD#<_K;UG&IgItC0H4L&ZH%QAA^B$=@(1zm1?_;W-2ky&JnJ>_K9QFNTJ`ry zAOD=K0e%F4v`0~zt;b)3$Yn(5qY(Tta$TFlG0?2%4#H3xU}?*-G=#xVVfa$!k3sHw z=8)AMAHcX8pbMHlO{si{F2gOgZkRqhpF?cw@yBS~3bCpQymgoHlWY3^a zVffhwLn87!=5JvAJo?2DIv<=v@csn0;?LlBFn4hsjQ)AndZqq9t|$MA@yQZiB62(m z^O=9OA$+gaW6S)rI)u9cm8P`Zb@cPVmZQA447~jkMeh{3dqtZn`T>m0`zE+ZP zy?qDvr|@#2PN+!`mUgTLc?{6)j5`7DMCJ*NaWceq5}{Lh_CVq+)~{slQH_(JX!{jF zq}_thQl3*#Is*@PF!vTwnWjU%hw%;oHtP330ch)}Tn34Q(ET;*9mxGr6BXQgt1!2N z?b(3rOH95Y-@4MWgzY61k4j#frXX+=!n+zmE=!Yn4#dN)c(fOwZ}I*Rx@{PI4%tI_ zhR}OTN8v<>ej8FpX)-Ok7c6O)SMhRcGLHWT9Wq=2*b)fLV{Owu3RS(IPhecyZe-kK z*mO8^*JEtGj^^>Kt<~~Z(r?l_KZaCZ>r{_NxF4lWI;48O=`IZagZWqL6ZAjDt8WtW zyYP55Bs=L}WNsV4Pe6DKI@>YyQTo@=wb9AbcVlBS^G74|Fyjn5uMq94drY1Y>QbT3NhLhf|Nw_@;@cvWvpT5E57C^c#3a&@Mw%z_oDpx0D+(+jMk zl{W&$u2Zy1p=Sh^>tt20+h=+z{vncqTTz}>>J5uDsNl))iJonv!Iq!CpxNRV%e~>s^BWe4eIt{FRFeF>3k5ZRWmU91pJ0syc%4~ZWjcjH!7`8<6{XS9&#AL2 zwrgOP$h%(2aICfQwkX>zxdPB*D*PxY*BQN!)xgZgLG&wT-YO0#BM{;+aUI;YN{$h@ z-at;BKsJ|{#51D>6qgf zspnGmOvPYvfO7MRAj#!+65tJ zT770tt?Z>d1hd)@VF^xBLJ~YF9?L0Zbx8}UxD*E$=L4&cLnk-P^GugY;*8NM&&i-bnSb9-#Ftk&s4?H99}@9ZtAKEt+%IlC7i zR$e9BG1yqLvGzK0%1hR=s=wD&6%G?CZ&iRVNYvKJ1Sf;mUzgu6^ag8dKhwN_ zYI3Y3c`WBAF$`)KZft&XUbRBT_+dV8`hGFAS(I#(oRl1pF9!+vB`5!Y84$Kg#g%hCS9|P)^qmvt{-h^eMH0!?1>{eUyq#W9YXGQb>md-AW0c@*mIfkb~XC!C^;`=`W zo%d$?piVOZ$y-C)xB-uAxB(q*@pv&>{FO9EWhETi;&UOY3qsCPOmZ%|++za0BP?XZlZ+=JM&96#^X z4%(RBX7+wkLL|E>) zz^b^>HLs2Bh+du8(o&@YRTx+{*P!rmM63atq*Z2eJy_zuVJq?-sstjr&Da_@r%o5| zV9b?AaqwjjPz9k8u$^4jWo`tnJh==XF*tJKo$3Zg_izYK=A*W@A^&hA+ves1`nDV&~#5V`Q$) z%c&Hffc0H&ZSXo;|7Lo6ZPMQKHB+L(*_r9><)Lj{sxCTYgpV(tovUpg-}3hL^OloJ z4)a`H9;@|>wPgA1HhCVG=o&dc3@=yv;>|7J*xI2l*qE`tDva*hsVl~wGiQHp+u;C8 zkajB3(A`E(Es1tso>8lHmT+#Zsql3l9~gXj8zlnD=d>D0#N_Jr>ZwRkNGJ+?x64;O zc}TVUa^6U~j4p)aMvmqmm6>tCvBW#R#D|e;(YmpREJ__0eQZI?oc%^F+uGK#E7ly) zu#Kv3=teHyXu)4I9nn>8rsYgx5)vS4RE@fAF9?&O(--d0wtDHu>GWUj-PGL7+*Bud z6z{gAVq6_0OML&jxu)Y}15H2Lx+ycacFqx*-!8Hi4`0D-m88|smNgbvYdwd#hDT1o zWGASbeZmwc7rW#-E^bRzain>iKg%urjK8h?=&dI*)1!l@w{%2XrnXGz63^;4aC``h z_2l<4c4gn{AFioft*a+f`NAPdfw@J=4N^o(a&&mI(fWs4rbf=wE#qpp|2=bUTRSZO zEhx3F{l-li(;AFixY2X(&CE)\n" "Language-Team: Spanish (Latin America) (http://www.transifex.com/open-edx/edx-platform/language/es_419/)\n" @@ -1413,10 +1413,6 @@ msgstr "Correcto" msgid "incorrect" msgstr "incorrecto" -#: common/lib/capa/capa/inputtypes.py -msgid "partially correct" -msgstr "parcialmente correcto" - #: common/lib/capa/capa/inputtypes.py msgid "incomplete" msgstr "Incompleto" @@ -1439,10 +1435,6 @@ msgstr "Esto es correcto." msgid "This is incorrect." msgstr "Esto es incorrecto." -#: common/lib/capa/capa/inputtypes.py -msgid "This is partially correct." -msgstr "Esto es parcialmente correcto." - #: common/lib/capa/capa/inputtypes.py msgid "This is unanswered." msgstr "Esto no ha sido respondido." @@ -5325,8 +5317,15 @@ msgid "{month} {day}, {year}" msgstr "{day} de {month}, {year}" #: lms/djangoapps/certificates/views/webview.py -msgid "a course of study offered by {partner_name}, through {platform_name}." -msgstr "curso ofrecido por {partner_name}, a través de {platform_name}." +msgid "" +"a course of study offered by {partner_short_name}, an online learning " +"initiative of {partner_long_name} through {platform_name}." +msgstr "" + +#: lms/djangoapps/certificates/views/webview.py +msgid "" +"a course of study offered by {partner_short_name}, through {platform_name}." +msgstr "" #. Translators: Accomplishments describe the awards/certifications obtained by #. students on this platform @@ -5440,16 +5439,14 @@ msgstr "{platform_name} reconoce el siguiente logro al estudiante" #: lms/djangoapps/certificates/views/webview.py msgid "" "This is a valid {platform_name} certificate for {user_name}, who " -"participated in {partner_name} {course_number}" +"participated in {partner_short_name} {course_number}" msgstr "" -"Este es un certificado válido de {platform_name} para el usuario " -"{user_name}, quién participó en el curso {partner_name} {course_number}" #. Translators: This text is bound to the HTML 'title' element of the page #. and appears in the browser title bar #: lms/djangoapps/certificates/views/webview.py -msgid "{partner_name} {course_number} Certificate | {platform_name}" -msgstr "Certificado para {partner_name} {course_number} en {platform_name}" +msgid "{partner_short_name} {course_number} Certificate | {platform_name}" +msgstr "" #. Translators: This text fragment appears after the student's name #. (displayed in a large font) on the certificate @@ -5616,6 +5613,14 @@ msgstr "" "Si su curso no aparece en el panel de control, contacte a " "{payment_support_link}." +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "{course_id} is not a valid course key." +msgstr "" + +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "Course {course_id} does not exist." +msgstr "" + #: lms/djangoapps/course_wiki/tab.py lms/djangoapps/course_wiki/views.py #: lms/templates/wiki/base.html msgid "Wiki" @@ -6170,6 +6175,23 @@ msgstr "Nombre de usuario {user} ya existe." msgid "File is not attached." msgstr "Archivo no adjuntado." +#: lms/djangoapps/instructor/views/api.py +msgid "Could not find problem with this location." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"The problem responses report is being created. To view the status of the " +"report, see Pending Tasks below." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"A problem responses report generation task is already in progress. Check the" +" 'Pending Tasks' table for the status of the task. When completed, the " +"report will be available for download in the table below." +msgstr "" + #: lms/djangoapps/instructor/views/api.py msgid "Invoice number '{num}' does not exist." msgstr "La factura número '{num}' no existe." @@ -6613,6 +6635,10 @@ msgstr "El modo de curso con slug ({mode_slug}) no existe." msgid "CourseMode price updated successfully" msgstr "Se actualizó correctamente el precio para el modo de curso." +#: lms/djangoapps/instructor/views/instructor_dashboard.py +msgid "No end date set" +msgstr "" + #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "Enrollment data is now available in {dashboard_link}." msgstr "Los datos de inscripciones ya están disponibles en {dashboard_link}." @@ -6712,18 +6738,6 @@ msgstr "email externo" msgid "Grades for assignment \"{name}\"" msgstr "Calificaciones para la tarea \"{name}\"" -#: lms/djangoapps/instructor/views/legacy.py -msgid "Found {num} records to dump." -msgstr "Se encontraron {num} registros para exportar." - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Couldn't find module with that urlname." -msgstr "No se ha encontrado ningún módulo con esa url." - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Student state for problem {problem}" -msgstr "Estado del estudiante para el problema {problem}" - #: lms/djangoapps/instructor/views/legacy.py msgid "Grades from {course_id}" msgstr "Calificaciones de {course_id}" @@ -6903,6 +6917,12 @@ msgstr "borrado" msgid "emailed" msgstr "enviado al correo electrónico" +#. Translators: This is a past-tense verb that is inserted into task progress +#. messages as {action}. +#: lms/djangoapps/instructor_task/tasks.py +msgid "generated" +msgstr "generado" + #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -6915,12 +6935,6 @@ msgstr "calificado" msgid "problem distribution graded" msgstr "Distribución de calificaciones del problema" -#. Translators: This is a past-tense verb that is inserted into task progress -#. messages as {action}. -#: lms/djangoapps/instructor_task/tasks.py -msgid "generated" -msgstr "generado" - #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -8607,12 +8621,12 @@ msgid "course_id must be provided" msgstr "Debe suministrar un ID de curso" #: lms/djangoapps/teams/views.py -msgid "The supplied topic id {topic_id} is not valid" -msgstr "El ID de tema proporcionado {topic_id} no es válido" +msgid "text_search and order_by cannot be provided together" +msgstr "" #: lms/djangoapps/teams/views.py -msgid "text_search is not yet supported." -msgstr "text_search actualmente no está soportado" +msgid "The supplied topic id {topic_id} is not valid" +msgstr "El ID de tema proporcionado {topic_id} no es válido" #. Translators: 'ordering' is a string describing a way #. of ordering a list. For example, {ordering} may be @@ -10466,6 +10480,10 @@ msgstr "Ayuda" msgid "Sign Out" msgstr "Cerrar sesión" +#: common/lib/capa/capa/templates/codeinput.html +msgid "{programming_language} editor" +msgstr "" + #: common/templates/license.html msgid "All Rights Reserved" msgstr "Todos los Derechos Reservados" @@ -13181,8 +13199,10 @@ msgid "Section:" msgstr "Sección:" #: lms/templates/courseware/legacy_instructor_dashboard.html -msgid "Problem urlname:" -msgstr "urlname del problema:" +msgid "" +"To download a CSV listing student responses to a given problem, visit the " +"Data Download section of the Instructor Dashboard." +msgstr "" #: lms/templates/courseware/legacy_instructor_dashboard.html msgid "" @@ -15244,6 +15264,20 @@ msgstr "" msgid "Generate Proctored Exam Results Report" msgstr "Generar reporte de resultados para examenes supervisados" +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "" +"To generate a CSV file that lists all student answers to a given problem, " +"enter the location of the problem (from its Staff Debug Info)." +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Problem location: " +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Download a CSV of problem responses" +msgstr "" + #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" "For smaller courses, click to list profile information for enrolled students" @@ -17851,67 +17885,51 @@ msgid "This module is not enabled." msgstr "Este módulo no está habilitado." #: cms/templates/certificates.html -msgid "" -"Upon successful completion of your course, learners receive a certificate to" -" acknowledge their accomplishment. If you are a course team member with the " -"Admin role in Studio, you can configure your course certificate." +msgid "Working with Certificates" msgstr "" -"Al completar con éxito el curso, los alumnos reciben un certificado para " -"reconocer su logro. Si usted es un miembro del equipo de curso con el rol de" -" administrador en Studio, puede configurar los certificados del curso." #: cms/templates/certificates.html msgid "" -"Click {em_start}Add your first certificate{em_end} to add a certificate " -"configuration. Upload the organization logo to be used on the certificate, " -"and specify at least one signatory. You can include up to four signatories " -"for a certificate. You can also upload a signature image file for each " -"signatory. {em_start}Note:{em_end} Signature images are used only for " -"verified certificates. Optionally, specify a different course title to use " -"on your course certificate. You might want to use a different title if, for " -"example, the official course name is too long to display well on a " -"certificate." +"Specify a course title to use on the certificate if the course's official " +"title is too long to be displayed well." msgstr "" -"Haga clic en {em_start}Agregar su primer certificado{em_end} para agregar " -"una configuración de certificados. Cargue el logotipo de la organización " -"para ser utilizado en el certificado, y especifique al menos un signatario. " -"Puede incluir hasta cuatro firmantes de un certificado. También puede cargar" -" un archivo de imagen de la firma de cada signatario. " -"{em_start}Nota:{em_end} Las imágenes de la firma sólo se utilizan para los " -"certificados verificados. Opcionalmente, especifique un título de curso " -"diferente a utilizar en su certificado. Es posible que desee utilizar un " -"título diferente si, por ejemplo, el nombre oficial del curso es demasiado " -"largo para que aparezca completo en el certificado." #: cms/templates/certificates.html msgid "" -"Select a course mode and click {em_start}Preview Certificate{em_end} to " -"preview the certificate that a learner in the selected enrollment track " -"would receive. When the certificate is ready for issuing, click " -"{em_start}Activate.{em_end} To stop issuing an active certificate, click " -"{em_start}Deactivate{em_end}." +"For verified certificates, specify between one and four signatories and " +"upload the associated images." msgstr "" -"Seleccione un modo de curso y haga clic en {em_start}Vista previa de " -"Certificado{em_end} para previsualizar el certificado que un estudiante en " -"el modo de curso seleccionado recibiría. Cuando el certificado esté listo " -"para la expedición, haga clic {em_start}Activar{em_end}. Para detener la " -"emisión de un certificado activo, haga clic en {em_start}Desactivar{em_end}." #: cms/templates/certificates.html msgid "" -" To edit the certificate configuration, hover over the top right corner of " -"the form and click {em_start}Edit{em_end}. To delete a certificate, hover " -"over the top right corner of the form and click the delete icon. In general," -" do not delete certificates after a course has started, because some " -"certificates might already have been issued to learners." +"To edit or delete a certificate before it is activated, hover over the top " +"right corner of the form and select {em_start}Edit{em_end} or the delete " +"icon." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To view a sample certificate, choose a course mode and select " +"{em_start}Preview Certificate{em_end}." +msgstr "" + +#: cms/templates/certificates.html +msgid "Issuing Certificates to Learners" +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To begin issuing certificates, a course team member with the Admin role " +"selects {em_start}Activate{em_end}. Course team members without the Admin " +"role cannot edit or delete an activated certificate." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"{em_start}Do not{em_end} delete certificates after a course has started; " +"learners who have already earned certificates will no longer be able to " +"access them." msgstr "" -"Para editar la configuración del certificado, pase el puntero sobre la " -"esquina superior derecha del formulario y haga clic en " -"{em_start}Editar{em_end}. Para eliminar un certificado, pase el puntero " -"sobre la esquina superior derecha del formulario y haga clic en el icono de " -"eliminación. En general, no elimine los certificados después de que un curso" -" haya iniciado, debido a que algunos certificados pueden ya haber sido " -"emitidos a los alumnos." #: cms/templates/certificates.html msgid "Learn more about certificates" diff --git a/conf/locale/es_419/LC_MESSAGES/djangojs.mo b/conf/locale/es_419/LC_MESSAGES/djangojs.mo index 36fb2892ffdae852f7a3e393f7aee9f876b04f9e..860e179d445404c9d1a1c21a22d312dbfe0924d7 100644 GIT binary patch delta 30267 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 z�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 delta 31470 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 G6a63P;0T}q diff --git a/conf/locale/es_419/LC_MESSAGES/djangojs.po b/conf/locale/es_419/LC_MESSAGES/djangojs.po index d80fae9013..556490dcc1 100644 --- a/conf/locale/es_419/LC_MESSAGES/djangojs.po +++ b/conf/locale/es_419/LC_MESSAGES/djangojs.po @@ -25,6 +25,7 @@ # Lalo Cabrera , 2014 # Luis Ricardo Ruiz , 2013 # Luis Ricardo Ruiz , 2013 +# Mecabotware , 2015 # Natalia, 2013 # Natalia, 2013-2014 # Nuri Plans Toral , 2015 @@ -63,6 +64,7 @@ # This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE. # # Translators: +# Claudio Anibal Barahona Flores , 2015 # Cristian Salamea , 2014-2015 # Giancarlo De Agostini , 2015 # Jonathan Amaya , 2014 @@ -70,6 +72,7 @@ # Juan Camilo Montoya Franco , 2014 # Juan Fernando Villa , 2015 # Juan , 2015 +# Mecabotware , 2015 # Nuri Plans Toral , 2014 # Patricia Colmenares , 2015 # paul ochoa , 2015 @@ -89,14 +92,15 @@ # Juan Camilo Montoya Franco , 2014 # Juan , 2015 # karlman72 , 2014 +# Leandro Bohnhoff , 2015 # Patricia Colmenares , 2015 # UAbierta Universidad de Chile , 2015 msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:17+0000\n" -"PO-Revision-Date: 2015-08-21 02:41+0000\n" +"POT-Creation-Date: 2015-09-04 14:06+0000\n" +"PO-Revision-Date: 2015-09-04 14:08+0000\n" "Last-Translator: Sarina Canelake \n" "Language-Team: Spanish (Latin America) (http://www.transifex.com/open-edx/edx-platform/language/es_419/)\n" "MIME-Version: 1.0\n" @@ -142,8 +146,8 @@ msgstr "Aceptar" #: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js #: cms/static/js/views/modals/base_modal.js #: cms/static/js/views/modals/course_outline_modals.js -#: cms/static/js/views/utils/view_utils.js #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/js/components/utils/view_utils.js #: cms/templates/js/add-xblock-component-menu-problem.underscore #: cms/templates/js/add-xblock-component-menu.underscore #: cms/templates/js/certificate-editor.underscore @@ -154,6 +158,11 @@ msgstr "Aceptar" #: cms/templates/js/group-configuration-editor.underscore #: cms/templates/js/section-name-edit.underscore #: cms/templates/js/xblock-string-field-editor.underscore +#: common/static/common/templates/discussion/new-post.underscore +#: common/static/common/templates/discussion/response-comment-edit.underscore +#: common/static/common/templates/discussion/thread-edit.underscore +#: common/static/common/templates/discussion/thread-response-edit.underscore +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cancel" msgstr "Cancelar" @@ -163,17 +172,6 @@ msgstr "Cancelar" #: cms/static/js/views/manage_users_and_roles.js #: cms/static/js/views/show_textbook.js #: common/static/js/vendor/ova/catch/js/catch.js -#: cms/templates/js/certificate-details.underscore -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-details.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/course-outline.underscore -#: cms/templates/js/course_grade_policy.underscore -#: cms/templates/js/group-configuration-details.underscore -#: cms/templates/js/group-configuration-editor.underscore -#: cms/templates/js/show-textbook.underscore -#: cms/templates/js/signatory-editor.underscore -#: cms/templates/js/xblock-outline.underscore msgid "Delete" msgstr "Borrar" @@ -248,12 +246,10 @@ msgstr "Error" msgid "Save" msgstr "Guardar" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: cms/static/js/views/modals/edit_xblock.js #: common/lib/xmodule/xmodule/js/src/html/edit.js -#: cms/templates/js/signatory-editor.underscore msgid "Close" msgstr "Cerrar" @@ -346,6 +342,8 @@ msgstr "" #: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js #: lms/static/coffee/src/staff_grading/staff_grading.js +#: common/static/common/templates/discussion/thread-response.underscore +#: common/static/common/templates/discussion/thread.underscore #: lms/templates/verify_student/incourse_reverify.underscore msgid "Submit" msgstr "Enviar" @@ -780,18 +778,10 @@ msgstr "Propiedades del documento" msgid "Edit HTML" msgstr "Editar HTML" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js #: common/static/js/vendor/ova/catch/js/catch.js -#: cms/templates/js/certificate-details.underscore -#: cms/templates/js/content-group-details.underscore -#: cms/templates/js/course_info_handouts.underscore -#: cms/templates/js/group-configuration-details.underscore -#: cms/templates/js/show-textbook.underscore -#: cms/templates/js/signatory-details.underscore -#: cms/templates/js/xblock-string-field-editor.underscore msgid "Edit" msgstr "Editar" @@ -1192,11 +1182,9 @@ msgstr "Documento nuevo" msgid "New window" msgstr "Nueva ventana" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js -#: cms/templates/js/paging-header.underscore msgid "Next" msgstr "Siguiente" @@ -1546,12 +1534,9 @@ msgstr "" "La URL que introdujo parece ser un vínculo externo. ¿Desea agregarle el " "prefijo requerido http://?" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js -#: cms/templates/js/signatory-details.underscore -#: cms/templates/js/signatory-editor.underscore msgid "Title" msgstr "Título" @@ -2163,6 +2148,18 @@ msgstr "" msgid "Are you sure you want to delete this response?" msgstr "¿Está seguro de que desea borrar esta respuesta?" +#: common/static/common/js/components/utils/view_utils.js +msgid "Required field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces in this field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces or special characters in this field." +msgstr "" + #: common/static/common/js/components/views/paging_header.js msgid "Showing %(first_index)s out of %(num_items)s total" msgstr "Mostrando %(first_index)s de un total de %(num_items)s " @@ -2329,6 +2326,7 @@ msgstr "Fecha de publicación" #: common/static/js/vendor/ova/catch/js/catch.js #: lms/static/js/courseware/credit_progress.js +#: common/static/common/templates/discussion/forum-actions.underscore #: lms/templates/discovery/facet.underscore #: lms/templates/edxnotes/note-item.underscore msgid "More" @@ -2408,21 +2406,34 @@ msgid "An unexpected error occurred. Please try again." msgstr "Se produjo un error inesperado. Por favor, inténtelo nuevamente." #: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "last activity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "open slots" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/collections/topic.js #: lms/templates/edxnotes/tab-item.underscore msgid "name" msgstr "nombre" -#: lms/djangoapps/teams/static/teams/js/collections/team.js -msgid "open_slots" -msgstr "open_slots" - #. Translators: This refers to the number of teams (a count of how many teams #. there are) #: lms/djangoapps/teams/static/teams/js/collections/topic.js msgid "team count" msgstr "Cantidad de equipos" +#: cms/templates/js/certificate-editor.underscore +#: cms/templates/js/content-group-editor.underscore +#: cms/templates/js/group-configuration-editor.underscore +msgid "Create" +msgstr "Crear" + +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +msgid "Update" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/edit_team.js msgid "Team Name (Required) *" msgstr "Nombre del equipo (Requerido) *" @@ -2491,20 +2502,48 @@ msgstr "La descripción no puede tener más de 300 caracteres." msgid "You are not currently a member of any team." msgstr "Usted no es actualmente miembro de ningún equipo." +#. Translators: "and others" refers to fact that additional members of a team +#. exist that are not displayed. +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "and others" +msgstr "" + +#. Translators: 'date' is a placeholder for a fuzzy, relative timestamp (see: +#. https://github.com/rmm5t/jquery-timeago) +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "Last Activity %(date)s" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/team_card.js msgid "View %(span_start)s %(team_name)s %(span_end)s" msgstr "Ver %(span_start)s %(team_name)s %(span_end)s" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js #: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "An error occurred. Try again." msgstr "Ocurrió un error. Intente nuevamente." -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "Leave this team?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "" +"If you leave, you can no longer post in this team's discussions. Your place " +"will be available to another learner." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/static/js/verify_student/views/reverify_view.js +#: lms/templates/verify_student/review_photos_step.underscore +msgid "Confirm" +msgstr "Confirmar" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "You already belong to another team." msgstr "Usted ya pertenece a otro equipo." -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "This team is full." msgstr "Este equipo está lleno." @@ -2522,6 +2561,10 @@ msgstr "Todos los equipos" msgid "teams" msgstr "equipos" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Teams" +msgstr "Equipos" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "" "See all teams in your course, organized by topic. Join a team to collaborate" @@ -2530,33 +2573,52 @@ msgstr "" "Revise los equipos de su curso, organizados por tema. Únase a un equipo para" " colaborar con otros que estén interesados en los mismos temas." -#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "Teams" -msgstr "Equipos" - #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "My Team" msgstr "Mi equipo" #. Translators: sr_start and sr_end surround text meant only for screen -#. readers. The whole string will be shown to users as "Browse teams" if they -#. are using a screenreader, and "Browse" otherwise. +#. readers. +#. The whole string will be shown to users as "Browse teams" if they are using +#. a +#. screenreader, and "Browse" otherwise. #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Browse %(sr_start)s teams %(sr_end)s" msgstr "Explorar %(sr_start)s equpos %(sr_end)s" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"Create a new team if you can't find existing teams to join, or if you would " -"like to learn with friends you know." +msgid "Team Search" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Showing results for \"%(searchString)s\"" msgstr "" -"Cree un nuevo equipo si no puede encontrar uno existente para unirse o si " -"desea aprender con personas que ya conoce." #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Create a New Team" msgstr "Crear un nuevo equipo" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"Create a new team if you can't find an existing team to join, or if you " +"would like to learn with friends you know." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Edit Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"If you make significant changes, make sure you notify members of the team " +"before making these changes." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Search teams" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "All Topics" msgstr "Todos los temas" @@ -2579,21 +2641,29 @@ msgid_plural "%(team_count)s Teams" msgstr[0] "%(team_count)s Equipo" msgstr[1] "%(team_count)s Equipos" +#: lms/djangoapps/teams/static/teams/js/views/topic_card.js +msgid "Topic" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/topic_card.js msgid "View Teams in the %(topic_name)s Topic" msgstr "Ver equipos en el tema %(topic_name)s" +#. Translators: this string is shown at the bottom of the teams page +#. to find a team to join or else to create a new one. There are three +#. links that need to be included in the message: +#. 1. Browse teams in other topics +#. 2. search teams +#. 3. create a new team +#. Be careful to start each link with the appropriate start indicator +#. (e.g. {browse_span_start} for #1) and finish it with {span_end}. #: lms/djangoapps/teams/static/teams/js/views/topic_teams.js msgid "" -"Try {browse_span_start}browsing all teams{span_end} or " -"{search_span_start}searching team descriptions{span_end}. If you still can't" -" find a team to join, {create_span_start}create a new team in this " +"{browse_span_start}Browse teams in other topics{span_end} or " +"{search_span_start}search teams{span_end} in this topic. If you still can't " +"find a team to join, {create_span_start}create a new team in this " "topic{span_end}." msgstr "" -"Intente {browse_span_start}explorar todos los equipos{span_end} o " -"{search_span_start}buscar descripciones de equipos{span_end}. Sí aún no " -"puede encontrar un equipo para unirse, {create_span_start}cree un nuevo " -"equipo en este tema{span_end}." #: lms/djangoapps/teams/static/teams/js/views/topics.js msgid "All topics" @@ -4082,11 +4152,6 @@ msgstr "Tome una foto de su ID" msgid "Review your info" msgstr "Revise su información" -#: lms/static/js/verify_student/views/reverify_view.js -#: lms/templates/verify_student/review_photos_step.underscore -msgid "Confirm" -msgstr "Confirmar" - #: lms/static/js/verify_student/views/step_view.js msgid "An error has occurred. Please try reloading the page." msgstr "Ocurrió un error. Por favor, intente recargar la página." @@ -4680,7 +4745,7 @@ msgstr "Su archivo ha sido borrado." msgid "Date Added" msgstr "Fecha añadida" -#: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore +#: cms/static/js/views/assets.js msgid "Type" msgstr "Escribir" @@ -5291,19 +5356,6 @@ msgstr "" "La longitud combinada de los campos para la organización y código de la " "librería no puede superar los <%=limit%> caracteres." -#: cms/static/js/views/utils/view_utils.js -msgid "Required field." -msgstr "Campo requerido." - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces in this field." -msgstr "Por favor, no usar espacios o caracteres especiales en este campo." - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces or special characters in this field." -msgstr "" -"Por favor, no utilizar espacios o caracteres especiales en este campo." - #: cms/static/js/views/utils/xblock_utils.js msgid "component" msgstr "componente" @@ -5396,11 +5448,526 @@ msgstr "Acciones" msgid "Due Date" msgstr "Fecha límite de entrega" +#: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore +msgid "Previous" +msgstr "" + #: cms/templates/js/previous-video-upload-list.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore #: lms/templates/verify_student/enrollment_confirmation_step.underscore msgid "Status" msgstr "Estado" +#: common/static/common/templates/image-modal.underscore +msgid "Large" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom In" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom Out" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Page number" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Enter the page number you'd like to quickly navigate to." +msgstr "" + +#: common/static/common/templates/components/paging-header.underscore +msgid "Sorted by" +msgstr "" + +#: common/static/common/templates/components/search-field.underscore +msgid "Clear search" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "DISCUSSION HOME:" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +#: lms/templates/commerce/provider.underscore +#: lms/templates/commerce/receipt.underscore +#: lms/templates/discovery/course_card.underscore +msgid "gettext(" +msgstr "gettext(" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Find discussions" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Focus in on specific topics" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Search for specific posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Sort by date, vote, or comments" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Engage with posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Upvote posts and good responses" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Report Forum Misuse" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Follow posts for updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Receive updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Toggle Notifications Setting" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "" +"Check this box to receive an email digest once a day notifying you about " +"new, unread activity from posts you are following." +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Mark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Unmark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-close.underscore +msgid "Open" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Endorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Unendorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Follow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Unfollow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Pin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Unpin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report abuse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Unreport" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-vote.underscore +msgid "Vote for this post," +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Visible To:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "All Groups" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "" +"Discussion admins, moderators, and TAs can make their posts visible to all " +"students or specify a single cohort." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Title:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add a clear and descriptive title to encourage participation." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Enter your question or comment" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "follow this post" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously to classmates" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add Post" +msgstr "" + +#: common/static/common/templates/discussion/post-user-display.underscore +msgid "Community TA" +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +#: common/static/common/templates/discussion/thread.underscore +msgid "This thread is closed." +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +msgid "View discussion" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Editing comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Update comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#, python-format +msgid "posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Reported" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Editing post" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Edit post title" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Update post" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "answered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "unanswered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Pinned" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "Following" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Staff" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Community TA" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +msgid "fmt" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "" +"%(comments_count)s %(span_sr_open)scomments (%(unread_comments_count)s " +"unread comments)%(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "%(comments_count)s %(span_sr_open)scomments %(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Editing response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Update response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "fmts" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "Add a comment" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "This post is visible only to %(group_name)s." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "This post is visible to everyone." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "%(post_type)s posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Closed" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "Related to: %(courseware_title_linked)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Post type:" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Question" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "" +"Questions raise issues that need answers. Discussions share ideas and start " +"conversations." +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Add a Response" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Post a response:" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Expand discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Collapse discussion" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Topic Area:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Discussion topics; current selection is:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Filter topics" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Add your post to a relevant topic to help others find it." +msgstr "" + +#: common/static/common/templates/discussion/user-profile.underscore +msgid "Active Threads" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates.underscore +msgid "username or email" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "No results" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Course Key" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download URL" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Grade" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Last Updated" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download the user's certificate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Not available" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate the user's certificate" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be created." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be updated." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Enter information to describe your team. You cannot change these details " +"after you create the team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Optional Characteristics" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Help other learners decide whether to join your team by specifying some " +"characteristics for your team. Choose carefully, because fewer people might " +"be interested in joining your team if it seems too restrictive." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Create team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Update team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team creating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team updating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-actions.underscore +msgid "Are you having trouble finding a team to join?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Join Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "New Post" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team Details" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "You are a member of this team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team member profiles" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team capacity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "country" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "language" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Leave Team" +msgstr "" + +#: lms/static/js/fixtures/donation.underscore +#: lms/templates/dashboard/donation.underscore +msgid "Donate" +msgstr "Donar" + #: lms/templates/ccx/schedule.underscore msgid "Expand All" msgstr "Expandir todo" @@ -5441,12 +6008,6 @@ msgstr "Mover Subsección" msgid "Subsection" msgstr "Subsección" -#: lms/templates/commerce/provider.underscore -#: lms/templates/commerce/receipt.underscore -#: lms/templates/discovery/course_card.underscore -msgid "gettext(" -msgstr "gettext(" - #: lms/templates/commerce/provider.underscore #, python-format msgid "%s" @@ -5543,10 +6104,6 @@ msgstr "Marcar el examen como completado" msgid "End My Exam" msgstr "Terminar mi examen" -#: lms/templates/dashboard/donation.underscore -msgid "Donate" -msgstr "Donar" - #: lms/templates/discovery/course_card.underscore msgid "LEARN MORE" msgstr "APRENDER MAS" @@ -6572,6 +7129,16 @@ msgstr "Arrastre y suelte o pulse aquí para subir ficheros de vídeo." msgid "status" msgstr "estado" +#: cms/templates/js/add-xblock-component-button.underscore +msgid "Add Component:" +msgstr "" + +#: cms/templates/js/add-xblock-component-menu-problem.underscore +#: cms/templates/js/add-xblock-component-menu.underscore +#, python-format +msgid "%(type)s Component Template Menu" +msgstr "" + #: cms/templates/js/add-xblock-component-menu-problem.underscore msgid "Common Problem Types" msgstr "Tipos de problemas comunes" @@ -6646,6 +7213,11 @@ msgstr "ID" msgid "Certificate Details" msgstr "Detalles del certificado" +#: cms/templates/js/certificate-details.underscore +#: cms/templates/js/certificate-editor.underscore +msgid "Course Title" +msgstr "" + #: cms/templates/js/certificate-details.underscore #: cms/templates/js/certificate-editor.underscore msgid "Course Title Override" @@ -6692,19 +7264,13 @@ msgstr "" " en los certificados. Dejar vacío para utilizar el título oficial del curso." #: cms/templates/js/certificate-editor.underscore -msgid "Add Signatory" -msgstr "Añadir signatario" +msgid "Add Additional Signatory" +msgstr "" #: cms/templates/js/certificate-editor.underscore msgid "(Up to 4 signatories are allowed for a certificate)" msgstr "(Se permiten hasta 4 signatarios por certificado)" -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/group-configuration-editor.underscore -msgid "Create" -msgstr "Crear" - #: cms/templates/js/certificate-web-preview.underscore msgid "Choose mode" msgstr "Elegir modo" @@ -7142,10 +7708,6 @@ msgstr "No ha añadido aún ningún libro de texto a este curso." msgid "Add your first textbook" msgstr "Añada su primer libro de texto" -#: cms/templates/js/paging-header.underscore -msgid "Previous" -msgstr "Anterior" - #: cms/templates/js/previous-video-upload-list.underscore msgid "Previous Uploads" msgstr "Subidas anteriores" diff --git a/conf/locale/fr/LC_MESSAGES/django.mo b/conf/locale/fr/LC_MESSAGES/django.mo index 410854afc4baabc715908dacd102cc70364652e6..8f581c49f4f60a85ae0f5c32bc330f15793e0da7 100644 GIT binary patch delta 70128 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 diff --git a/conf/locale/fr/LC_MESSAGES/django.po b/conf/locale/fr/LC_MESSAGES/django.po index 6962bfb553..73036b11e1 100644 --- a/conf/locale/fr/LC_MESSAGES/django.po +++ b/conf/locale/fr/LC_MESSAGES/django.po @@ -178,7 +178,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:18+0000\n" +"POT-Creation-Date: 2015-09-04 14:07+0000\n" "PO-Revision-Date: 2015-06-19 17:16+0000\n" "Last-Translator: Xavier Antoviaque \n" "Language-Team: French (http://www.transifex.com/open-edx/edx-platform/language/fr/)\n" @@ -340,6 +340,7 @@ msgstr "Cours" msgid "Display Name" msgstr "Nom d'affichage" +#: common/djangoapps/course_modes/models.py #: lms/templates/courseware/course_about.html msgid "Price" msgstr "Prix" @@ -471,7 +472,7 @@ msgstr "Message à afficher lorsque l'utilisateur est bloqué a l'inscription." #: common/djangoapps/embargo/models.py msgid "The message to show when a user is blocked from accessing a course." -msgstr "" +msgstr "Message à afficher lorsqu'un utilisateur a un accès au cours bloqué." #: common/djangoapps/embargo/models.py msgid "" @@ -635,7 +636,7 @@ msgstr "Diplôme de premier cycle supérieur" #: common/djangoapps/student/models.py msgid "Associate degree" -msgstr "" +msgstr "Niveau associé" #: common/djangoapps/student/models.py msgid "Secondary/high school" @@ -658,15 +659,15 @@ msgstr "Aucun" #: common/djangoapps/student/models.py msgid "{platform_name} Honor Code Certificate for {course_name}" -msgstr "" +msgstr "{platform_name} Certificat sur l'honneur pour {course_name}" #: common/djangoapps/student/models.py msgid "{platform_name} Verified Certificate for {course_name}" -msgstr "" +msgstr "{platform_name} Certificat Vérifié pour {course_name}" #: common/djangoapps/student/models.py msgid "{platform_name} Professional Certificate for {course_name}" -msgstr "" +msgstr "{platform_name} Certificat professionnel {course_name}" #: common/djangoapps/student/models.py msgid "" @@ -683,7 +684,7 @@ msgstr "" #: common/djangoapps/student/models.py msgid "{platform_name} Certificate for {course_name}" -msgstr "" +msgstr "{platform_name} Certificat pour {course_name}" #: common/djangoapps/student/models.py msgid "The ISO 639-1 language code for this language." @@ -1371,10 +1372,6 @@ msgstr "correct" msgid "incorrect" msgstr "incorrect" -#: common/lib/capa/capa/inputtypes.py -msgid "partially correct" -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "incomplete" msgstr "incomplet" @@ -1397,10 +1394,6 @@ msgstr "Ceci est correct." msgid "This is incorrect." msgstr "Ceci est incorrect." -#: common/lib/capa/capa/inputtypes.py -msgid "This is partially correct." -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "This is unanswered." msgstr "" @@ -1455,7 +1448,7 @@ msgstr "" #: common/lib/capa/capa/inputtypes.py msgid "Error running code." -msgstr "" +msgstr "Erreur lors de l'exécution du code." #: common/lib/capa/capa/inputtypes.py msgid "Cannot connect to the queue" @@ -2325,11 +2318,11 @@ msgstr "" #: common/lib/xmodule/xmodule/course_module.py msgid "Date that enrollment for this class is opened" -msgstr "" +msgstr "Date de début des inscriptions pour ce cours" #: common/lib/xmodule/xmodule/course_module.py msgid "Date that enrollment for this class is closed" -msgstr "" +msgstr "Date de fin des inscriptions pour ce cours" #: common/lib/xmodule/xmodule/course_module.py msgid "Start time when this module is visible" @@ -2337,7 +2330,7 @@ msgstr "" #: common/lib/xmodule/xmodule/course_module.py msgid "Date that this class ends" -msgstr "" +msgstr "Date à laquelle se termine ce cours" #: common/lib/xmodule/xmodule/course_module.py msgid "Cosmetic Course Display Price" @@ -3148,7 +3141,7 @@ msgstr "Inscriptions sur invitation par l'équipe pédagogique uniquement." #: common/lib/xmodule/xmodule/course_module.py msgid "Pre-Course Survey Name" -msgstr "Nom de l’Enquête d'Avant Cours " +msgstr "Nom de l’enquête d'avant cours " #: common/lib/xmodule/xmodule/course_module.py msgid "Name of SurveyForm to display as a pre-course survey to the user." @@ -3158,7 +3151,7 @@ msgstr "" #: common/lib/xmodule/xmodule/course_module.py msgid "Pre-Course Survey Required" -msgstr "Enquête d'Avant Cours Requise" +msgstr "Enquête d'avant cours requise" #: common/lib/xmodule/xmodule/course_module.py msgid "" @@ -3574,11 +3567,11 @@ msgstr "" #: common/lib/xmodule/xmodule/library_content_module.py msgid "Invalid Library" -msgstr "" +msgstr "Bibliothèque invalide" #: common/lib/xmodule/xmodule/library_content_module.py msgid "No Library Selected" -msgstr "" +msgstr "Aucune bibliothèque sélectionnée" #: common/lib/xmodule/xmodule/library_root_xblock.py msgid "Enter the name of the library as it should appear in Studio." @@ -3708,7 +3701,7 @@ msgstr "" #: common/lib/xmodule/xmodule/lti_module.py msgid "Request user's username" -msgstr "" +msgstr "Demander le nom de l'utilisateur" #: common/lib/xmodule/xmodule/lti_module.py msgid "" @@ -5088,7 +5081,14 @@ msgid "{month} {day}, {year}" msgstr "" #: lms/djangoapps/certificates/views/webview.py -msgid "a course of study offered by {partner_name}, through {platform_name}." +msgid "" +"a course of study offered by {partner_short_name}, an online learning " +"initiative of {partner_long_name} through {platform_name}." +msgstr "" + +#: lms/djangoapps/certificates/views/webview.py +msgid "" +"a course of study offered by {partner_short_name}, through {platform_name}." msgstr "" #. Translators: Accomplishments describe the awards/certifications obtained by @@ -5188,13 +5188,13 @@ msgstr "" #: lms/djangoapps/certificates/views/webview.py msgid "" "This is a valid {platform_name} certificate for {user_name}, who " -"participated in {partner_name} {course_number}" +"participated in {partner_short_name} {course_number}" msgstr "" #. Translators: This text is bound to the HTML 'title' element of the page #. and appears in the browser title bar #: lms/djangoapps/certificates/views/webview.py -msgid "{partner_name} {course_number} Certificate | {platform_name}" +msgid "{partner_short_name} {course_number} Certificate | {platform_name}" msgstr "" #. Translators: This text fragment appears after the student's name @@ -5351,6 +5351,14 @@ msgid "" "{payment_support_link}." msgstr "" +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "{course_id} is not a valid course key." +msgstr "" + +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "Course {course_id} does not exist." +msgstr "" + #: lms/djangoapps/course_wiki/tab.py lms/djangoapps/course_wiki/views.py #: lms/templates/wiki/base.html msgid "Wiki" @@ -5897,6 +5905,23 @@ msgstr "" msgid "File is not attached." msgstr "" +#: lms/djangoapps/instructor/views/api.py +msgid "Could not find problem with this location." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"The problem responses report is being created. To view the status of the " +"report, see Pending Tasks below." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"A problem responses report generation task is already in progress. Check the" +" 'Pending Tasks' table for the status of the task. When completed, the " +"report will be available for download in the table below." +msgstr "" + #: lms/djangoapps/instructor/views/api.py msgid "Invoice number '{num}' does not exist." msgstr "" @@ -6296,6 +6321,10 @@ msgstr "CourseMode en mode ralenti ({mode_slug}) n'existe pas" msgid "CourseMode price updated successfully" msgstr "Le prix du ​​CourseMode a été correctement mis à jour" +#: lms/djangoapps/instructor/views/instructor_dashboard.py +msgid "No end date set" +msgstr "" + #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "Enrollment data is now available in {dashboard_link}." msgstr "" @@ -6393,18 +6422,6 @@ msgstr "Email externe" msgid "Grades for assignment \"{name}\"" msgstr "Notes pour le travail \"{name}\"" -#: lms/djangoapps/instructor/views/legacy.py -msgid "Found {num} records to dump." -msgstr " A trouvé {num} enregistrements à jeter." - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Couldn't find module with that urlname." -msgstr "Impossible de trouver un module avec cette URL." - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Student state for problem {problem}" -msgstr "Etat de l’étudiant pour le problème {problem}" - #: lms/djangoapps/instructor/views/legacy.py msgid "Grades from {course_id}" msgstr "Notes de {course_id}" @@ -6579,6 +6596,12 @@ msgstr "supprimé" msgid "emailed" msgstr "envoyé par e-mail" +#. Translators: This is a past-tense verb that is inserted into task progress +#. messages as {action}. +#: lms/djangoapps/instructor_task/tasks.py +msgid "generated" +msgstr "" + #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -6591,12 +6614,6 @@ msgstr "noté" msgid "problem distribution graded" msgstr "" -#. Translators: This is a past-tense verb that is inserted into task progress -#. messages as {action}. -#: lms/djangoapps/instructor_task/tasks.py -msgid "generated" -msgstr "" - #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -8118,11 +8135,11 @@ msgid "course_id must be provided" msgstr "" #: lms/djangoapps/teams/views.py -msgid "The supplied topic id {topic_id} is not valid" +msgid "text_search and order_by cannot be provided together" msgstr "" #: lms/djangoapps/teams/views.py -msgid "text_search is not yet supported." +msgid "The supplied topic id {topic_id} is not valid" msgstr "" #. Translators: 'ordering' is a string describing a way @@ -9805,7 +9822,7 @@ msgstr "Numéro du cours" #: cms/templates/course_outline.html #: lms/templates/instructor/instructor_dashboard_2/course_info.html msgid "Course Start Date:" -msgstr "" +msgstr "Date de début du cours :" #: cms/templates/html_error.html lms/templates/module-error.html msgid "Error:" @@ -9916,7 +9933,7 @@ msgstr "Menu du cours" #: cms/templates/widgets/header.html lms/templates/navigation-edx.html #: lms/templates/navigation.html msgid "Account" -msgstr "" +msgstr "Compte" #: cms/templates/widgets/header.html lms/templates/help_modal.html #: lms/templates/static_templates/help.html wiki/plugins/help/wiki_plugin.py @@ -9928,6 +9945,10 @@ msgstr "Aide" msgid "Sign Out" msgstr "Se déconnecter" +#: common/lib/capa/capa/templates/codeinput.html +msgid "{programming_language} editor" +msgstr "" + #: common/templates/license.html msgid "All Rights Reserved" msgstr "Tous droits réservés" @@ -12570,8 +12591,10 @@ msgid "Section:" msgstr "Section :" #: lms/templates/courseware/legacy_instructor_dashboard.html -msgid "Problem urlname:" -msgstr "url de l'exercice :" +msgid "" +"To download a CSV listing student responses to a given problem, visit the " +"Data Download section of the Instructor Dashboard." +msgstr "" #: lms/templates/courseware/legacy_instructor_dashboard.html msgid "" @@ -14379,7 +14402,7 @@ msgstr "Information d'inscription" #. 'audit') #: lms/templates/instructor/instructor_dashboard_2/course_info.html msgid "Number of enrollees (admins, staff, and students) by track" -msgstr "" +msgstr "Nombre d'inscrits (admins, staff, and students) par mode" #: lms/templates/instructor/instructor_dashboard_2/course_info.html msgid "Audit" @@ -14403,7 +14426,7 @@ msgstr "Nom d'affichage du cours :" #: lms/templates/instructor/instructor_dashboard_2/course_info.html msgid "Course End Date:" -msgstr "" +msgstr "Date de fin du cours" #: lms/templates/instructor/instructor_dashboard_2/course_info.html msgid "Has the course started?" @@ -14423,7 +14446,7 @@ msgstr "Le cours est-il terminé ?" #: lms/templates/instructor/instructor_dashboard_2/course_info.html msgid "Number of sections:" -msgstr "" +msgstr "Nombre de sections:" #: lms/templates/instructor/instructor_dashboard_2/course_info.html msgid "Grade Cutoffs:" @@ -14480,6 +14503,11 @@ msgid "" "background, meaning it is OK to navigate away from this page while your " "report is generating." msgstr "" +"Pour les cours à grande échelle, la création des rapports peut prendre " +"plusieurs heures. Quand la création du rapport est achevée, un lien incluant" +" la date et l'heure de la création est affiché dans le tableau ci-dessous. " +"Ces rapports sont créés en tâche de fond, cela signifie qu'il est possible " +"de naviguer dans d'autres pages en parallèle de la création des rapports." #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" @@ -14519,6 +14547,20 @@ msgstr "" msgid "Generate Proctored Exam Results Report" msgstr "" +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "" +"To generate a CSV file that lists all student answers to a given problem, " +"enter the location of the problem (from its Staff Debug Info)." +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Problem location: " +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Download a CSV of problem responses" +msgstr "" + #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" "For smaller courses, click to list profile information for enrolled students" @@ -15218,13 +15260,15 @@ msgstr "Importer CSV" #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Batch Beta Tester Addition" -msgstr "Ajout par des bêta testeurs par lots" +msgstr "Ajout de bêta testeurs" #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "" "Note: Users must have an activated {platform_name} account before they can " "be enrolled as beta testers." msgstr "" +"Note: Les utilisateurs doivent avoir activé leur compte {platform_name} " +"avant de pouvoir être ajouté en bêta testeur." #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "" @@ -15252,14 +15296,14 @@ msgstr "Supprimer des bêta-testeurs" #. users can be added to. #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Course Team Management" -msgstr "" +msgstr "Gestion de l'équipe du cours" #. Translators: an "Administrator Group" is a group, such as Course Staff, #. that #. users can be added to. #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Select a course team role:" -msgstr "" +msgstr "Sélectionner un rôle:" #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Getting available lists..." @@ -15279,10 +15323,16 @@ msgid "" "all course data. Staff also have access to your course in Studio and " "Insights. You can only give course team roles to enrolled users." msgstr "" +"Les membres de l'équipe avec le rôle Équipe pédagogique aident à la gestion " +"du cours. L'équipe pédagogique peut inscrire et désinscrire des " +"participants, ainsi que modifier les notes aux exercices et accéder à " +"l'ensemble des données du cours. L'équipe pédagogique a également accès au " +"cours dans Studio. Vous ne pouvez affecter des rôles que pour les " +"utilisateurs inscrits au cours." #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Add Staff" -msgstr "Ajouter à l‘équipe" +msgstr "Ajouter à Équipe pédagogique" #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "" @@ -15292,10 +15342,15 @@ msgid "" " to manage course team membership. You can only give course team roles to " "enrolled users." msgstr "" +"Les membres de l'équipe avec le rôle Admin aident à la gestion du cours. Ils" +" peuvent également effectuer toutes les actions comme l'Équipe pédagogique, " +"mais aussi ajouter ou supprimer des membres Admin, gérer les rôles de " +"modérations des forums, l'ajout de bêta-testeurs. Vous ne pouvez affecter " +"des rôles que pour les utilisateurs inscrits au cours." #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Add Admin" -msgstr "" +msgstr "Ajouter un Admin" #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Beta Testers" @@ -15307,6 +15362,10 @@ msgid "" "sure that the content works, but have no additional privileges. You can only" " give course team roles to enrolled users." msgstr "" +"Les Bêta-testeurs peuvent voir le contenu du cours avant les autres " +"participants. Ils peuvent ainsi s'assurer que le contenu fonctionne, mais ne" +" disposent pas de permissions supplémentaires. Vous ne pouvez affecter de " +"rôle uniquement à des utilisateurs inscrits." #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Add Beta Tester" @@ -15324,6 +15383,12 @@ msgid "" "moderation roles to manage course team membership. You can only give course " "team roles to enrolled users." msgstr "" +"Les Administrateurs de discussions peuvent modifier et supprimer tous les " +"post, les dénonciations abusives, fermer et réouvrir des sujets, indiquer " +"des réponses et voir les posts de toutes les cohortes. Leur posts sont " +"marqués comme 'Équipe pédagogique'. Ils peuvent aussi modifier les rôles de " +"modérations des utilisateurs. Vous pouvez donner un rôle d'équipe uniquement" +" à des utilisateurs inscrits au cours." #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Add Discussion Admin" @@ -15341,6 +15406,12 @@ msgid "" " by adding or removing discussion moderation roles. You can only give course" " team roles to enrolled users." msgstr "" +"Les Modérateurs de discussions peuvent modifier et supprimer tous les post, " +"les dénonciations abusives, fermer et réouvrir des sujets, indiquer des " +"réponses et voir les posts de toutes les cohortes. Leur posts sont marqués " +"comme 'Équipe pédagogique'. Ils ne peuvent pas modifier les rôles de " +"modérations des utilisateurs. Vous pouvez donner un rôle d'équipe uniquement" +" à des utilisateurs inscrits au cours." #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Add Moderator" @@ -15358,10 +15429,16 @@ msgid "" "from all cohorts. Their posts are marked as 'Community TA'. You can only " "give course team roles to enrolled users." msgstr "" +"Les Assistants peuvent modifier et supprimer tous les post, les " +"dénonciations abusives, fermer et réouvrir des sujets, indiquer des réponses" +" et voir les posts de toutes les cohortes. Leur posts sont marqués comme " +"'Assistants'. Ils ne peuvent pas modifier les rôles de modérations des " +"utilisateurs. Vous pouvez donner un rôle d'équipe uniquement à des " +"utilisateurs inscrits au cours." #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Add Community TA" -msgstr "Ajouter un Community TA" +msgstr "Ajouter un Assistant" #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "CCX Coaches" @@ -16568,7 +16645,7 @@ msgstr "Se connecter ou s'inscrire" #: lms/templates/student_profile/learner_profile.html msgid "Learner Profile" -msgstr "" +msgstr "Profil de participant" #. Translators: this section lists all the third-party authentication #. providers @@ -16614,7 +16691,7 @@ msgstr "Enquête Utilisateur" #: lms/templates/survey/survey.html msgid "Pre-Course Survey" -msgstr "" +msgstr "Enquête d'avant-cours " #: lms/templates/survey/survey.html msgid "" @@ -16623,6 +16700,9 @@ msgid "" " use of {platform_name} only. It will not be linked to your public profile " "in any way." msgstr "" +"Vous pourrez démarrer votre cours une fois rempli le formulaire suivant. Les" +" champs obligatoires sont signalés par une astérisque (*). Ces informations " +"sont utilisées uniquement par {platform_name}." #: lms/templates/survey/survey.html msgid "You are missing the following required fields:" @@ -16669,7 +16749,7 @@ msgstr "" #: lms/templates/verify_student/incourse_reverify.html msgid "Re-Verify for {course_name}" -msgstr "" +msgstr "Re-Vérification pour {course_name}" #: lms/templates/verify_student/missed_deadline.html msgid "Verification Deadline Has Passed" @@ -16984,41 +17064,50 @@ msgid "This module is not enabled." msgstr "" #: cms/templates/certificates.html -msgid "" -"Upon successful completion of your course, learners receive a certificate to" -" acknowledge their accomplishment. If you are a course team member with the " -"Admin role in Studio, you can configure your course certificate." +msgid "Working with Certificates" msgstr "" #: cms/templates/certificates.html msgid "" -"Click {em_start}Add your first certificate{em_end} to add a certificate " -"configuration. Upload the organization logo to be used on the certificate, " -"and specify at least one signatory. You can include up to four signatories " -"for a certificate. You can also upload a signature image file for each " -"signatory. {em_start}Note:{em_end} Signature images are used only for " -"verified certificates. Optionally, specify a different course title to use " -"on your course certificate. You might want to use a different title if, for " -"example, the official course name is too long to display well on a " -"certificate." +"Specify a course title to use on the certificate if the course's official " +"title is too long to be displayed well." msgstr "" #: cms/templates/certificates.html msgid "" -"Select a course mode and click {em_start}Preview Certificate{em_end} to " -"preview the certificate that a learner in the selected enrollment track " -"would receive. When the certificate is ready for issuing, click " -"{em_start}Activate.{em_end} To stop issuing an active certificate, click " -"{em_start}Deactivate{em_end}." +"For verified certificates, specify between one and four signatories and " +"upload the associated images." msgstr "" #: cms/templates/certificates.html msgid "" -" To edit the certificate configuration, hover over the top right corner of " -"the form and click {em_start}Edit{em_end}. To delete a certificate, hover " -"over the top right corner of the form and click the delete icon. In general," -" do not delete certificates after a course has started, because some " -"certificates might already have been issued to learners." +"To edit or delete a certificate before it is activated, hover over the top " +"right corner of the form and select {em_start}Edit{em_end} or the delete " +"icon." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To view a sample certificate, choose a course mode and select " +"{em_start}Preview Certificate{em_end}." +msgstr "" + +#: cms/templates/certificates.html +msgid "Issuing Certificates to Learners" +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To begin issuing certificates, a course team member with the Admin role " +"selects {em_start}Activate{em_end}. Course team members without the Admin " +"role cannot edit or delete an activated certificate." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"{em_start}Do not{em_end} delete certificates after a course has started; " +"learners who have already earned certificates will no longer be able to " +"access them." msgstr "" #: cms/templates/certificates.html @@ -17494,6 +17583,9 @@ msgid "" "date. When you configure a subsection, you can also set the grading policy " "and due date." msgstr "" +"Sélectionnez l'icône Configuration pour une section ou une sous-section pour" +" définir sa date de publication. Lorsque vous configurez une sous-section, " +"vous pouvez également définir le type de devoir et la date d'échéance." #: cms/templates/course_outline.html msgid "Changing the content students see" diff --git a/conf/locale/fr/LC_MESSAGES/djangojs.mo b/conf/locale/fr/LC_MESSAGES/djangojs.mo index 4a7947aedb828c7dda272cb8e76f2355776a232d..f755a7a2603373d417a2d71fcacd034b73fd3f9c 100644 GIT binary patch delta 24148 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 delta 24347 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\n" "Language-Team: French (http://www.transifex.com/open-edx/edx-platform/language/fr/)\n" "MIME-Version: 1.0\n" @@ -157,8 +157,8 @@ msgstr "OK" #: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js #: cms/static/js/views/modals/base_modal.js #: cms/static/js/views/modals/course_outline_modals.js -#: cms/static/js/views/utils/view_utils.js #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/js/components/utils/view_utils.js #: cms/templates/js/add-xblock-component-menu-problem.underscore #: cms/templates/js/add-xblock-component-menu.underscore #: cms/templates/js/certificate-editor.underscore @@ -169,6 +169,11 @@ msgstr "OK" #: cms/templates/js/group-configuration-editor.underscore #: cms/templates/js/section-name-edit.underscore #: cms/templates/js/xblock-string-field-editor.underscore +#: common/static/common/templates/discussion/new-post.underscore +#: common/static/common/templates/discussion/response-comment-edit.underscore +#: common/static/common/templates/discussion/thread-edit.underscore +#: common/static/common/templates/discussion/thread-response-edit.underscore +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cancel" msgstr "Annuler" @@ -178,17 +183,6 @@ msgstr "Annuler" #: cms/static/js/views/manage_users_and_roles.js #: cms/static/js/views/show_textbook.js #: common/static/js/vendor/ova/catch/js/catch.js -#: cms/templates/js/certificate-details.underscore -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-details.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/course-outline.underscore -#: cms/templates/js/course_grade_policy.underscore -#: cms/templates/js/group-configuration-details.underscore -#: cms/templates/js/group-configuration-editor.underscore -#: cms/templates/js/show-textbook.underscore -#: cms/templates/js/signatory-editor.underscore -#: cms/templates/js/xblock-outline.underscore msgid "Delete" msgstr "Supprimer" @@ -263,12 +257,10 @@ msgstr "Erreur" msgid "Save" msgstr "Enregistrer" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: cms/static/js/views/modals/edit_xblock.js #: common/lib/xmodule/xmodule/js/src/html/edit.js -#: cms/templates/js/signatory-editor.underscore msgid "Close" msgstr "Fermer" @@ -358,6 +350,8 @@ msgstr "Votre résultat n'est pas suffisant pour passer à l'étape suivante." #: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js #: lms/static/coffee/src/staff_grading/staff_grading.js +#: common/static/common/templates/discussion/thread-response.underscore +#: common/static/common/templates/discussion/thread.underscore #: lms/templates/verify_student/incourse_reverify.underscore msgid "Submit" msgstr "Soumettre" @@ -790,18 +784,10 @@ msgstr "Propriétés du document" msgid "Edit HTML" msgstr "Editer le code HTML" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js #: common/static/js/vendor/ova/catch/js/catch.js -#: cms/templates/js/certificate-details.underscore -#: cms/templates/js/content-group-details.underscore -#: cms/templates/js/course_info_handouts.underscore -#: cms/templates/js/group-configuration-details.underscore -#: cms/templates/js/show-textbook.underscore -#: cms/templates/js/signatory-details.underscore -#: cms/templates/js/xblock-string-field-editor.underscore msgid "Edit" msgstr "Éditer" @@ -1555,12 +1541,9 @@ msgstr "" "L'URL que vous avez entrée semble être un lien externe. Voulez-vous ajouter " "le préfixe http:// requis ?" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js -#: cms/templates/js/signatory-details.underscore -#: cms/templates/js/signatory-editor.underscore msgid "Title" msgstr "Titre" @@ -2187,6 +2170,18 @@ msgstr "" msgid "Are you sure you want to delete this response?" msgstr "Voulez-vous vraiment supprimer cette réponse ?" +#: common/static/common/js/components/utils/view_utils.js +msgid "Required field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces in this field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces or special characters in this field." +msgstr "" + #: common/static/common/js/components/views/paging_header.js msgid "Showing %(first_index)s out of %(num_items)s total" msgstr "%(first_index)s sur %(num_items)s au total" @@ -2352,6 +2347,7 @@ msgstr "Date de l'envoi" #: common/static/js/vendor/ova/catch/js/catch.js #: lms/static/js/courseware/credit_progress.js +#: common/static/common/templates/discussion/forum-actions.underscore #: lms/templates/discovery/facet.underscore #: lms/templates/edxnotes/note-item.underscore msgid "More" @@ -2431,21 +2427,34 @@ msgid "An unexpected error occurred. Please try again." msgstr "" #: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "last activity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "open slots" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/collections/topic.js #: lms/templates/edxnotes/tab-item.underscore msgid "name" msgstr "nom" -#: lms/djangoapps/teams/static/teams/js/collections/team.js -msgid "open_slots" -msgstr "" - #. Translators: This refers to the number of teams (a count of how many teams #. there are) #: lms/djangoapps/teams/static/teams/js/collections/topic.js msgid "team count" msgstr "total équipe" +#: cms/templates/js/certificate-editor.underscore +#: cms/templates/js/content-group-editor.underscore +#: cms/templates/js/group-configuration-editor.underscore +msgid "Create" +msgstr "Créer" + +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +msgid "Update" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/edit_team.js msgid "Team Name (Required) *" msgstr "" @@ -2470,6 +2479,7 @@ msgid "Language" msgstr "Langue" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "" "The language that team members primarily use to communicate with each other." msgstr "" @@ -2480,6 +2490,7 @@ msgid "Country" msgstr "Pays" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "The country that team members primarily identify with." msgstr "" @@ -2512,20 +2523,48 @@ msgstr "" msgid "You are not currently a member of any team." msgstr "" +#. Translators: "and others" refers to fact that additional members of a team +#. exist that are not displayed. +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "and others" +msgstr "" + +#. Translators: 'date' is a placeholder for a fuzzy, relative timestamp (see: +#. https://github.com/rmm5t/jquery-timeago) +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "Last Activity %(date)s" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/team_card.js msgid "View %(span_start)s %(team_name)s %(span_end)s" msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js #: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "An error occurred. Try again." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "Leave this team?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "" +"If you leave, you can no longer post in this team's discussions. Your place " +"will be available to another learner." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/static/js/verify_student/views/reverify_view.js +#: lms/templates/verify_student/review_photos_step.underscore +msgid "Confirm" +msgstr "Confirmer" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "You already belong to another team." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "This team is full." msgstr "" @@ -2543,37 +2582,62 @@ msgstr "" msgid "teams" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Teams" +msgstr "Équipes" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "" "See all teams in your course, organized by topic. Join a team to collaborate" " with other learners who are interested in the same topic as you are." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "Teams" -msgstr "Équipes" - #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "My Team" msgstr "" #. Translators: sr_start and sr_end surround text meant only for screen -#. readers. The whole string will be shown to users as "Browse teams" if they -#. are using a screenreader, and "Browse" otherwise. +#. readers. +#. The whole string will be shown to users as "Browse teams" if they are using +#. a +#. screenreader, and "Browse" otherwise. #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Browse %(sr_start)s teams %(sr_end)s" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"Create a new team if you can't find existing teams to join, or if you would " -"like to learn with friends you know." +msgid "Team Search" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Showing results for \"%(searchString)s\"" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Create a New Team" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"Create a new team if you can't find an existing team to join, or if you " +"would like to learn with friends you know." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Edit Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"If you make significant changes, make sure you notify members of the team " +"before making these changes." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Search teams" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "All Topics" msgstr "" @@ -2596,15 +2660,27 @@ msgid_plural "%(team_count)s Teams" msgstr[0] "%(team_count)s Equipe" msgstr[1] "%(team_count)s Équipes" +#: lms/djangoapps/teams/static/teams/js/views/topic_card.js +msgid "Topic" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/topic_card.js msgid "View Teams in the %(topic_name)s Topic" msgstr "Voir les équipes du sujet %(topic_name)s" +#. Translators: this string is shown at the bottom of the teams page +#. to find a team to join or else to create a new one. There are three +#. links that need to be included in the message: +#. 1. Browse teams in other topics +#. 2. search teams +#. 3. create a new team +#. Be careful to start each link with the appropriate start indicator +#. (e.g. {browse_span_start} for #1) and finish it with {span_end}. #: lms/djangoapps/teams/static/teams/js/views/topic_teams.js msgid "" -"Try {browse_span_start}browsing all teams{span_end} or " -"{search_span_start}searching team descriptions{span_end}. If you still can't" -" find a team to join, {create_span_start}create a new team in this " +"{browse_span_start}Browse teams in other topics{span_end} or " +"{search_span_start}search teams{span_end} in this topic. If you still can't " +"find a team to join, {create_span_start}create a new team in this " "topic{span_end}." msgstr "" @@ -4073,11 +4149,6 @@ msgstr "Prenez une photo de votre pièce d'identité" msgid "Review your info" msgstr "Vérifiez vos informations" -#: lms/static/js/verify_student/views/reverify_view.js -#: lms/templates/verify_student/review_photos_step.underscore -msgid "Confirm" -msgstr "Confirmer" - #: lms/static/js/verify_student/views/step_view.js msgid "An error has occurred. Please try reloading the page." msgstr "Une erreur est survenue. Essayez de rafraîchir la page." @@ -4591,6 +4662,7 @@ msgstr "" #: cms/static/js/models/settings/course_details.js msgid "The course end date must be later than the course start date." msgstr "" +"La date de fin du cours doit être postérieure à la date de début du cours." #: cms/static/js/models/settings/course_details.js msgid "The course start date must be later than the enrollment start date." @@ -4669,7 +4741,7 @@ msgstr "Votre fichier a été supprimé." msgid "Date Added" msgstr "Date ajoutée" -#: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore +#: cms/static/js/views/assets.js msgid "Type" msgstr "Type" @@ -5252,19 +5324,6 @@ msgstr "" "La longueur totale des champs organisation et codes de bibliothèque ne doit " "pas dépasser <%=limit%> caractères." -#: cms/static/js/views/utils/view_utils.js -msgid "Required field." -msgstr "Champ requis." - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces in this field." -msgstr "Merci de ne pas utiliser d'espace dans ce champ." - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces or special characters in this field." -msgstr "" -"Merci de ne pas utiliser d'espace ou de caractère spécial dans ce champ." - #: cms/static/js/views/utils/xblock_utils.js msgid "component" msgstr "composant" @@ -5356,11 +5415,526 @@ msgstr "Actions" msgid "Due Date" msgstr "Date d'échéance" +#: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore +msgid "Previous" +msgstr "" + #: cms/templates/js/previous-video-upload-list.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore #: lms/templates/verify_student/enrollment_confirmation_step.underscore msgid "Status" msgstr "Statut" +#: common/static/common/templates/image-modal.underscore +msgid "Large" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom In" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom Out" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Page number" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Enter the page number you'd like to quickly navigate to." +msgstr "" + +#: common/static/common/templates/components/paging-header.underscore +msgid "Sorted by" +msgstr "" + +#: common/static/common/templates/components/search-field.underscore +msgid "Clear search" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "DISCUSSION HOME:" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +#: lms/templates/commerce/provider.underscore +#: lms/templates/commerce/receipt.underscore +#: lms/templates/discovery/course_card.underscore +msgid "gettext(" +msgstr "gettext(" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Find discussions" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Focus in on specific topics" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Search for specific posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Sort by date, vote, or comments" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Engage with posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Upvote posts and good responses" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Report Forum Misuse" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Follow posts for updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Receive updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Toggle Notifications Setting" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "" +"Check this box to receive an email digest once a day notifying you about " +"new, unread activity from posts you are following." +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Mark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Unmark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-close.underscore +msgid "Open" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Endorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Unendorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Follow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Unfollow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Pin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Unpin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report abuse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Unreport" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-vote.underscore +msgid "Vote for this post," +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Visible To:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "All Groups" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "" +"Discussion admins, moderators, and TAs can make their posts visible to all " +"students or specify a single cohort." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Title:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add a clear and descriptive title to encourage participation." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Enter your question or comment" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "follow this post" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously to classmates" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add Post" +msgstr "" + +#: common/static/common/templates/discussion/post-user-display.underscore +msgid "Community TA" +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +#: common/static/common/templates/discussion/thread.underscore +msgid "This thread is closed." +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +msgid "View discussion" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Editing comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Update comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#, python-format +msgid "posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Reported" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Editing post" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Edit post title" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Update post" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "answered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "unanswered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Pinned" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "Following" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Staff" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Community TA" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +msgid "fmt" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "" +"%(comments_count)s %(span_sr_open)scomments (%(unread_comments_count)s " +"unread comments)%(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "%(comments_count)s %(span_sr_open)scomments %(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Editing response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Update response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "fmts" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "Add a comment" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "This post is visible only to %(group_name)s." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "This post is visible to everyone." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "%(post_type)s posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Closed" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "Related to: %(courseware_title_linked)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Post type:" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Question" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "" +"Questions raise issues that need answers. Discussions share ideas and start " +"conversations." +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Add a Response" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Post a response:" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Expand discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Collapse discussion" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Topic Area:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Discussion topics; current selection is:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Filter topics" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Add your post to a relevant topic to help others find it." +msgstr "" + +#: common/static/common/templates/discussion/user-profile.underscore +msgid "Active Threads" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates.underscore +msgid "username or email" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "No results" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Course Key" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download URL" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Grade" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Last Updated" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download the user's certificate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Not available" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate the user's certificate" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be created." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be updated." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Enter information to describe your team. You cannot change these details " +"after you create the team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Optional Characteristics" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Help other learners decide whether to join your team by specifying some " +"characteristics for your team. Choose carefully, because fewer people might " +"be interested in joining your team if it seems too restrictive." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Create team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Update team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team creating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team updating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-actions.underscore +msgid "Are you having trouble finding a team to join?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Join Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "New Post" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team Details" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "You are a member of this team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team member profiles" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team capacity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "country" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "language" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Leave Team" +msgstr "" + +#: lms/static/js/fixtures/donation.underscore +#: lms/templates/dashboard/donation.underscore +msgid "Donate" +msgstr "Faire un don" + #: lms/templates/ccx/schedule.underscore msgid "Expand All" msgstr "" @@ -5401,12 +5975,6 @@ msgstr "" msgid "Subsection" msgstr "" -#: lms/templates/commerce/provider.underscore -#: lms/templates/commerce/receipt.underscore -#: lms/templates/discovery/course_card.underscore -msgid "gettext(" -msgstr "gettext(" - #: lms/templates/commerce/provider.underscore #, python-format msgid "%s" @@ -5503,10 +6071,6 @@ msgstr "" msgid "End My Exam" msgstr "" -#: lms/templates/dashboard/donation.underscore -msgid "Donate" -msgstr "Faire un don" - #: lms/templates/discovery/course_card.underscore msgid "LEARN MORE" msgstr "EN SAVOIR PLUS" @@ -6483,6 +7047,16 @@ msgstr "Glisser déposer ou cliquer ici pour importer des fichiers vidéo." msgid "status" msgstr "statut" +#: cms/templates/js/add-xblock-component-button.underscore +msgid "Add Component:" +msgstr "" + +#: cms/templates/js/add-xblock-component-menu-problem.underscore +#: cms/templates/js/add-xblock-component-menu.underscore +#, python-format +msgid "%(type)s Component Template Menu" +msgstr "" + #: cms/templates/js/add-xblock-component-menu-problem.underscore msgid "Common Problem Types" msgstr "Types d'exercices classiques" @@ -6557,6 +7131,11 @@ msgstr "Identifiant" msgid "Certificate Details" msgstr "" +#: cms/templates/js/certificate-details.underscore +#: cms/templates/js/certificate-editor.underscore +msgid "Course Title" +msgstr "" + #: cms/templates/js/certificate-details.underscore #: cms/templates/js/certificate-editor.underscore msgid "Course Title Override" @@ -6601,19 +7180,13 @@ msgid "" msgstr "" #: cms/templates/js/certificate-editor.underscore -msgid "Add Signatory" +msgid "Add Additional Signatory" msgstr "" #: cms/templates/js/certificate-editor.underscore msgid "(Up to 4 signatories are allowed for a certificate)" msgstr "" -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/group-configuration-editor.underscore -msgid "Create" -msgstr "Créer" - #: cms/templates/js/certificate-web-preview.underscore msgid "Choose mode" msgstr "" @@ -7055,10 +7628,6 @@ msgstr "Vous n'avez encore ajouté aucun manuel à ce cours." msgid "Add your first textbook" msgstr "Ajouter votre premier manuel" -#: cms/templates/js/paging-header.underscore -msgid "Previous" -msgstr "" - #: cms/templates/js/previous-video-upload-list.underscore msgid "Previous Uploads" msgstr "" diff --git a/conf/locale/he/LC_MESSAGES/django.mo b/conf/locale/he/LC_MESSAGES/django.mo index d3279a7da96bb890ea9e17c150052fc524501d63..69147e60565d05fe00b33ddbdcb9af07d4c7bdbf 100644 GIT binary patch delta 23 ecmca;aM55x1`n5|u7Qbyp^24&`Q{>?``iFs7zaE6 delta 23 ecmca;aM55x1`n5ou92aFp^25D#pWWO``iFs3_ diff --git a/conf/locale/he/LC_MESSAGES/django.po b/conf/locale/he/LC_MESSAGES/django.po index c4747d6637..bfb133a9ef 100644 --- a/conf/locale/he/LC_MESSAGES/django.po +++ b/conf/locale/he/LC_MESSAGES/django.po @@ -61,7 +61,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:18+0000\n" +"POT-Creation-Date: 2015-09-04 14:07+0000\n" "PO-Revision-Date: 2015-05-28 20:00+0000\n" "Last-Translator: Nadav Stark \n" "Language-Team: Hebrew (http://www.transifex.com/open-edx/edx-platform/language/he/)\n" @@ -1215,10 +1215,6 @@ msgstr "" msgid "incorrect" msgstr "" -#: common/lib/capa/capa/inputtypes.py -msgid "partially correct" -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "incomplete" msgstr "" @@ -1241,10 +1237,6 @@ msgstr "" msgid "This is incorrect." msgstr "" -#: common/lib/capa/capa/inputtypes.py -msgid "This is partially correct." -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "This is unanswered." msgstr "" @@ -4550,7 +4542,14 @@ msgid "{month} {day}, {year}" msgstr "" #: lms/djangoapps/certificates/views/webview.py -msgid "a course of study offered by {partner_name}, through {platform_name}." +msgid "" +"a course of study offered by {partner_short_name}, an online learning " +"initiative of {partner_long_name} through {platform_name}." +msgstr "" + +#: lms/djangoapps/certificates/views/webview.py +msgid "" +"a course of study offered by {partner_short_name}, through {platform_name}." msgstr "" #. Translators: Accomplishments describe the awards/certifications obtained by @@ -4650,13 +4649,13 @@ msgstr "" #: lms/djangoapps/certificates/views/webview.py msgid "" "This is a valid {platform_name} certificate for {user_name}, who " -"participated in {partner_name} {course_number}" +"participated in {partner_short_name} {course_number}" msgstr "" #. Translators: This text is bound to the HTML 'title' element of the page #. and appears in the browser title bar #: lms/djangoapps/certificates/views/webview.py -msgid "{partner_name} {course_number} Certificate | {platform_name}" +msgid "{partner_short_name} {course_number} Certificate | {platform_name}" msgstr "" #. Translators: This text fragment appears after the student's name @@ -4813,6 +4812,14 @@ msgid "" "{payment_support_link}." msgstr "" +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "{course_id} is not a valid course key." +msgstr "" + +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "Course {course_id} does not exist." +msgstr "" + #: lms/djangoapps/course_wiki/tab.py lms/djangoapps/course_wiki/views.py #: lms/templates/wiki/base.html msgid "Wiki" @@ -5333,6 +5340,23 @@ msgstr "" msgid "File is not attached." msgstr "" +#: lms/djangoapps/instructor/views/api.py +msgid "Could not find problem with this location." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"The problem responses report is being created. To view the status of the " +"report, see Pending Tasks below." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"A problem responses report generation task is already in progress. Check the" +" 'Pending Tasks' table for the status of the task. When completed, the " +"report will be available for download in the table below." +msgstr "" + #: lms/djangoapps/instructor/views/api.py msgid "Invoice number '{num}' does not exist." msgstr "" @@ -5719,6 +5743,10 @@ msgstr "" msgid "CourseMode price updated successfully" msgstr "" +#: lms/djangoapps/instructor/views/instructor_dashboard.py +msgid "No end date set" +msgstr "" + #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "Enrollment data is now available in {dashboard_link}." msgstr "" @@ -5816,18 +5844,6 @@ msgstr "" msgid "Grades for assignment \"{name}\"" msgstr "" -#: lms/djangoapps/instructor/views/legacy.py -msgid "Found {num} records to dump." -msgstr "" - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Couldn't find module with that urlname." -msgstr "" - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Student state for problem {problem}" -msgstr "" - #: lms/djangoapps/instructor/views/legacy.py msgid "Grades from {course_id}" msgstr "" @@ -5991,6 +6007,12 @@ msgstr "" msgid "emailed" msgstr "" +#. Translators: This is a past-tense verb that is inserted into task progress +#. messages as {action}. +#: lms/djangoapps/instructor_task/tasks.py +msgid "generated" +msgstr "" + #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -6003,12 +6025,6 @@ msgstr "" msgid "problem distribution graded" msgstr "" -#. Translators: This is a past-tense verb that is inserted into task progress -#. messages as {action}. -#: lms/djangoapps/instructor_task/tasks.py -msgid "generated" -msgstr "" - #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -7392,6 +7408,7 @@ msgid "Optional language the team uses as ISO 639-1 code." msgstr "" #: lms/djangoapps/teams/plugins.py +#: lms/djangoapps/teams/templates/teams/teams.html msgid "Teams" msgstr "" @@ -7404,11 +7421,11 @@ msgid "course_id must be provided" msgstr "" #: lms/djangoapps/teams/views.py -msgid "The supplied topic id {topic_id} is not valid" +msgid "text_search and order_by cannot be provided together" msgstr "" #: lms/djangoapps/teams/views.py -msgid "text_search is not yet supported." +msgid "The supplied topic id {topic_id} is not valid" msgstr "" #. Translators: 'ordering' is a string describing a way @@ -9112,6 +9129,10 @@ msgstr "" msgid "Sign Out" msgstr "" +#: common/lib/capa/capa/templates/codeinput.html +msgid "{programming_language} editor" +msgstr "" + #: common/templates/license.html msgid "All Rights Reserved" msgstr "" @@ -11605,7 +11626,9 @@ msgid "Section:" msgstr "" #: lms/templates/courseware/legacy_instructor_dashboard.html -msgid "Problem urlname:" +msgid "" +"To download a CSV listing student responses to a given problem, visit the " +"Data Download section of the Instructor Dashboard." msgstr "" #: lms/templates/courseware/legacy_instructor_dashboard.html @@ -13377,6 +13400,20 @@ msgstr "" msgid "Generate Proctored Exam Results Report" msgstr "" +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "" +"To generate a CSV file that lists all student answers to a given problem, " +"enter the location of the problem (from its Staff Debug Info)." +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Problem location: " +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Download a CSV of problem responses" +msgstr "" + #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" "For smaller courses, click to list profile information for enrolled students" @@ -15674,41 +15711,50 @@ msgid "This module is not enabled." msgstr "" #: cms/templates/certificates.html -msgid "" -"Upon successful completion of your course, learners receive a certificate to" -" acknowledge their accomplishment. If you are a course team member with the " -"Admin role in Studio, you can configure your course certificate." +msgid "Working with Certificates" msgstr "" #: cms/templates/certificates.html msgid "" -"Click {em_start}Add your first certificate{em_end} to add a certificate " -"configuration. Upload the organization logo to be used on the certificate, " -"and specify at least one signatory. You can include up to four signatories " -"for a certificate. You can also upload a signature image file for each " -"signatory. {em_start}Note:{em_end} Signature images are used only for " -"verified certificates. Optionally, specify a different course title to use " -"on your course certificate. You might want to use a different title if, for " -"example, the official course name is too long to display well on a " -"certificate." +"Specify a course title to use on the certificate if the course's official " +"title is too long to be displayed well." msgstr "" #: cms/templates/certificates.html msgid "" -"Select a course mode and click {em_start}Preview Certificate{em_end} to " -"preview the certificate that a learner in the selected enrollment track " -"would receive. When the certificate is ready for issuing, click " -"{em_start}Activate.{em_end} To stop issuing an active certificate, click " -"{em_start}Deactivate{em_end}." +"For verified certificates, specify between one and four signatories and " +"upload the associated images." msgstr "" #: cms/templates/certificates.html msgid "" -" To edit the certificate configuration, hover over the top right corner of " -"the form and click {em_start}Edit{em_end}. To delete a certificate, hover " -"over the top right corner of the form and click the delete icon. In general," -" do not delete certificates after a course has started, because some " -"certificates might already have been issued to learners." +"To edit or delete a certificate before it is activated, hover over the top " +"right corner of the form and select {em_start}Edit{em_end} or the delete " +"icon." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To view a sample certificate, choose a course mode and select " +"{em_start}Preview Certificate{em_end}." +msgstr "" + +#: cms/templates/certificates.html +msgid "Issuing Certificates to Learners" +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To begin issuing certificates, a course team member with the Admin role " +"selects {em_start}Activate{em_end}. Course team members without the Admin " +"role cannot edit or delete an activated certificate." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"{em_start}Do not{em_end} delete certificates after a course has started; " +"learners who have already earned certificates will no longer be able to " +"access them." msgstr "" #: cms/templates/certificates.html diff --git a/conf/locale/he/LC_MESSAGES/djangojs.mo b/conf/locale/he/LC_MESSAGES/djangojs.mo index b535c98d18b25e6d2aed8e72e8023c0057250cad..87a15378ee8317e2e6d0e32940d09fdaec76b386 100644 GIT binary patch delta 38 lcmaFO{hE7&2s4+Zu7Qbyp^24&*\n" "Language-Team: Hebrew (http://www.transifex.com/open-edx/edx-platform/language/he/)\n" "MIME-Version: 1.0\n" @@ -91,8 +91,8 @@ msgstr "" #: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js #: cms/static/js/views/modals/base_modal.js #: cms/static/js/views/modals/course_outline_modals.js -#: cms/static/js/views/utils/view_utils.js #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/js/components/utils/view_utils.js #: cms/templates/js/add-xblock-component-menu-problem.underscore #: cms/templates/js/add-xblock-component-menu.underscore #: cms/templates/js/certificate-editor.underscore @@ -103,6 +103,11 @@ msgstr "" #: cms/templates/js/group-configuration-editor.underscore #: cms/templates/js/section-name-edit.underscore #: cms/templates/js/xblock-string-field-editor.underscore +#: common/static/common/templates/discussion/new-post.underscore +#: common/static/common/templates/discussion/response-comment-edit.underscore +#: common/static/common/templates/discussion/thread-edit.underscore +#: common/static/common/templates/discussion/thread-response-edit.underscore +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cancel" msgstr "" @@ -123,6 +128,7 @@ msgstr "" #: cms/templates/js/show-textbook.underscore #: cms/templates/js/signatory-editor.underscore #: cms/templates/js/xblock-outline.underscore +#: common/static/common/templates/discussion/forum-action-delete.underscore msgid "Delete" msgstr "" @@ -203,6 +209,8 @@ msgstr "" #: cms/static/js/views/modals/edit_xblock.js #: common/lib/xmodule/xmodule/js/src/html/edit.js #: cms/templates/js/signatory-editor.underscore +#: common/static/common/templates/image-modal.underscore +#: common/static/common/templates/discussion/forum-action-close.underscore msgid "Close" msgstr "" @@ -292,6 +300,8 @@ msgstr "" #: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js #: lms/static/coffee/src/staff_grading/staff_grading.js +#: common/static/common/templates/discussion/thread-response.underscore +#: common/static/common/templates/discussion/thread.underscore #: lms/templates/verify_student/incourse_reverify.underscore msgid "Submit" msgstr "" @@ -726,6 +736,7 @@ msgstr "" #: cms/templates/js/show-textbook.underscore #: cms/templates/js/signatory-details.underscore #: cms/templates/js/xblock-string-field-editor.underscore +#: common/static/common/templates/discussion/forum-action-edit.underscore msgid "Edit" msgstr "" @@ -813,9 +824,11 @@ msgstr "" msgid "Formats" msgstr "" +#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/templates/image-modal.underscore msgid "Fullscreen" msgstr "" @@ -1131,6 +1144,8 @@ msgstr "" #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js #: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore msgid "Next" msgstr "" @@ -1840,6 +1855,7 @@ msgstr "" #: common/static/coffee/src/discussion/utils.js #: common/static/coffee/src/discussion/views/discussion_thread_list_view.js #: common/static/coffee/src/discussion/views/discussion_topic_menu_view.js +#: common/static/common/templates/discussion/pagination.underscore msgid "…" msgstr "" @@ -2014,6 +2030,8 @@ msgid "Your post will be discarded." msgstr "" #: common/static/coffee/src/discussion/views/response_comment_show_view.js +#: common/static/common/templates/discussion/post-user-display.underscore +#: common/static/common/templates/discussion/profile-thread.underscore msgid "anonymous" msgstr "" @@ -2029,6 +2047,18 @@ msgstr "" msgid "Are you sure you want to delete this response?" msgstr "" +#: common/static/common/js/components/utils/view_utils.js +msgid "Required field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces in this field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces or special characters in this field." +msgstr "" + #: common/static/common/js/components/views/paging_header.js msgid "Showing %(first_index)s out of %(num_items)s total" msgstr "" @@ -2194,6 +2224,7 @@ msgstr "" #: common/static/js/vendor/ova/catch/js/catch.js #: lms/static/js/courseware/credit_progress.js +#: common/static/common/templates/discussion/forum-actions.underscore #: lms/templates/discovery/facet.underscore #: lms/templates/edxnotes/note-item.underscore msgid "More" @@ -2212,6 +2243,8 @@ msgid "Public" msgstr "" #: common/static/js/vendor/ova/catch/js/catch.js +#: common/static/common/templates/components/search-field.underscore +#: lms/djangoapps/support/static/support/templates/certificates.underscore msgid "Search" msgstr "" @@ -2273,13 +2306,16 @@ msgid "An unexpected error occurred. Please try again." msgstr "" #: lms/djangoapps/teams/static/teams/js/collections/team.js -#: lms/djangoapps/teams/static/teams/js/collections/topic.js -#: lms/templates/edxnotes/tab-item.underscore -msgid "name" +msgid "last activity" msgstr "" #: lms/djangoapps/teams/static/teams/js/collections/team.js -msgid "open_slots" +msgid "open slots" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/collections/topic.js +#: lms/templates/edxnotes/tab-item.underscore +msgid "name" msgstr "" #. Translators: This refers to the number of teams (a count of how many teams @@ -2288,6 +2324,17 @@ msgstr "" msgid "team count" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: cms/templates/js/certificate-editor.underscore +#: cms/templates/js/content-group-editor.underscore +#: cms/templates/js/group-configuration-editor.underscore +msgid "Create" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +msgid "Update" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/edit_team.js msgid "Team Name (Required) *" msgstr "" @@ -2312,6 +2359,7 @@ msgid "Language" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "" "The language that team members primarily use to communicate with each other." msgstr "" @@ -2322,6 +2370,7 @@ msgid "Country" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "The country that team members primarily identify with." msgstr "" @@ -2354,20 +2403,48 @@ msgstr "" msgid "You are not currently a member of any team." msgstr "" +#. Translators: "and others" refers to fact that additional members of a team +#. exist that are not displayed. +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "and others" +msgstr "" + +#. Translators: 'date' is a placeholder for a fuzzy, relative timestamp (see: +#. https://github.com/rmm5t/jquery-timeago) +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "Last Activity %(date)s" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/team_card.js msgid "View %(span_start)s %(team_name)s %(span_end)s" msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js #: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "An error occurred. Try again." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "Leave this team?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "" +"If you leave, you can no longer post in this team's discussions. Your place " +"will be available to another learner." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/static/js/verify_student/views/reverify_view.js +#: lms/templates/verify_student/review_photos_step.underscore +msgid "Confirm" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "You already belong to another team." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "This team is full." msgstr "" @@ -2386,13 +2463,13 @@ msgid "teams" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"See all teams in your course, organized by topic. Join a team to collaborate" -" with other learners who are interested in the same topic as you are." +msgid "Teams" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "Teams" +msgid "" +"See all teams in your course, organized by topic. Join a team to collaborate" +" with other learners who are interested in the same topic as you are." msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js @@ -2400,22 +2477,47 @@ msgid "My Team" msgstr "" #. Translators: sr_start and sr_end surround text meant only for screen -#. readers. The whole string will be shown to users as "Browse teams" if they -#. are using a screenreader, and "Browse" otherwise. +#. readers. +#. The whole string will be shown to users as "Browse teams" if they are using +#. a +#. screenreader, and "Browse" otherwise. #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Browse %(sr_start)s teams %(sr_end)s" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"Create a new team if you can't find existing teams to join, or if you would " -"like to learn with friends you know." +msgid "Team Search" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Showing results for \"%(searchString)s\"" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Create a New Team" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"Create a new team if you can't find an existing team to join, or if you " +"would like to learn with friends you know." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Edit Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"If you make significant changes, make sure you notify members of the team " +"before making these changes." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Search teams" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "All Topics" msgstr "" @@ -2438,15 +2540,27 @@ msgid_plural "%(team_count)s Teams" msgstr[0] "" msgstr[1] "" +#: lms/djangoapps/teams/static/teams/js/views/topic_card.js +msgid "Topic" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/topic_card.js msgid "View Teams in the %(topic_name)s Topic" msgstr "" +#. Translators: this string is shown at the bottom of the teams page +#. to find a team to join or else to create a new one. There are three +#. links that need to be included in the message: +#. 1. Browse teams in other topics +#. 2. search teams +#. 3. create a new team +#. Be careful to start each link with the appropriate start indicator +#. (e.g. {browse_span_start} for #1) and finish it with {span_end}. #: lms/djangoapps/teams/static/teams/js/views/topic_teams.js msgid "" -"Try {browse_span_start}browsing all teams{span_end} or " -"{search_span_start}searching team descriptions{span_end}. If you still can't" -" find a team to join, {create_span_start}create a new team in this " +"{browse_span_start}Browse teams in other topics{span_end} or " +"{search_span_start}search teams{span_end} in this topic. If you still can't " +"find a team to join, {create_span_start}create a new team in this " "topic{span_end}." msgstr "" @@ -3784,11 +3898,6 @@ msgstr "" msgid "Review your info" msgstr "" -#: lms/static/js/verify_student/views/reverify_view.js -#: lms/templates/verify_student/review_photos_step.underscore -msgid "Confirm" -msgstr "" - #: lms/static/js/verify_student/views/step_view.js msgid "An error has occurred. Please try reloading the page." msgstr "" @@ -4151,6 +4260,7 @@ msgstr "" #: cms/static/js/factories/manage_users.js #: cms/static/js/factories/manage_users_lib.js +#: common/static/common/templates/discussion/post-user-display.underscore msgid "Staff" msgstr "" @@ -4334,6 +4444,7 @@ msgid "Date Added" msgstr "" #: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore msgid "Type" msgstr "" @@ -4890,18 +5001,6 @@ msgid "" "more than <%=limit%> characters." msgstr "" -#: cms/static/js/views/utils/view_utils.js -msgid "Required field." -msgstr "" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces in this field." -msgstr "" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces or special characters in this field." -msgstr "" - #: cms/static/js/views/utils/xblock_utils.js msgid "component" msgstr "" @@ -4991,11 +5090,526 @@ msgstr "" msgid "Due Date" msgstr "" +#: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore +msgid "Previous" +msgstr "" + #: cms/templates/js/previous-video-upload-list.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore #: lms/templates/verify_student/enrollment_confirmation_step.underscore msgid "Status" msgstr "" +#: common/static/common/templates/image-modal.underscore +msgid "Large" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom In" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom Out" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Page number" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Enter the page number you'd like to quickly navigate to." +msgstr "" + +#: common/static/common/templates/components/paging-header.underscore +msgid "Sorted by" +msgstr "" + +#: common/static/common/templates/components/search-field.underscore +msgid "Clear search" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "DISCUSSION HOME:" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +#: lms/templates/commerce/provider.underscore +#: lms/templates/commerce/receipt.underscore +#: lms/templates/discovery/course_card.underscore +msgid "gettext(" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Find discussions" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Focus in on specific topics" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Search for specific posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Sort by date, vote, or comments" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Engage with posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Upvote posts and good responses" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Report Forum Misuse" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Follow posts for updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Receive updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Toggle Notifications Setting" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "" +"Check this box to receive an email digest once a day notifying you about " +"new, unread activity from posts you are following." +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Mark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Unmark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-close.underscore +msgid "Open" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Endorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Unendorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Follow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Unfollow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Pin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Unpin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report abuse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Unreport" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-vote.underscore +msgid "Vote for this post," +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Visible To:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "All Groups" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "" +"Discussion admins, moderators, and TAs can make their posts visible to all " +"students or specify a single cohort." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Title:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add a clear and descriptive title to encourage participation." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Enter your question or comment" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "follow this post" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously to classmates" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add Post" +msgstr "" + +#: common/static/common/templates/discussion/post-user-display.underscore +msgid "Community TA" +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +#: common/static/common/templates/discussion/thread.underscore +msgid "This thread is closed." +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +msgid "View discussion" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Editing comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Update comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#, python-format +msgid "posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Reported" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Editing post" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Edit post title" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Update post" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "answered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "unanswered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Pinned" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "Following" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Staff" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Community TA" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +msgid "fmt" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "" +"%(comments_count)s %(span_sr_open)scomments (%(unread_comments_count)s " +"unread comments)%(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "%(comments_count)s %(span_sr_open)scomments %(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Editing response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Update response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "fmts" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "Add a comment" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "This post is visible only to %(group_name)s." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "This post is visible to everyone." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "%(post_type)s posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Closed" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "Related to: %(courseware_title_linked)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Post type:" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Question" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "" +"Questions raise issues that need answers. Discussions share ideas and start " +"conversations." +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Add a Response" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Post a response:" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Expand discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Collapse discussion" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Topic Area:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Discussion topics; current selection is:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Filter topics" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Add your post to a relevant topic to help others find it." +msgstr "" + +#: common/static/common/templates/discussion/user-profile.underscore +msgid "Active Threads" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates.underscore +msgid "username or email" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "No results" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Course Key" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download URL" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Grade" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Last Updated" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download the user's certificate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Not available" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate the user's certificate" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be created." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be updated." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Enter information to describe your team. You cannot change these details " +"after you create the team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Optional Characteristics" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Help other learners decide whether to join your team by specifying some " +"characteristics for your team. Choose carefully, because fewer people might " +"be interested in joining your team if it seems too restrictive." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Create team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Update team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team creating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team updating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-actions.underscore +msgid "Are you having trouble finding a team to join?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Join Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "New Post" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team Details" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "You are a member of this team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team member profiles" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team capacity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "country" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "language" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Leave Team" +msgstr "" + +#: lms/static/js/fixtures/donation.underscore +#: lms/templates/dashboard/donation.underscore +msgid "Donate" +msgstr "" + #: lms/templates/ccx/schedule.underscore msgid "Expand All" msgstr "" @@ -5036,12 +5650,6 @@ msgstr "" msgid "Subsection" msgstr "" -#: lms/templates/commerce/provider.underscore -#: lms/templates/commerce/receipt.underscore -#: lms/templates/discovery/course_card.underscore -msgid "gettext(" -msgstr "" - #: lms/templates/commerce/provider.underscore #, python-format msgid "%s" @@ -5131,10 +5739,6 @@ msgstr "" msgid "End My Exam" msgstr "" -#: lms/templates/dashboard/donation.underscore -msgid "Donate" -msgstr "" - #: lms/templates/discovery/course_card.underscore msgid "LEARN MORE" msgstr "" @@ -6051,6 +6655,16 @@ msgstr "" msgid "status" msgstr "" +#: cms/templates/js/add-xblock-component-button.underscore +msgid "Add Component:" +msgstr "" + +#: cms/templates/js/add-xblock-component-menu-problem.underscore +#: cms/templates/js/add-xblock-component-menu.underscore +#, python-format +msgid "%(type)s Component Template Menu" +msgstr "" + #: cms/templates/js/add-xblock-component-menu-problem.underscore msgid "Common Problem Types" msgstr "" @@ -6125,6 +6739,11 @@ msgstr "" msgid "Certificate Details" msgstr "" +#: cms/templates/js/certificate-details.underscore +#: cms/templates/js/certificate-editor.underscore +msgid "Course Title" +msgstr "" + #: cms/templates/js/certificate-details.underscore #: cms/templates/js/certificate-editor.underscore msgid "Course Title Override" @@ -6169,19 +6788,13 @@ msgid "" msgstr "" #: cms/templates/js/certificate-editor.underscore -msgid "Add Signatory" +msgid "Add Additional Signatory" msgstr "" #: cms/templates/js/certificate-editor.underscore msgid "(Up to 4 signatories are allowed for a certificate)" msgstr "" -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/group-configuration-editor.underscore -msgid "Create" -msgstr "" - #: cms/templates/js/certificate-web-preview.underscore msgid "Choose mode" msgstr "" @@ -6606,10 +7219,6 @@ msgstr "" msgid "Add your first textbook" msgstr "" -#: cms/templates/js/paging-header.underscore -msgid "Previous" -msgstr "" - #: cms/templates/js/previous-video-upload-list.underscore msgid "Previous Uploads" msgstr "" diff --git a/conf/locale/hi/LC_MESSAGES/django.mo b/conf/locale/hi/LC_MESSAGES/django.mo index 1aba656f1beb7648e519b53fe6e7c6ec3f528904..fe3f219e98b341932467024859671cdd3168ddef 100644 GIT binary patch delta 25944 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 delta 26004 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⁣TNjvPg~C!{qY+>JE-J~$I! zvv+c3|G<01r;+!8a-RwR!XA(PAaQNy37@v-ENzl<(qUxuBI6k0yM$MesV_ONA-}+w zk%U{LwkYy{utC$vzqMmn!WjQ)_6q-@V)94a65w zrZe%vc-NgL7wI7``~~6M|2a!~!f{+ZGbq!L@H+Oqq(8HNQEGEryF%i-%~LzAY7(b! zuddx&b!%6AbH2lK+r}%JD}TQ5d\n" "Language-Team: Hindi (http://www.transifex.com/open-edx/edx-platform/language/hi/)\n" @@ -1227,10 +1227,6 @@ msgstr "" msgid "incorrect" msgstr "" -#: common/lib/capa/capa/inputtypes.py -msgid "partially correct" -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "incomplete" msgstr "" @@ -1253,10 +1249,6 @@ msgstr "" msgid "This is incorrect." msgstr "" -#: common/lib/capa/capa/inputtypes.py -msgid "This is partially correct." -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "This is unanswered." msgstr "" @@ -4587,7 +4579,14 @@ msgid "{month} {day}, {year}" msgstr "" #: lms/djangoapps/certificates/views/webview.py -msgid "a course of study offered by {partner_name}, through {platform_name}." +msgid "" +"a course of study offered by {partner_short_name}, an online learning " +"initiative of {partner_long_name} through {platform_name}." +msgstr "" + +#: lms/djangoapps/certificates/views/webview.py +msgid "" +"a course of study offered by {partner_short_name}, through {platform_name}." msgstr "" #. Translators: Accomplishments describe the awards/certifications obtained by @@ -4687,13 +4686,13 @@ msgstr "" #: lms/djangoapps/certificates/views/webview.py msgid "" "This is a valid {platform_name} certificate for {user_name}, who " -"participated in {partner_name} {course_number}" +"participated in {partner_short_name} {course_number}" msgstr "" #. Translators: This text is bound to the HTML 'title' element of the page #. and appears in the browser title bar #: lms/djangoapps/certificates/views/webview.py -msgid "{partner_name} {course_number} Certificate | {platform_name}" +msgid "{partner_short_name} {course_number} Certificate | {platform_name}" msgstr "" #. Translators: This text fragment appears after the student's name @@ -4849,6 +4848,14 @@ msgid "" "{payment_support_link}." msgstr "" +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "{course_id} is not a valid course key." +msgstr "" + +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "Course {course_id} does not exist." +msgstr "" + #: lms/djangoapps/course_wiki/tab.py lms/djangoapps/course_wiki/views.py #: lms/templates/wiki/base.html msgid "Wiki" @@ -5384,6 +5391,23 @@ msgstr "" msgid "File is not attached." msgstr "" +#: lms/djangoapps/instructor/views/api.py +msgid "Could not find problem with this location." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"The problem responses report is being created. To view the status of the " +"report, see Pending Tasks below." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"A problem responses report generation task is already in progress. Check the" +" 'Pending Tasks' table for the status of the task. When completed, the " +"report will be available for download in the table below." +msgstr "" + #: lms/djangoapps/instructor/views/api.py msgid "Invoice number '{num}' does not exist." msgstr "" @@ -5770,6 +5794,10 @@ msgstr "" msgid "CourseMode price updated successfully" msgstr "" +#: lms/djangoapps/instructor/views/instructor_dashboard.py +msgid "No end date set" +msgstr "" + #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "Enrollment data is now available in {dashboard_link}." msgstr "" @@ -5865,18 +5893,6 @@ msgstr "" msgid "Grades for assignment \"{name}\"" msgstr "" -#: lms/djangoapps/instructor/views/legacy.py -msgid "Found {num} records to dump." -msgstr "" - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Couldn't find module with that urlname." -msgstr "" - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Student state for problem {problem}" -msgstr "" - #: lms/djangoapps/instructor/views/legacy.py msgid "Grades from {course_id}" msgstr "" @@ -6040,6 +6056,12 @@ msgstr "नष्ट कर दिया गया" msgid "emailed" msgstr "ईमेल कर दी गई" +#. Translators: This is a past-tense verb that is inserted into task progress +#. messages as {action}. +#: lms/djangoapps/instructor_task/tasks.py +msgid "generated" +msgstr "" + #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -6052,12 +6074,6 @@ msgstr "श्रेणी दी जा चुकी है" msgid "problem distribution graded" msgstr "" -#. Translators: This is a past-tense verb that is inserted into task progress -#. messages as {action}. -#: lms/djangoapps/instructor_task/tasks.py -msgid "generated" -msgstr "" - #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -7517,6 +7533,7 @@ msgid "Optional language the team uses as ISO 639-1 code." msgstr "" #: lms/djangoapps/teams/plugins.py +#: lms/djangoapps/teams/templates/teams/teams.html msgid "Teams" msgstr "" @@ -7529,11 +7546,11 @@ msgid "course_id must be provided" msgstr "" #: lms/djangoapps/teams/views.py -msgid "The supplied topic id {topic_id} is not valid" +msgid "text_search and order_by cannot be provided together" msgstr "" #: lms/djangoapps/teams/views.py -msgid "text_search is not yet supported." +msgid "The supplied topic id {topic_id} is not valid" msgstr "" #. Translators: 'ordering' is a string describing a way @@ -9269,6 +9286,10 @@ msgstr "सहायता" msgid "Sign Out" msgstr "" +#: common/lib/capa/capa/templates/codeinput.html +msgid "{programming_language} editor" +msgstr "" + #: common/templates/license.html msgid "All Rights Reserved" msgstr "" @@ -11836,8 +11857,10 @@ msgid "Section:" msgstr "धारा:" #: lms/templates/courseware/legacy_instructor_dashboard.html -msgid "Problem urlname:" -msgstr "समस्या का यू आर एल दें:" +msgid "" +"To download a CSV listing student responses to a given problem, visit the " +"Data Download section of the Instructor Dashboard." +msgstr "" #: lms/templates/courseware/legacy_instructor_dashboard.html msgid "" @@ -13650,6 +13673,20 @@ msgstr "" msgid "Generate Proctored Exam Results Report" msgstr "" +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "" +"To generate a CSV file that lists all student answers to a given problem, " +"enter the location of the problem (from its Staff Debug Info)." +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Problem location: " +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Download a CSV of problem responses" +msgstr "" + #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" "For smaller courses, click to list profile information for enrolled students" @@ -16013,41 +16050,50 @@ msgid "This module is not enabled." msgstr "" #: cms/templates/certificates.html -msgid "" -"Upon successful completion of your course, learners receive a certificate to" -" acknowledge their accomplishment. If you are a course team member with the " -"Admin role in Studio, you can configure your course certificate." +msgid "Working with Certificates" msgstr "" #: cms/templates/certificates.html msgid "" -"Click {em_start}Add your first certificate{em_end} to add a certificate " -"configuration. Upload the organization logo to be used on the certificate, " -"and specify at least one signatory. You can include up to four signatories " -"for a certificate. You can also upload a signature image file for each " -"signatory. {em_start}Note:{em_end} Signature images are used only for " -"verified certificates. Optionally, specify a different course title to use " -"on your course certificate. You might want to use a different title if, for " -"example, the official course name is too long to display well on a " -"certificate." +"Specify a course title to use on the certificate if the course's official " +"title is too long to be displayed well." msgstr "" #: cms/templates/certificates.html msgid "" -"Select a course mode and click {em_start}Preview Certificate{em_end} to " -"preview the certificate that a learner in the selected enrollment track " -"would receive. When the certificate is ready for issuing, click " -"{em_start}Activate.{em_end} To stop issuing an active certificate, click " -"{em_start}Deactivate{em_end}." +"For verified certificates, specify between one and four signatories and " +"upload the associated images." msgstr "" #: cms/templates/certificates.html msgid "" -" To edit the certificate configuration, hover over the top right corner of " -"the form and click {em_start}Edit{em_end}. To delete a certificate, hover " -"over the top right corner of the form and click the delete icon. In general," -" do not delete certificates after a course has started, because some " -"certificates might already have been issued to learners." +"To edit or delete a certificate before it is activated, hover over the top " +"right corner of the form and select {em_start}Edit{em_end} or the delete " +"icon." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To view a sample certificate, choose a course mode and select " +"{em_start}Preview Certificate{em_end}." +msgstr "" + +#: cms/templates/certificates.html +msgid "Issuing Certificates to Learners" +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To begin issuing certificates, a course team member with the Admin role " +"selects {em_start}Activate{em_end}. Course team members without the Admin " +"role cannot edit or delete an activated certificate." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"{em_start}Do not{em_end} delete certificates after a course has started; " +"learners who have already earned certificates will no longer be able to " +"access them." msgstr "" #: cms/templates/certificates.html diff --git a/conf/locale/hi/LC_MESSAGES/djangojs.mo b/conf/locale/hi/LC_MESSAGES/djangojs.mo index adc0b21aafab3c6f94486ccc05af049c7a59e4a1..77296b23970210fa06b7bc01d33b684d9f07686a 100644 GIT binary patch delta 5233 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 LU2+L4cr=dcqVIoNi+mw46-MnWyjXtWAG3J@4 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 N*9v0lUd+5c{ucmRr2qf` diff --git a/conf/locale/hi/LC_MESSAGES/djangojs.po b/conf/locale/hi/LC_MESSAGES/djangojs.po index a575ccc3e3..f91d889c2f 100644 --- a/conf/locale/hi/LC_MESSAGES/djangojs.po +++ b/conf/locale/hi/LC_MESSAGES/djangojs.po @@ -46,8 +46,8 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:17+0000\n" -"PO-Revision-Date: 2015-08-21 02:41+0000\n" +"POT-Creation-Date: 2015-09-04 14:06+0000\n" +"PO-Revision-Date: 2015-09-04 14:08+0000\n" "Last-Translator: Sarina Canelake \n" "Language-Team: Hindi (http://www.transifex.com/open-edx/edx-platform/language/hi/)\n" "MIME-Version: 1.0\n" @@ -93,8 +93,8 @@ msgstr "ठीक" #: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js #: cms/static/js/views/modals/base_modal.js #: cms/static/js/views/modals/course_outline_modals.js -#: cms/static/js/views/utils/view_utils.js #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/js/components/utils/view_utils.js #: cms/templates/js/add-xblock-component-menu-problem.underscore #: cms/templates/js/add-xblock-component-menu.underscore #: cms/templates/js/certificate-editor.underscore @@ -105,6 +105,11 @@ msgstr "ठीक" #: cms/templates/js/group-configuration-editor.underscore #: cms/templates/js/section-name-edit.underscore #: cms/templates/js/xblock-string-field-editor.underscore +#: common/static/common/templates/discussion/new-post.underscore +#: common/static/common/templates/discussion/response-comment-edit.underscore +#: common/static/common/templates/discussion/thread-edit.underscore +#: common/static/common/templates/discussion/thread-response-edit.underscore +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cancel" msgstr "रद्द करें" @@ -125,6 +130,7 @@ msgstr "रद्द करें" #: cms/templates/js/show-textbook.underscore #: cms/templates/js/signatory-editor.underscore #: cms/templates/js/xblock-outline.underscore +#: common/static/common/templates/discussion/forum-action-delete.underscore msgid "Delete" msgstr "" @@ -736,6 +742,7 @@ msgstr "" #: cms/templates/js/show-textbook.underscore #: cms/templates/js/signatory-details.underscore #: cms/templates/js/xblock-string-field-editor.underscore +#: common/static/common/templates/discussion/forum-action-edit.underscore msgid "Edit" msgstr "" @@ -823,9 +830,11 @@ msgstr "" msgid "Formats" msgstr "" +#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/templates/image-modal.underscore msgid "Fullscreen" msgstr "" @@ -1141,6 +1150,8 @@ msgstr "" #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js #: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore msgid "Next" msgstr "" @@ -1486,6 +1497,8 @@ msgstr "" #: common/lib/xmodule/xmodule/js/src/html/edit.js #: cms/templates/js/signatory-details.underscore #: cms/templates/js/signatory-editor.underscore +#: common/static/common/templates/discussion/new-post.underscore +#: common/static/common/templates/discussion/thread-edit.underscore msgid "Title" msgstr "" @@ -2048,6 +2061,18 @@ msgstr "" msgid "Are you sure you want to delete this response?" msgstr "क्या आप वाकई इस जवाब को हटाना चाहते हैं?" +#: common/static/common/js/components/utils/view_utils.js +msgid "Required field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces in this field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces or special characters in this field." +msgstr "" + #: common/static/common/js/components/views/paging_header.js msgid "Showing %(first_index)s out of %(num_items)s total" msgstr "" @@ -2213,6 +2238,7 @@ msgstr "" #: common/static/js/vendor/ova/catch/js/catch.js #: lms/static/js/courseware/credit_progress.js +#: common/static/common/templates/discussion/forum-actions.underscore #: lms/templates/discovery/facet.underscore #: lms/templates/edxnotes/note-item.underscore msgid "More" @@ -2231,6 +2257,8 @@ msgid "Public" msgstr "" #: common/static/js/vendor/ova/catch/js/catch.js +#: common/static/common/templates/components/search-field.underscore +#: lms/djangoapps/support/static/support/templates/certificates.underscore msgid "Search" msgstr "" @@ -2292,13 +2320,16 @@ msgid "An unexpected error occurred. Please try again." msgstr "" #: lms/djangoapps/teams/static/teams/js/collections/team.js -#: lms/djangoapps/teams/static/teams/js/collections/topic.js -#: lms/templates/edxnotes/tab-item.underscore -msgid "name" +msgid "last activity" msgstr "" #: lms/djangoapps/teams/static/teams/js/collections/team.js -msgid "open_slots" +msgid "open slots" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/collections/topic.js +#: lms/templates/edxnotes/tab-item.underscore +msgid "name" msgstr "" #. Translators: This refers to the number of teams (a count of how many teams @@ -2307,6 +2338,17 @@ msgstr "" msgid "team count" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: cms/templates/js/certificate-editor.underscore +#: cms/templates/js/content-group-editor.underscore +#: cms/templates/js/group-configuration-editor.underscore +msgid "Create" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +msgid "Update" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/edit_team.js msgid "Team Name (Required) *" msgstr "" @@ -2331,6 +2373,7 @@ msgid "Language" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "" "The language that team members primarily use to communicate with each other." msgstr "" @@ -2341,6 +2384,7 @@ msgid "Country" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "The country that team members primarily identify with." msgstr "" @@ -2373,20 +2417,48 @@ msgstr "" msgid "You are not currently a member of any team." msgstr "" +#. Translators: "and others" refers to fact that additional members of a team +#. exist that are not displayed. +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "and others" +msgstr "" + +#. Translators: 'date' is a placeholder for a fuzzy, relative timestamp (see: +#. https://github.com/rmm5t/jquery-timeago) +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "Last Activity %(date)s" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/team_card.js msgid "View %(span_start)s %(team_name)s %(span_end)s" msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js #: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "An error occurred. Try again." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "Leave this team?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "" +"If you leave, you can no longer post in this team's discussions. Your place " +"will be available to another learner." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/static/js/verify_student/views/reverify_view.js +#: lms/templates/verify_student/review_photos_step.underscore +msgid "Confirm" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "You already belong to another team." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "This team is full." msgstr "" @@ -2405,13 +2477,13 @@ msgid "teams" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"See all teams in your course, organized by topic. Join a team to collaborate" -" with other learners who are interested in the same topic as you are." +msgid "Teams" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "Teams" +msgid "" +"See all teams in your course, organized by topic. Join a team to collaborate" +" with other learners who are interested in the same topic as you are." msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js @@ -2419,22 +2491,47 @@ msgid "My Team" msgstr "" #. Translators: sr_start and sr_end surround text meant only for screen -#. readers. The whole string will be shown to users as "Browse teams" if they -#. are using a screenreader, and "Browse" otherwise. +#. readers. +#. The whole string will be shown to users as "Browse teams" if they are using +#. a +#. screenreader, and "Browse" otherwise. #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Browse %(sr_start)s teams %(sr_end)s" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"Create a new team if you can't find existing teams to join, or if you would " -"like to learn with friends you know." +msgid "Team Search" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Showing results for \"%(searchString)s\"" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Create a New Team" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"Create a new team if you can't find an existing team to join, or if you " +"would like to learn with friends you know." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Edit Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"If you make significant changes, make sure you notify members of the team " +"before making these changes." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Search teams" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "All Topics" msgstr "" @@ -2457,15 +2554,27 @@ msgid_plural "%(team_count)s Teams" msgstr[0] "" msgstr[1] "" +#: lms/djangoapps/teams/static/teams/js/views/topic_card.js +msgid "Topic" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/topic_card.js msgid "View Teams in the %(topic_name)s Topic" msgstr "" +#. Translators: this string is shown at the bottom of the teams page +#. to find a team to join or else to create a new one. There are three +#. links that need to be included in the message: +#. 1. Browse teams in other topics +#. 2. search teams +#. 3. create a new team +#. Be careful to start each link with the appropriate start indicator +#. (e.g. {browse_span_start} for #1) and finish it with {span_end}. #: lms/djangoapps/teams/static/teams/js/views/topic_teams.js msgid "" -"Try {browse_span_start}browsing all teams{span_end} or " -"{search_span_start}searching team descriptions{span_end}. If you still can't" -" find a team to join, {create_span_start}create a new team in this " +"{browse_span_start}Browse teams in other topics{span_end} or " +"{search_span_start}search teams{span_end} in this topic. If you still can't " +"find a team to join, {create_span_start}create a new team in this " "topic{span_end}." msgstr "" @@ -3832,11 +3941,6 @@ msgstr "" msgid "Review your info" msgstr "" -#: lms/static/js/verify_student/views/reverify_view.js -#: lms/templates/verify_student/review_photos_step.underscore -msgid "Confirm" -msgstr "" - #: lms/static/js/verify_student/views/step_view.js msgid "An error has occurred. Please try reloading the page." msgstr "" @@ -4394,6 +4498,7 @@ msgid "Date Added" msgstr "जोड़ी गयी तिथि" #: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore msgid "Type" msgstr "" @@ -4954,18 +5059,6 @@ msgid "" "more than <%=limit%> characters." msgstr "" -#: cms/static/js/views/utils/view_utils.js -msgid "Required field." -msgstr "आवश्यक क्षेत्र |" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces in this field." -msgstr "इस क्षेत्र में किसी भी रिक्त स्थान का प्रयोग न करें| " - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces or special characters in this field." -msgstr "कृपया इस क्षेत्र में खाली स्थान या विशेष अक्षरों का प्रयोग न करें।" - #: cms/static/js/views/utils/xblock_utils.js msgid "component" msgstr "" @@ -5057,11 +5150,526 @@ msgstr "" msgid "Due Date" msgstr "" +#: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore +msgid "Previous" +msgstr "" + #: cms/templates/js/previous-video-upload-list.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore #: lms/templates/verify_student/enrollment_confirmation_step.underscore msgid "Status" msgstr "" +#: common/static/common/templates/image-modal.underscore +msgid "Large" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom In" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom Out" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Page number" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Enter the page number you'd like to quickly navigate to." +msgstr "" + +#: common/static/common/templates/components/paging-header.underscore +msgid "Sorted by" +msgstr "" + +#: common/static/common/templates/components/search-field.underscore +msgid "Clear search" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "DISCUSSION HOME:" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +#: lms/templates/commerce/provider.underscore +#: lms/templates/commerce/receipt.underscore +#: lms/templates/discovery/course_card.underscore +msgid "gettext(" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Find discussions" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Focus in on specific topics" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Search for specific posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Sort by date, vote, or comments" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Engage with posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Upvote posts and good responses" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Report Forum Misuse" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Follow posts for updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Receive updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Toggle Notifications Setting" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "" +"Check this box to receive an email digest once a day notifying you about " +"new, unread activity from posts you are following." +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Mark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Unmark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-close.underscore +msgid "Open" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Endorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Unendorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Follow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Unfollow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Pin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Unpin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report abuse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Unreport" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-vote.underscore +msgid "Vote for this post," +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Visible To:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "All Groups" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "" +"Discussion admins, moderators, and TAs can make their posts visible to all " +"students or specify a single cohort." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Title:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add a clear and descriptive title to encourage participation." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Enter your question or comment" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "follow this post" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously to classmates" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add Post" +msgstr "" + +#: common/static/common/templates/discussion/post-user-display.underscore +msgid "Community TA" +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +#: common/static/common/templates/discussion/thread.underscore +msgid "This thread is closed." +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +msgid "View discussion" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Editing comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Update comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#, python-format +msgid "posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Reported" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Editing post" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Edit post title" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Update post" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "answered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "unanswered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Pinned" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "Following" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Staff" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Community TA" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +msgid "fmt" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "" +"%(comments_count)s %(span_sr_open)scomments (%(unread_comments_count)s " +"unread comments)%(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "%(comments_count)s %(span_sr_open)scomments %(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Editing response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Update response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "fmts" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "Add a comment" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "This post is visible only to %(group_name)s." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "This post is visible to everyone." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "%(post_type)s posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Closed" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "Related to: %(courseware_title_linked)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Post type:" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Question" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "" +"Questions raise issues that need answers. Discussions share ideas and start " +"conversations." +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Add a Response" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Post a response:" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Expand discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Collapse discussion" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Topic Area:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Discussion topics; current selection is:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Filter topics" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Add your post to a relevant topic to help others find it." +msgstr "" + +#: common/static/common/templates/discussion/user-profile.underscore +msgid "Active Threads" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates.underscore +msgid "username or email" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "No results" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Course Key" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download URL" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Grade" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Last Updated" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download the user's certificate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Not available" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate the user's certificate" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be created." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be updated." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Enter information to describe your team. You cannot change these details " +"after you create the team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Optional Characteristics" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Help other learners decide whether to join your team by specifying some " +"characteristics for your team. Choose carefully, because fewer people might " +"be interested in joining your team if it seems too restrictive." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Create team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Update team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team creating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team updating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-actions.underscore +msgid "Are you having trouble finding a team to join?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Join Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "New Post" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team Details" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "You are a member of this team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team member profiles" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team capacity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "country" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "language" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Leave Team" +msgstr "" + +#: lms/static/js/fixtures/donation.underscore +#: lms/templates/dashboard/donation.underscore +msgid "Donate" +msgstr "" + #: lms/templates/ccx/schedule.underscore msgid "Expand All" msgstr "" @@ -5102,12 +5710,6 @@ msgstr "" msgid "Subsection" msgstr "" -#: lms/templates/commerce/provider.underscore -#: lms/templates/commerce/receipt.underscore -#: lms/templates/discovery/course_card.underscore -msgid "gettext(" -msgstr "" - #: lms/templates/commerce/provider.underscore #, python-format msgid "%s" @@ -5197,10 +5799,6 @@ msgstr "" msgid "End My Exam" msgstr "" -#: lms/templates/dashboard/donation.underscore -msgid "Donate" -msgstr "" - #: lms/templates/discovery/course_card.underscore msgid "LEARN MORE" msgstr "" @@ -6117,6 +6715,16 @@ msgstr "" msgid "status" msgstr "" +#: cms/templates/js/add-xblock-component-button.underscore +msgid "Add Component:" +msgstr "" + +#: cms/templates/js/add-xblock-component-menu-problem.underscore +#: cms/templates/js/add-xblock-component-menu.underscore +#, python-format +msgid "%(type)s Component Template Menu" +msgstr "" + #: cms/templates/js/add-xblock-component-menu-problem.underscore msgid "Common Problem Types" msgstr "" @@ -6191,6 +6799,11 @@ msgstr "" msgid "Certificate Details" msgstr "" +#: cms/templates/js/certificate-details.underscore +#: cms/templates/js/certificate-editor.underscore +msgid "Course Title" +msgstr "" + #: cms/templates/js/certificate-details.underscore #: cms/templates/js/certificate-editor.underscore msgid "Course Title Override" @@ -6235,19 +6848,13 @@ msgid "" msgstr "" #: cms/templates/js/certificate-editor.underscore -msgid "Add Signatory" +msgid "Add Additional Signatory" msgstr "" #: cms/templates/js/certificate-editor.underscore msgid "(Up to 4 signatories are allowed for a certificate)" msgstr "" -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/group-configuration-editor.underscore -msgid "Create" -msgstr "" - #: cms/templates/js/certificate-web-preview.underscore msgid "Choose mode" msgstr "" @@ -6672,10 +7279,6 @@ msgstr "" msgid "Add your first textbook" msgstr "" -#: cms/templates/js/paging-header.underscore -msgid "Previous" -msgstr "" - #: cms/templates/js/previous-video-upload-list.underscore msgid "Previous Uploads" msgstr "" diff --git a/conf/locale/ko_KR/LC_MESSAGES/django.mo b/conf/locale/ko_KR/LC_MESSAGES/django.mo index 97749a9ff2c0226e5fb2f6ccc6aa07b9d1cbe94e..b85a66fabe829750848ba8996c5a57578c87ca91 100644 GIT binary patch delta 81433 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
    1. From 62ef4b5b8f1e3317d041c8729865a76d03803494 Mon Sep 17 00:00:00 2001 From: Bill DeRusha Date: Fri, 4 Sep 2015 15:36:19 -0400 Subject: [PATCH 96/98] Add more defensive code around elasticsearch connection --- common/test/acceptance/tests/lms/test_teams.py | 2 ++ lms/djangoapps/teams/errors.py | 5 +++++ lms/djangoapps/teams/search_indexes.py | 15 +++++++++++++-- .../static/teams/js/spec/views/teams_tab_spec.js | 8 ++++---- .../teams/js/spec/views/topic_teams_spec.js | 2 +- .../teams/static/teams/js/views/teams_tab.js | 2 +- .../teams/static/teams/js/views/topic_teams.js | 15 +++++++++------ lms/djangoapps/teams/views.py | 10 ++++++++-- 8 files changed, 43 insertions(+), 16 deletions(-) diff --git a/common/test/acceptance/tests/lms/test_teams.py b/common/test/acceptance/tests/lms/test_teams.py index ffb67ae157..fcecf8eb3f 100644 --- a/common/test/acceptance/tests/lms/test_teams.py +++ b/common/test/acceptance/tests/lms/test_teams.py @@ -10,6 +10,7 @@ import ddt from flaky import flaky from nose.plugins.attrib import attr from uuid import uuid4 +from unittest import skip from ..helpers import UniqueCourseTest, EventsTestMixin from ...fixtures import LMS_BASE_URL @@ -705,6 +706,7 @@ class BrowseTeamsWithinTopicTest(TeamsTabBase): self.browse_teams_page.click_browse_all_teams_link() self.assertTrue(self.topics_page.is_browser_on_page()) + @skip('Disabled until search connectivity issues are resolved, see TNL-3206') def test_search(self): """ Scenario: User should be able to search for a team diff --git a/lms/djangoapps/teams/errors.py b/lms/djangoapps/teams/errors.py index 0f718d93a6..a011ea6780 100644 --- a/lms/djangoapps/teams/errors.py +++ b/lms/djangoapps/teams/errors.py @@ -16,6 +16,11 @@ class AlreadyOnTeamInCourse(TeamAPIRequestError): pass +class ElasticSearchConnectionError(TeamAPIRequestError): + """System was unable to connect to the configured elasticsearch instance""" + pass + + class ImmutableMembershipFieldException(Exception): """An attempt was made to change an immutable field on a CourseTeamMembership model""" pass diff --git a/lms/djangoapps/teams/search_indexes.py b/lms/djangoapps/teams/search_indexes.py index 7532b48ac6..611b823e5f 100644 --- a/lms/djangoapps/teams/search_indexes.py +++ b/lms/djangoapps/teams/search_indexes.py @@ -1,11 +1,15 @@ """ Search index used to load data into elasticsearch""" +import logging +from requests import ConnectionError + from django.conf import settings from django.db.models.signals import post_save from django.dispatch import receiver from search.search_engine_base import SearchEngine +from .errors import ElasticSearchConnectionError from .serializers import CourseTeamSerializer, CourseTeam @@ -78,7 +82,11 @@ class CourseTeamIndexer(object): Return course team search engine (if feature is enabled). """ if cls.search_is_enabled(): - return SearchEngine.get_search_engine(index=cls.INDEX_NAME) + try: + return SearchEngine.get_search_engine(index=cls.INDEX_NAME) + except ConnectionError as err: + logging.error("Error connecting to elasticsearch: %s", err) + raise ElasticSearchConnectionError @classmethod def search_is_enabled(cls): @@ -93,4 +101,7 @@ def course_team_post_save_callback(**kwargs): """ Reindex object after save. """ - CourseTeamIndexer.index(kwargs['instance']) + try: + CourseTeamIndexer.index(kwargs['instance']) + except ElasticSearchConnectionError: + pass diff --git a/lms/djangoapps/teams/static/teams/js/spec/views/teams_tab_spec.js b/lms/djangoapps/teams/static/teams/js/spec/views/teams_tab_spec.js index 9d7f402335..786cb08b63 100644 --- a/lms/djangoapps/teams/static/teams/js/spec/views/teams_tab_spec.js +++ b/lms/djangoapps/teams/static/teams/js/spec/views/teams_tab_spec.js @@ -134,7 +134,7 @@ define([ )); }; - it('can search teams', function () { + xit('can search teams', function () { var requests = AjaxHelpers.requests(this), teamsTabView = createTeamsTabView(); teamsTabView.browseTopic(TeamSpecHelpers.testTopicID); @@ -154,7 +154,7 @@ define([ expect(teamsTabView.$('.page-description').text()).toBe('Showing results for "foo"'); }); - it('can clear a search', function () { + xit('can clear a search', function () { var requests = AjaxHelpers.requests(this), teamsTabView = createTeamsTabView(); teamsTabView.browseTopic(TeamSpecHelpers.testTopicID); @@ -177,7 +177,7 @@ define([ expect(teamsTabView.$('.page-description').text()).toBe('Test description 1'); }); - it('clears the search when navigating away and then back', function () { + xit('clears the search when navigating away and then back', function () { var requests = AjaxHelpers.requests(this), teamsTabView = createTeamsTabView(); teamsTabView.browseTopic(TeamSpecHelpers.testTopicID); @@ -199,7 +199,7 @@ define([ expect(teamsTabView.$('.page-description').text()).toBe('Test description 1'); }); - it('does not switch to showing results when the search returns an error', function () { + xit('does not switch to showing results when the search returns an error', function () { var requests = AjaxHelpers.requests(this), teamsTabView = createTeamsTabView(); teamsTabView.browseTopic(TeamSpecHelpers.testTopicID); diff --git a/lms/djangoapps/teams/static/teams/js/spec/views/topic_teams_spec.js b/lms/djangoapps/teams/static/teams/js/spec/views/topic_teams_spec.js index a67a5298dc..902fb01208 100644 --- a/lms/djangoapps/teams/static/teams/js/spec/views/topic_teams_spec.js +++ b/lms/djangoapps/teams/static/teams/js/spec/views/topic_teams_spec.js @@ -66,7 +66,7 @@ define([ expect(Backbone.history.navigate.calls[0].args).toContain('browse'); }); - it('gives the search field focus when clicking on the search teams link', function () { + xit('gives the search field focus when clicking on the search teams link', function () { var emptyMembership = TeamSpecHelpers.createMockTeamMemberships([]), teamsView = createTopicTeamsView({ teamMemberships: emptyMembership }); spyOn($.fn, 'focus').andCallThrough(); diff --git a/lms/djangoapps/teams/static/teams/js/views/teams_tab.js b/lms/djangoapps/teams/static/teams/js/views/teams_tab.js index bc7b44155d..ae36b4fd09 100644 --- a/lms/djangoapps/teams/static/teams/js/views/teams_tab.js +++ b/lms/djangoapps/teams/static/teams/js/views/teams_tab.js @@ -303,7 +303,7 @@ viewWithHeader = this.createViewWithHeader({ subject: topic, mainView: teamsView, - headerActionsView: searchFieldView, + headerActionsView: null, // TODO: add back SearchFieldView when search is enabled title: options.title, description: options.description, breadcrumbs: options.breadcrumbs diff --git a/lms/djangoapps/teams/static/teams/js/views/topic_teams.js b/lms/djangoapps/teams/static/teams/js/views/topic_teams.js index b545483d5d..2d23304bd4 100644 --- a/lms/djangoapps/teams/static/teams/js/views/topic_teams.js +++ b/lms/djangoapps/teams/static/teams/js/views/topic_teams.js @@ -57,13 +57,16 @@ }, searchTeams: function (event) { - var searchField = $('.page-header-search .search-field'); + //var searchField = $('.page-header-search .search-field'); event.preventDefault(); - searchField.focus(); - searchField.select(); - $('html, body').animate({ - scrollTop: 0 - }, 500); + //searchField.focus(); + //searchField.select(); + //$('html, body').animate({ + // scrollTop: 0 + //}, 500); + + // TODO! Will navigate to correct place once required functionality is available + Backbone.history.navigate('browse', {trigger: true}); }, showCreateTeamForm: function (event) { diff --git a/lms/djangoapps/teams/views.py b/lms/djangoapps/teams/views.py index 4ceda4e9fa..6d46ac68f2 100644 --- a/lms/djangoapps/teams/views.py +++ b/lms/djangoapps/teams/views.py @@ -52,7 +52,7 @@ from .serializers import ( add_team_count ) from .search_indexes import CourseTeamIndexer -from .errors import AlreadyOnTeamInCourse, NotEnrolledInCourseForTeam +from .errors import AlreadyOnTeamInCourse, NotEnrolledInCourseForTeam, ElasticSearchConnectionError TEAM_MEMBERSHIPS_PER_PAGE = 2 TOPICS_PER_PAGE = 12 @@ -330,7 +330,13 @@ class TeamsListView(ExpandableFieldViewMixin, GenericAPIView): result_filter.update({'topic_id': request.QUERY_PARAMS['topic_id']}) if text_search and CourseTeamIndexer.search_is_enabled(): - search_engine = CourseTeamIndexer.engine() + try: + search_engine = CourseTeamIndexer.engine() + except ElasticSearchConnectionError: + return Response( + build_api_error(ugettext_noop('Error connecting to elasticsearch')), + status=status.HTTP_400_BAD_REQUEST + ) result_filter.update({'course_id': course_id_string}) search_results = search_engine.search( From 49807ab6a5240588be68a6f63c5ca025f7771601 Mon Sep 17 00:00:00 2001 From: Bill DeRusha Date: Tue, 8 Sep 2015 17:13:12 -0400 Subject: [PATCH 97/98] Add search specific feature flag in front of search features --- cms/envs/common.py | 3 +++ cms/envs/test.py | 3 +++ .../teams/management/commands/reindex_course_team.py | 4 ++-- .../management/commands/tests/test_reindex_course_team.py | 4 ++-- lms/djangoapps/teams/search_indexes.py | 2 +- lms/envs/aws.py | 2 +- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/cms/envs/common.py b/cms/envs/common.py index 25ae0c4250..fd73ab64d8 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -170,6 +170,9 @@ FEATURES = { # Teams feature 'ENABLE_TEAMS': True, + # Teams search feature + 'ENABLE_TEAMS_SEARCH': False, + # Show video bumper in Studio 'ENABLE_VIDEO_BUMPER': False, diff --git a/cms/envs/test.py b/cms/envs/test.py index 16133ac8ef..1539c28fb7 100644 --- a/cms/envs/test.py +++ b/cms/envs/test.py @@ -281,5 +281,8 @@ SEARCH_ENGINE = "search.tests.mock_search_engine.MockSearchEngine" # teams feature FEATURES['ENABLE_TEAMS'] = True +# teams search +FEATURES['ENABLE_TEAMS_SEARCH'] = True + # Dummy secret key for dev/test SECRET_KEY = '85920908f28904ed733fe576320db18cabd7b6cd' diff --git a/lms/djangoapps/teams/management/commands/reindex_course_team.py b/lms/djangoapps/teams/management/commands/reindex_course_team.py index 901789180f..f857736a64 100644 --- a/lms/djangoapps/teams/management/commands/reindex_course_team.py +++ b/lms/djangoapps/teams/management/commands/reindex_course_team.py @@ -53,8 +53,8 @@ class Command(BaseCommand): if len(args) == 0 and not options.get('all', False): raise CommandError(u"reindex_course_team requires one or more arguments: ") - elif not settings.FEATURES.get('ENABLE_TEAMS', False): - raise CommandError(u"ENABLE_TEAMS must be enabled to use course team indexing") + elif not settings.FEATURES.get('ENABLE_TEAMS_SEARCH', False): + raise CommandError(u"ENABLE_TEAMS_SEARCH must be enabled to use course team indexing") if options.get('all', False): course_teams = CourseTeam.objects.all() diff --git a/lms/djangoapps/teams/management/commands/tests/test_reindex_course_team.py b/lms/djangoapps/teams/management/commands/tests/test_reindex_course_team.py index 63b7593bcd..885bf48188 100644 --- a/lms/djangoapps/teams/management/commands/tests/test_reindex_course_team.py +++ b/lms/djangoapps/teams/management/commands/tests/test_reindex_course_team.py @@ -39,9 +39,9 @@ class ReindexCourseTeamTest(SharedModuleStoreTestCase): def test_teams_search_flag_disabled_raises_command_error(self): """ Test that raises CommandError for disabled feature flag. """ with mock.patch('django.conf.settings.FEATURES') as features: - features.return_value = {"ENABLE_TEAMS": False} + features.return_value = {"ENABLE_TEAMS_SEARCH": False} with self.assertRaises(SystemExit), nostderr(): - with self.assertRaisesRegexp(CommandError, ".* ENABLE_TEAMS must be enabled .*"): + with self.assertRaisesRegexp(CommandError, ".* ENABLE_TEAMS_SEARCH must be enabled .*"): call_command('reindex_course_team') def test_given_invalid_team_id_raises_command_error(self): diff --git a/lms/djangoapps/teams/search_indexes.py b/lms/djangoapps/teams/search_indexes.py index 611b823e5f..090f3856ce 100644 --- a/lms/djangoapps/teams/search_indexes.py +++ b/lms/djangoapps/teams/search_indexes.py @@ -19,7 +19,7 @@ class CourseTeamIndexer(object): """ INDEX_NAME = "course_team_index" DOCUMENT_TYPE_NAME = "course_team" - ENABLE_SEARCH_KEY = "ENABLE_TEAMS" + ENABLE_SEARCH_KEY = "ENABLE_TEAMS_SEARCH" def __init__(self, course_team): self.course_team = course_team diff --git a/lms/envs/aws.py b/lms/envs/aws.py index d9cf8c9854..aae22b3f82 100644 --- a/lms/envs/aws.py +++ b/lms/envs/aws.py @@ -633,7 +633,7 @@ PDF_RECEIPT_COBRAND_LOGO_HEIGHT_MM = ENV_TOKENS.get( if FEATURES.get('ENABLE_COURSEWARE_SEARCH') or \ FEATURES.get('ENABLE_DASHBOARD_SEARCH') or \ FEATURES.get('ENABLE_COURSE_DISCOVERY') or \ - FEATURES.get('ENABLE_TEAMS'): + FEATURES.get('ENABLE_TEAMS_SEARCH'): # Use ElasticSearch as the search engine herein SEARCH_ENGINE = "search.elastic.ElasticSearchEngine" From 8bfa4e9c21958042171418222d18a2c7f3ec1fd2 Mon Sep 17 00:00:00 2001 From: Bill DeRusha Date: Tue, 8 Sep 2015 19:12:48 -0400 Subject: [PATCH 98/98] Add ENABLE_SEARCH_TEAMS flag to tests --- lms/envs/test.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lms/envs/test.py b/lms/envs/test.py index 1e52d4297c..b26c03b4de 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -486,6 +486,9 @@ FEATURES['ENABLE_EDXNOTES'] = True # Enable teams feature for tests. FEATURES['ENABLE_TEAMS'] = True +# Enable teams search for tests. +FEATURES['ENABLE_TEAMS_SEARCH'] = True + # Add milestones to Installed apps for testing INSTALLED_APPS += ('milestones', 'openedx.core.djangoapps.call_stack_manager')

    %di_x!U^d!X!FcS{`yb%WXkbq9P2 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 delta 84726 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 diff --git a/conf/locale/ko_KR/LC_MESSAGES/django.po b/conf/locale/ko_KR/LC_MESSAGES/django.po index 6ee070db15..7a81c5705a 100644 --- a/conf/locale/ko_KR/LC_MESSAGES/django.po +++ b/conf/locale/ko_KR/LC_MESSAGES/django.po @@ -87,7 +87,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:18+0000\n" +"POT-Creation-Date: 2015-09-04 14:07+0000\n" "PO-Revision-Date: 2015-08-14 05:59+0000\n" "Last-Translator: Hongseob Lee \n" "Language-Team: Korean (Korea) (http://www.transifex.com/open-edx/edx-platform/language/ko_KR/)\n" @@ -248,7 +248,7 @@ msgstr "강좌" #: common/lib/xmodule/xmodule/word_cloud_module.py #: cms/templates/container.html cms/templates/library.html msgid "Display Name" -msgstr "표시 이름" +msgstr "메뉴명" #: common/djangoapps/course_modes/models.py #: lms/templates/courseware/course_about.html @@ -279,7 +279,7 @@ msgstr "" #: common/djangoapps/course_modes/models.py msgid "Honor Code Certificate" -msgstr "명예 과정 수료증" +msgstr "명예 과정 이수증" #: common/djangoapps/course_modes/models.py msgid "" @@ -321,7 +321,7 @@ msgstr "명예 과정의 학습자로 등록되었습니다." #: openedx/core/djangoapps/user_api/views.py #: lms/templates/static_templates/honor.html msgid "Honor Code" -msgstr "명예 규범" +msgstr "학습자 서약" #: common/djangoapps/course_modes/models.py msgid "You're auditing this course" @@ -497,7 +497,7 @@ msgstr "국가를 입력하세요." #: common/djangoapps/student/forms.py msgid "To enroll, you must follow the honor code." -msgstr "K-MOOC를 이용하려면, 명예규범을 준수해야 합니다." +msgstr "K-MOOC를 이용하려면, 학습자 서약을 준수해야 합니다." #: common/djangoapps/student/forms.py msgid "You are missing one or more required fields" @@ -505,7 +505,7 @@ msgstr "한 개 이상의 필수 항목을 입력하지 않았습니다. " #: common/djangoapps/student/forms.py msgid "Username and password fields cannot match" -msgstr "아이디와 패스워드가 일치하지 않습니다." +msgstr "아이디와 패스워드가 일치합니다. 다르게 입력해주세요." #: common/djangoapps/student/forms.py common/djangoapps/student/views.py msgid "Password: " @@ -1256,10 +1256,6 @@ msgstr "맞음" msgid "incorrect" msgstr "틀림" -#: common/lib/capa/capa/inputtypes.py -msgid "partially correct" -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "incomplete" msgstr "미완성" @@ -1282,10 +1278,6 @@ msgstr "맞습니다." msgid "This is incorrect." msgstr "틀립니다." -#: common/lib/capa/capa/inputtypes.py -msgid "This is partially correct." -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "This is unanswered." msgstr "미응답 상태입니다." @@ -2492,7 +2484,7 @@ msgstr "다른 이용 가능한 강좌 저작 도구를 찾아서, 필요할 때 #: common/lib/xmodule/xmodule/course_module.py msgid "Draft a Rough Course Outline" -msgstr "강좌 개요 초안" +msgstr "강좌 개요 초안 만들기" #: common/lib/xmodule/xmodule/course_module.py msgid "Create Your First Section and Subsection" @@ -2607,7 +2599,7 @@ msgstr "도움말 다운로드" #: common/lib/xmodule/xmodule/course_module.py msgid "Draft Your Course About Page" -msgstr "강좌 안내 작성" +msgstr "강좌 안내 작성하기" #: common/lib/xmodule/xmodule/course_module.py msgid "Draft a Course Description" @@ -4744,8 +4736,15 @@ msgid "{month} {day}, {year}" msgstr "{month} {day}, {year}" #: lms/djangoapps/certificates/views/webview.py -msgid "a course of study offered by {partner_name}, through {platform_name}." -msgstr " {platform_name}를 통해 {partner_name}에서 제공하는 강좌입니다. " +msgid "" +"a course of study offered by {partner_short_name}, an online learning " +"initiative of {partner_long_name} through {platform_name}." +msgstr "" + +#: lms/djangoapps/certificates/views/webview.py +msgid "" +"a course of study offered by {partner_short_name}, through {platform_name}." +msgstr "" #. Translators: Accomplishments describe the awards/certifications obtained by #. students on this platform @@ -4854,16 +4853,14 @@ msgstr "{platform_name}은 다음 학습자의 성과를 인정합니다. " #: lms/djangoapps/certificates/views/webview.py msgid "" "This is a valid {platform_name} certificate for {user_name}, who " -"participated in {partner_name} {course_number}" +"participated in {partner_short_name} {course_number}" msgstr "" -"이것은 {partner_name} {course_number}에 참여한 {user_name}님의 유효한 {platform_name} " -"수료증입니다. " #. Translators: This text is bound to the HTML 'title' element of the page #. and appears in the browser title bar #: lms/djangoapps/certificates/views/webview.py -msgid "{partner_name} {course_number} Certificate | {platform_name}" -msgstr "{partner_name} {course_number} 수료증 | {platform_name}" +msgid "{partner_short_name} {course_number} Certificate | {platform_name}" +msgstr "" #. Translators: This text fragment appears after the student's name #. (displayed in a large font) on the certificate @@ -5021,6 +5018,14 @@ msgid "" "{payment_support_link}." msgstr "신청 강좌가 학습자의 대시보드에 나타나지 않을 경우, {payment_support_link} 로 연락바랍니다." +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "{course_id} is not a valid course key." +msgstr "" + +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "Course {course_id} does not exist." +msgstr "" + #: lms/djangoapps/course_wiki/tab.py lms/djangoapps/course_wiki/views.py #: lms/templates/wiki/base.html msgid "Wiki" @@ -5403,7 +5408,7 @@ msgstr "수강 등록한 학습자수 " #: lms/djangoapps/dashboard/sysadmin.py msgid "# staff" -msgstr "관리자 인원수 " +msgstr "운영팀 인원수 " #: lms/djangoapps/dashboard/sysadmin.py msgid "instructors" @@ -5474,13 +5479,13 @@ msgstr "{platform_name} 관리자" #: lms/djangoapps/instructor/paidcourse_enrollment_report.py msgid "Course Staff" -msgstr "강좌 관리자" +msgstr "강좌 운영팀" #: lms/djangoapps/instructor/paidcourse_enrollment_report.py #: lms/templates/courseware/course_navigation.html #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Staff" -msgstr "관리자" +msgstr "운영팀" #: lms/djangoapps/instructor/paidcourse_enrollment_report.py msgid "Used Registration Code" @@ -5548,6 +5553,23 @@ msgstr " 아이디 {user} 가 이미 존재합니다. " msgid "File is not attached." msgstr "파일이 첨부되지 않았습니다 " +#: lms/djangoapps/instructor/views/api.py +msgid "Could not find problem with this location." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"The problem responses report is being created. To view the status of the " +"report, see Pending Tasks below." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"A problem responses report generation task is already in progress. Check the" +" 'Pending Tasks' table for the status of the task. When completed, the " +"report will be available for download in the table below." +msgstr "" + #: lms/djangoapps/instructor/views/api.py msgid "Invoice number '{num}' does not exist." msgstr "청구서 번호 '{num}' 가 존재하지 않습니다. " @@ -5952,6 +5974,10 @@ msgstr "mode slug({mode_slug}) 강좌 모드는 존재하지 않습니다." msgid "CourseMode price updated successfully" msgstr "CourseMode의 가격이 성공적으로 업데이트되었습니다. " +#: lms/djangoapps/instructor/views/instructor_dashboard.py +msgid "No end date set" +msgstr "" + #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "Enrollment data is now available in {dashboard_link}." msgstr "수강등록 데이터를 {dashboard_link}에서 볼 수 있습니다. " @@ -5976,7 +6002,7 @@ msgstr "확장" #: lms/djangoapps/instructor/views/instructor_dashboard.py #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "Data Download" -msgstr "자료 다운받기" +msgstr "데이터" #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "For analytics about your course, go to {analytics_dashboard_name}." @@ -6047,18 +6073,6 @@ msgstr "외부 이메일" msgid "Grades for assignment \"{name}\"" msgstr "\"{name}\" 과제의 성적" -#: lms/djangoapps/instructor/views/legacy.py -msgid "Found {num} records to dump." -msgstr "Found {num} records to dump. " - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Couldn't find module with that urlname." -msgstr "해당 urlname을 가진 모듈을 찾을 수 없습니다. " - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Student state for problem {problem}" -msgstr "{problem} 문제 학습자 상태" - #: lms/djangoapps/instructor/views/legacy.py msgid "Grades from {course_id}" msgstr " {course_id} 강좌 성적" @@ -6092,7 +6106,7 @@ msgstr "{action}에 대한 원격 성적기록부 응답" #: lms/djangoapps/instructor/views/legacy.py #: openedx/core/djangoapps/user_api/views.py msgid "Full name" -msgstr "이름" +msgstr "실명" #: lms/djangoapps/instructor/views/legacy.py msgid "{title} in course {course_key}" @@ -6109,7 +6123,7 @@ msgstr "아이디" #: lms/templates/signup_modal.html lms/templates/sysadmin_dashboard.html #: lms/templates/verify_student/face_upload.html msgid "Full Name" -msgstr "이름" +msgstr "실명" #: lms/djangoapps/instructor/views/legacy.py msgid "edX email" @@ -6222,6 +6236,12 @@ msgstr "삭제되었습니다." msgid "emailed" msgstr "이메일이 전송되었습니다." +#. Translators: This is a past-tense verb that is inserted into task progress +#. messages as {action}. +#: lms/djangoapps/instructor_task/tasks.py +msgid "generated" +msgstr "생성되었습니다." + #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -6234,12 +6254,6 @@ msgstr "채점되었습니다." msgid "problem distribution graded" msgstr "채점된 문제 분포" -#. Translators: This is a past-tense verb that is inserted into task progress -#. messages as {action}. -#: lms/djangoapps/instructor_task/tasks.py -msgid "generated" -msgstr "생성되었습니다." - #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -6643,7 +6657,7 @@ msgstr "제출이 검토를 위해 표시되었습니다." #: lms/djangoapps/open_ended_grading/views.py #: lms/templates/instructor/staff_grading.html msgid "Staff grading" -msgstr "관리자 채점" +msgstr "운영팀 채점" #. Translators: "Peer grading" appears on a tab that allows #. students to view open-ended problems that require grading @@ -7786,12 +7800,12 @@ msgid "course_id must be provided" msgstr "course_id가 제공되어야 합니다." #: lms/djangoapps/teams/views.py -msgid "The supplied topic id {topic_id} is not valid" -msgstr "제공된 주제 ID {topic_id}가 유효하지 않습니다." +msgid "text_search and order_by cannot be provided together" +msgstr "" #: lms/djangoapps/teams/views.py -msgid "text_search is not yet supported." -msgstr "text_search는 제공되지 않습니다." +msgid "The supplied topic id {topic_id} is not valid" +msgstr "제공된 주제 ID {topic_id}가 유효하지 않습니다." #. Translators: 'ordering' is a string describing a way #. of ordering a list. For example, {ordering} may be @@ -8686,7 +8700,7 @@ msgstr "이 글에는 첨부가 없습니다." #: openedx/core/djangoapps/course_groups/cohorts.py msgid "You cannot create two cohorts with the same name" -msgstr "두 학습 집단을 같은 이름으로 만들 수 없습니다." +msgstr "학습집단명은 같을 수 없습니다." #: openedx/core/djangoapps/course_groups/cohorts.py msgid "" @@ -8902,7 +8916,7 @@ msgstr "국가를 선택하십시오" #. in order to register a new account. #: openedx/core/djangoapps/user_api/views.py msgid "Terms of Service and Honor Code" -msgstr "서비스 조항 및 명예 규범" +msgstr "서비스 조항 및 학습자 서약" #: openedx/core/djangoapps/user_api/views.py msgid "I agree to the {platform_name} {terms_of_service}." @@ -9089,7 +9103,7 @@ msgstr "" #: cms/djangoapps/contentstore/views/course.py msgid "Unscheduled" -msgstr "" +msgstr "지정되지 않음" #: cms/djangoapps/contentstore/views/course.py msgid "" @@ -9504,7 +9518,7 @@ msgstr "계정이 이미 활성화되어 있습니다." #: cms/templates/registration/activation_complete.html #: lms/templates/registration/activation_complete.html msgid "Visit your {link_start}dashboard{link_end} to see your courses." -msgstr "강좌를 보기 위해서는 {link_start}대시보드{link_end}를 방문하세요." +msgstr "강좌를 보기 위해 {link_start}대시보드{link_end}로 이동하세요. " #: cms/templates/widgets/header.html lms/templates/courseware/courseware.html msgid "Course Navigation" @@ -9525,6 +9539,10 @@ msgstr "도움말" msgid "Sign Out" msgstr "로그아웃" +#: common/lib/capa/capa/templates/codeinput.html +msgid "{programming_language} editor" +msgstr "" + #: common/templates/license.html msgid "All Rights Reserved" msgstr "모든 저작권이 보호됩니다." @@ -9567,7 +9585,7 @@ msgstr "축하합니다. {course_name}에 수강 신청이 되었습니다" #: common/templates/course_modes/choose.html msgid "Pursue Academic Credit with a Verified Certificate" -msgstr "인증된 강좌 수료증으로 학점 받기" +msgstr "인증된 이수증으로 학점 받기" #: common/templates/course_modes/choose.html msgid "" @@ -9576,12 +9594,12 @@ msgid "" "qualify for academic credit from {org}, advance your career, or strengthen " "your school applications." msgstr "" -"{org} 기관의 학점을 이수할 수 있을 만큼인 귀하의 새로운 기술과 지식을, 이 인증 수료증으로 보여주세요. 이 수료증을 귀하의 커리어" -" 개발과 학교 지원에 활용하면 도움이 될 것입니다." +"{org} 기관의 학점을 이수할 수 있을 만큼인 귀하의 새로운 기술과 지식을, 이수증으로 보여주세요. 이수증을 귀하의 커리어 개발과 학교" +" 지원에 활용하면 도움이 될 것입니다." #: common/templates/course_modes/choose.html msgid "Benefits of a Verified Certificate" -msgstr "인증된 강좌 수료증의 혜택" +msgstr "인증된 이수증의 혜택" #: common/templates/course_modes/choose.html msgid "" @@ -9593,7 +9611,7 @@ msgstr "{b_start} credit을 위한 자격:{b_end} 강좌를 성공적으로 완 msgid "" "{b_start}Official:{b_end} Receive an instructor-signed certificate with the " "institution's logo" -msgstr "{b_start}공식:{b_end} 기관의 로고와 교수자의 서명이 담긴 강좌 수료증을 받으세오." +msgstr "{b_start}공식:{b_end} 기관의 로고와 교수자의 서명이 담긴 이수증을 받으세요." #: common/templates/course_modes/choose.html msgid "" @@ -9692,7 +9710,7 @@ msgstr "수강중인 강좌 " #: lms/templates/dashboard.html msgid "Looks like you haven't enrolled in any courses yet." -msgstr "아직 등록한 강의가 없군요!" +msgstr "아직 수강하는 강의가 없군요!" #: lms/templates/dashboard.html msgid "Find courses now!" @@ -10776,7 +10794,7 @@ msgstr "사용자" #: lms/templates/sysadmin_dashboard.html #: lms/templates/sysadmin_dashboard_gitlogs.html msgid "Staffing and Enrollment" -msgstr "운영진 설정 및 등록" +msgstr "운영팀 설정 및 등록" #. Translators: refers to http://git-scm.com/docs/git-log #: lms/templates/sysadmin_dashboard.html @@ -10820,7 +10838,7 @@ msgstr "강좌 운영팀과 교수자를 관리합니다." #: lms/templates/sysadmin_dashboard.html msgid "Download staff and instructor list (csv file)" -msgstr "운영진/교수자 목록 다운로드(CSV파일)" +msgstr "운영팀/교수자 목록 다운로드(CSV파일)" #: lms/templates/sysadmin_dashboard.html msgid "Administer Courses" @@ -11215,7 +11233,7 @@ msgstr "학습자 일괄 추가를 위해 줄바꿈 혹은 쉼표로 이메일/ msgid "" "You will not get notification for emails that bounce, so please double-check" " spelling." -msgstr "이메일 주소가 정확한지 확인해야 합니다. 반송되는 이메일을 확인할 수 없기 때문입니다." +msgstr "이메일 주소가 정확한지 확인해야 합니다. " #: lms/templates/ccx/enrollment.html #: lms/templates/instructor/instructor_dashboard_2/membership.html @@ -11754,7 +11772,8 @@ msgstr "선수요건" msgid "" "You must successfully complete {link_start}{prc_display}{link_end} before " "you begin this course." -msgstr "강좌를 시작하시 전에 {link_start}{prc_display}{link_end}을 성공적으로 완료해야 합니다. " +msgstr "" +"이 강좌를 수강하려면, 먼저 선수 강좌인 {link_start}{prc_display}{link_end} 수강을 하셔야 합니다." #: lms/templates/courseware/course_about.html msgid "Additional Resources" @@ -11849,7 +11868,7 @@ msgstr "검색" #: lms/templates/courseware/courseware.html msgid "No content has been added to this course" -msgstr "강좌 내용을 추가해 보세요. " +msgstr "강좌 내용을 추가하세요. " #: lms/templates/courseware/courseware.html #, python-format @@ -12068,8 +12087,10 @@ msgid "Section:" msgstr "주제:" #: lms/templates/courseware/legacy_instructor_dashboard.html -msgid "Problem urlname:" -msgstr "문제 url 이름:" +msgid "" +"To download a CSV listing student responses to a given problem, visit the " +"Data Download section of the Instructor Dashboard." +msgstr "" #: lms/templates/courseware/legacy_instructor_dashboard.html msgid "" @@ -13850,7 +13871,7 @@ msgid "" "exams and problem sets), and can be changed on the 'Grading' page (under " "'Settings') in Studio." msgstr "" -"강좌의 채점 정보를 표시하려면 클릭하세요. 스튜디오의 '과제 평가' ('설정' 메뉴 아래) 메뉴에서 설정(문제 세트, 평가 등)을 변경할" +"강좌의 성적 정보를 표시하려면 클릭하세요. 스튜디오의 '과제 평가' ('설정' 메뉴 아래) 메뉴에서 설정(문제 세트, 평가 등)을 변경할" " 수 있습니다." #: lms/templates/instructor/instructor_dashboard_2/data_download.html @@ -13863,7 +13884,7 @@ msgstr "익명 학습자 아이디를 CSV 파일로 다운로드하기" #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "Get Student Anonymized IDs CSV" -msgstr "학습자 익명 아이디를 CSV 파일 만들기" +msgstr "익명 학습자 아이디 CSV 파일" #: lms/templates/instructor/instructor_dashboard_2/data_download.html #: lms/templates/instructor/instructor_dashboard_2/e-commerce.html @@ -13885,7 +13906,7 @@ msgstr "" msgid "" "Please be patient and do not click these buttons multiple times. Clicking " "these buttons multiple times will significantly slow the generation process." -msgstr "잠시만 기다려 주세요. 버튼을 여러번 클릭하지 마세요. 버튼을 여러번 클릭하게 되면 생성하는 과정이 느려집니다." +msgstr "버튼을 여러번 클릭하지 마세요. 그럴 경우, 생성 과정이 느려집니다." #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" @@ -13916,6 +13937,20 @@ msgstr "" msgid "Generate Proctored Exam Results Report" msgstr "" +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "" +"To generate a CSV file that lists all student answers to a given problem, " +"enter the location of the problem (from its Staff Debug Info)." +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Problem location: " +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Download a CSV of problem responses" +msgstr "" + #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" "For smaller courses, click to list profile information for enrolled students" @@ -13950,8 +13985,8 @@ msgid "" "generation. Reports are not deleted, so you will always be able to access " "previously generated reports from this page." msgstr "" -"아래 보고서를 다운로드할 수 있습니다. 각 보고서는 UTC 날짜와 생성시간에 의해 구별됩니다. 생성된 보고서는 지워지지 않기 때문에, " -"계속 다운로드 가능합니다." +"아래 보고서를 다운로드할 수 있습니다. 각 보고서는 날짜와 생성시간으로 구별됩니다. 생성된 보고서는 지워지지 않기 때문에, 계속 다운로드" +" 가능합니다." #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" @@ -14664,8 +14699,8 @@ msgid "" " to manage course team membership. You can only give course team roles to " "enrolled users." msgstr "" -"관리자 권한을 가진 강좌 팀원은 당신의 강좌 운영을 지원합니다. 운영팀이 할 수 있는 모든 작업을 할 수 있고, 강좌 팀원을 관리하기 " -"위해 운영팀, 관리자, 토의 진행자, 베타테스터 권한을 추가하거나 없앨수 있습니다. " +"교수자 권한을 가진 팀원은 강좌 운영팀이 할 수 있는 모든 작업을 할 수 있고, 팀 구성원을 관리하기 위해 운영팀, 교수자, 토의 " +"조정자, 베타테스터 권한을 추가하거나 없앨 수 있습니다. " #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Add Admin" @@ -14848,7 +14883,7 @@ msgstr "" #: lms/templates/instructor/instructor_dashboard_2/send_email.html msgid "Send Email" -msgstr "이메일 발송" +msgstr "이메일 발신" #: lms/templates/instructor/instructor_dashboard_2/send_email.html msgid "Send to:" @@ -14882,7 +14917,7 @@ msgstr "본문: " msgid "" "Please try not to email students more than once per week. Before sending " "your email, consider:" -msgstr "주 1회 이상 이메일 발송은 삼가해 주세요. 이메일 발송 전 점검 사항:" +msgstr "주 1회 이상 이메일 발신은 삼가해 주세요. 이메일 발신 전 점검 사항:" #: lms/templates/instructor/instructor_dashboard_2/send_email.html msgid "" @@ -14895,7 +14930,7 @@ msgid "" "Have you sent the email to yourself first to make sure you're happy with how" " it's displayed, and that embedded links and images work properly?" msgstr "" -"이메일이 잘 작성되었는지 확인하기 위해 우선 나에게만 발송하셨는지요? 이메일 내용 중 링크와 이미지는 잘 보이는지 확인하세요." +"이메일이 잘 작성되었는지 확인하기 위해 우선 자신에게만 발신하셨는지요? 이메일 내용 중 링크와 이미지는 잘 보이는지 확인하세요." #: lms/templates/instructor/instructor_dashboard_2/send_email.html msgid "CAUTION!" @@ -14905,11 +14940,11 @@ msgstr "주의!" msgid "" "Once the 'Send Email' button is clicked, your email will be queued for " "sending." -msgstr "일단 아래 '이메일 발송' 을 클릭하면, 발송대기 상태로 바뀝니다. " +msgstr "일단 아래 '이메일 발신' 을 클릭하면, 발신 대기 상태로 바뀝니다. " #: lms/templates/instructor/instructor_dashboard_2/send_email.html msgid "A queued email CANNOT be cancelled." -msgstr "발송한 메일은 취소되지 않습니다." +msgstr "발신은 취소할 수 없습니다." #: lms/templates/instructor/instructor_dashboard_2/send_email.html msgid "" @@ -14919,15 +14954,15 @@ msgstr "모든 작업은 백그라운드에서 이루어집니다. 이메일을 #: lms/templates/instructor/instructor_dashboard_2/send_email.html msgid "Email Task History" -msgstr "이메일 기록" +msgstr "이메일 발신 기록" #: lms/templates/instructor/instructor_dashboard_2/send_email.html msgid "To see the content of all previously sent emails, click this button:" -msgstr "발송된 이메일 내용을 보기 위해 다음 버튼을 클릭하세요." +msgstr "발신된 이메일 내용을 보기 위해 다음 버튼을 클릭하세요." #: lms/templates/instructor/instructor_dashboard_2/send_email.html msgid "Sent Email History" -msgstr "이메일 기록 보기" +msgstr "이메일 발신 기록 보기" #: lms/templates/instructor/instructor_dashboard_2/send_email.html msgid "To read an email, click its subject." @@ -14971,7 +15006,7 @@ msgstr "성적 기록부 보기 " #: lms/templates/instructor/instructor_dashboard_2/student_admin.html msgid "Student-specific grade inspection" -msgstr "학습자 별 성적 사정" +msgstr "학습자별 성적 사정" #: lms/templates/instructor/instructor_dashboard_2/student_admin.html msgid "Click this link to view the student's progress page:" @@ -15990,7 +16025,7 @@ msgstr "" #: lms/templates/verify_student/face_upload.html msgid "Edit Your Full Name" -msgstr "이름 편집" +msgstr "실명 편집" #: lms/templates/verify_student/face_upload.html msgid "The following error occurred while editing your name:" @@ -16212,7 +16247,7 @@ msgstr "페이지 액션" #: cms/templates/asset_index.html cms/templates/videos_index.html msgid "Upload New File" -msgstr "새 파일 업로드" +msgstr "파일 업로드" #: cms/templates/asset_index.html msgid "Adding Files for Your Course" @@ -16223,7 +16258,7 @@ msgid "" "To add files to use in your course, click {em_start}Upload New File{em_end}." " Then follow the prompts to upload a file from your computer." msgstr "" -"강좌에 사용할 파일을 추가하려면 {em_start}새 파일 업로드{em_end}를 클릭하세요. 그후 컴퓨터에서 파일을 업로드하세요." +"강좌에 사용할 파일을 추가하려면 {em_start} 파일 업로드{em_end}를 클릭하세요. 그후 컴퓨터에서 파일을 업로드하세요." #: cms/templates/asset_index.html msgid "" @@ -16288,65 +16323,62 @@ msgstr "알림 닫기" #: cms/templates/certificates.html msgid "Course Certificates" -msgstr "강좌 수료증" +msgstr "이수증" #: cms/templates/certificates.html msgid "This module is not enabled." msgstr "모듈이 활성화되지 않았습니다." #: cms/templates/certificates.html -msgid "" -"Upon successful completion of your course, learners receive a certificate to" -" acknowledge their accomplishment. If you are a course team member with the " -"Admin role in Studio, you can configure your course certificate." +msgid "Working with Certificates" msgstr "" -"강좌 수료 직후, 학습자는 성과를 인정받을 수 있는 수료증을 받을 수 있습니다. 강좌 운영팀 중 교수자가 수료증을 설정할 수 있습니다." -" " #: cms/templates/certificates.html msgid "" -"Click {em_start}Add your first certificate{em_end} to add a certificate " -"configuration. Upload the organization logo to be used on the certificate, " -"and specify at least one signatory. You can include up to four signatories " -"for a certificate. You can also upload a signature image file for each " -"signatory. {em_start}Note:{em_end} Signature images are used only for " -"verified certificates. Optionally, specify a different course title to use " -"on your course certificate. You might want to use a different title if, for " -"example, the official course name is too long to display well on a " -"certificate." +"Specify a course title to use on the certificate if the course's official " +"title is too long to be displayed well." msgstr "" -"새로운 수료증 설정을 위해 {em_start}첫 수료증 추가하기{em_end}를 클릭합니다. 수료증에 넣을 기관 로고를 업로드하고, " -"최소 1개 이상의 서명인을 지정하세요. 최대 4개까지 지정 가능합니다. 서명인으로 사용할 이미지 파일을 각각 업로드할 수 있습니다. " -"{em_start} 알아두셔야 할 것은, {em_end} 서명 이미지가 인증 수료증에만 사용된다는 것입니다. 선택 사항입니다만, 각 " -"수료증마다 강좌명을 다르게 할 수도 있습니다. 이는 예를 들어, 실제 강좌명이 수료증에 넣기에 너무 긴 경우 등을 위한 것입니다." #: cms/templates/certificates.html msgid "" -"Select a course mode and click {em_start}Preview Certificate{em_end} to " -"preview the certificate that a learner in the selected enrollment track " -"would receive. When the certificate is ready for issuing, click " -"{em_start}Activate.{em_end} To stop issuing an active certificate, click " -"{em_start}Deactivate{em_end}." +"For verified certificates, specify between one and four signatories and " +"upload the associated images." msgstr "" -"강좌 모드를 선택하고, 선택한 수강 트랙의 학습자가 받을 수료증을 미리보기 위해, {em_start}수료증 미리보기{em_end}를 " -"클릭합니다. 수료증 발급 준비가 되셨다면, {em_start}활성화{em_end}를 클릭하세요. 수료증 발급 활성화를 중단하려면, " -"{em_start}비활성화{em_end}를 클릭합니다." #: cms/templates/certificates.html msgid "" -" To edit the certificate configuration, hover over the top right corner of " -"the form and click {em_start}Edit{em_end}. To delete a certificate, hover " -"over the top right corner of the form and click the delete icon. In general," -" do not delete certificates after a course has started, because some " -"certificates might already have been issued to learners." +"To edit or delete a certificate before it is activated, hover over the top " +"right corner of the form and select {em_start}Edit{em_end} or the delete " +"icon." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To view a sample certificate, choose a course mode and select " +"{em_start}Preview Certificate{em_end}." +msgstr "" + +#: cms/templates/certificates.html +msgid "Issuing Certificates to Learners" +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To begin issuing certificates, a course team member with the Admin role " +"selects {em_start}Activate{em_end}. Course team members without the Admin " +"role cannot edit or delete an activated certificate." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"{em_start}Do not{em_end} delete certificates after a course has started; " +"learners who have already earned certificates will no longer be able to " +"access them." msgstr "" -"수료증 설정을 수정하려면, 양식 오른쪽 상단의 {em_start}수정{em_end}을 클릭하세요. 수료증을 삭제하려면, 삭제 아이콘을 " -"클릭하면 됩니다. 이미 강좌가 시작된 경우라면, 수료증을 삭제하지 마십시오. 이미 일부 학습자에게 수료증이 발급되었을 수 있기 " -"때문입니다. " #: cms/templates/certificates.html msgid "Learn more about certificates" -msgstr "강좌 수료증에 대해 더 알아보기" +msgstr "이수증에 대해 더 알아보기" #: cms/templates/certificates.html cms/templates/group_configurations.html #: cms/templates/settings.html cms/templates/settings_advanced.html @@ -16648,7 +16680,7 @@ msgstr "강좌 공지사항" #: cms/templates/course_info.html msgid "New Update" -msgstr "신규 업데이트" +msgstr "새 공지사항" #: cms/templates/course_info.html msgid "" @@ -16801,7 +16833,7 @@ msgid "" "To hide content from students, select the Configure icon for a section, " "subsection, or unit, then select {em_start}Hide from students{em_end}." msgstr "" -"학습자에게 콘텐츠를 보이지 않게 하려면, 주제 및 소주제의 설정에서 {em_start}학습자에게 감추기기{em_end}를 선택하세요." +"학습자에게 콘텐츠를 보이지 않게 하려면, 주제 및 소주제의 설정에서 {em_start}학습자에게 감추기{em_end}를 선택하세요." #: cms/templates/course_outline.html msgid "Learn more about the course outline" @@ -17759,7 +17791,9 @@ msgstr "고급 설정에서 학습자가 볼 명칭을 새롭게 설정할 수 #: cms/templates/index.html msgid "" "The unique number that identifies your course within your organization." -msgstr "기관별 강좌 고유번호입니다." +msgstr "" +"이 강좌의 고유한 번호로 'KMOOC01'과 같이, 강좌 제공 기관의 영문 약자와 제공 기관의 몇 번째 강좌인지 번호의 조합으로 " +"입력합니다. " #: cms/templates/index.html msgid "" @@ -17770,7 +17804,7 @@ msgstr "" #: cms/templates/index.html msgid "The term in which your course will run." -msgstr "강좌 운영 기간." +msgstr "강좌 제공 기관별로 자유롭게 번호를 지정할 수 있습니다. " #: cms/templates/index.html msgid "Create" @@ -17877,17 +17911,17 @@ msgstr "강의 다시 시작하기" #: cms/templates/index.html msgid "Are you staff on an existing {studio_name} course?" -msgstr "{studio_name} 관리자입니까?" +msgstr "{studio_name} 강좌 운영팀인가요?" #: cms/templates/index.html msgid "" "The course creator must give you access to the course. Contact the course " "creator or administrator for the course you are helping to author." -msgstr "강좌 개설자가 귀하에게 강좌 접근 권한을 줘야 합니다. 강좌 개설자 또는 관리자에게 문의하세요." +msgstr "강좌 개설자가 귀하에게 강좌 접근 권한을 줘야 합니다. 강좌 개설자 또는 강좌 제공 기관의 관리자에게 문의하세요." #: cms/templates/index.html msgid "Create Your First Course" -msgstr "처음 강좌를 만들어 보세요" +msgstr "첫 강좌를 만듭니다." #: cms/templates/index.html msgid "Your new course is just a click away!" @@ -17960,7 +17994,7 @@ msgstr "" msgid "" "Your request is currently being reviewed by {platform_name} staff and should" " be updated shortly." -msgstr "요청은 현재 {platform_name} 직원에 의해 검토되고 있으며 곧 업데이트 될 것입니다." +msgstr "요청은 현재 {platform_name} 관리자에 의해 검토되고 있으며 곧 업데이트 될 것입니다." #: cms/templates/index.html msgid "(Read-only)" @@ -18055,7 +18089,7 @@ msgid "" "email address (%(email)s). An activation message and next steps should be " "waiting for you there." msgstr "" -"등록 절차를 완료하려면 이메일 주소(%(email)s)를 인증받아야 합니다. 입력한 이메일 주소로 발송된 등록 이메일을 확인해주세요." +"등록 절차를 완료하려면 이메일 주소(%(email)s)를 인증받아야 합니다. 입력한 이메일 주소로 발신된 등록 이메일을 확인해주세요." #: cms/templates/index.html msgid "Need help?" @@ -18172,7 +18206,7 @@ msgstr "새로 추가할 구성원 이메일 주소" #: cms/templates/manage_users.html msgid "Provide the email address of the user you want to add as Staff" -msgstr "관리자로 추가하고 싶은 이용자의 이메일 주소를 제공합니다." +msgstr "운영팀으로 추가하고 싶은 이용자의 이메일 주소를 입력합니다." #: cms/templates/manage_users.html cms/templates/manage_users_lib.html msgid "Add User" @@ -18561,7 +18595,7 @@ msgstr "수강 대상 학습자를 위한 정보" #: cms/templates/settings.html msgid "Course Short Description" -msgstr "강좌 간단소개" +msgstr "강좌에 대한 짧은 소개" #: cms/templates/settings.html msgid "" @@ -18641,11 +18675,11 @@ msgstr "효과적인 학습을 위해 학습 시간 및 선수 강좌를 입력 #: cms/templates/settings.html msgid "Hours of Effort per Week" -msgstr "주당 학습 권장 시간" +msgstr "주별 학습 권장 시간" #: cms/templates/settings.html msgid "Time spent on all course work" -msgstr "주당 학습에 투자하길 권장하는 시간" +msgstr "주별 학습에 투자하길 권장하는 시간" #: cms/templates/settings.html msgid "Prerequisite Course" @@ -19011,7 +19045,7 @@ msgstr "공개 대상:" #: cms/templates/visibility_editor.html msgid "All Students and Staff" -msgstr "전체 학습자와 관리자" +msgstr "전체 학습자와 운영팀" #: cms/templates/visibility_editor.html msgid "Specific Content Groups" @@ -19047,8 +19081,7 @@ msgid "" "Thank you for signing up for {studio_name}! To activate your account, please" " copy and paste this address into your web browser's address bar:" msgstr "" -"{studio_name}에 가입 해 주셔서 감사합니다! 계정을 활성화 하려면 웹 브라우저의 주소 표시 줄에 이 주소를 복사해서 붙여 " -"넣으십시오" +"{studio_name} 가입을 환영합니다! 계정을 활성화하려면 웹 브라우저의 주소 표시줄에 이 주소를 복사해서 붙여넣으시길 바랍니다." #: cms/templates/emails/activation_email.txt msgid "" diff --git a/conf/locale/ko_KR/LC_MESSAGES/djangojs.mo b/conf/locale/ko_KR/LC_MESSAGES/djangojs.mo index c4b6b78e492ad90a966620bf8639b439fa735981..b87fd7f35839c63d91a5a81933bcdae79617b982 100644 GIT binary patch delta 16791 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 U9e@A5E6Zm~yURO+*C4O|0ccv?!T\n" +"POT-Creation-Date: 2015-09-04 14:06+0000\n" +"PO-Revision-Date: 2015-09-04 14:08+0000\n" +"Last-Translator: Sarina Canelake \n" "Language-Team: Korean (Korea) (http://www.transifex.com/open-edx/edx-platform/language/ko_KR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -100,8 +100,8 @@ msgstr "확인" #: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js #: cms/static/js/views/modals/base_modal.js #: cms/static/js/views/modals/course_outline_modals.js -#: cms/static/js/views/utils/view_utils.js #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/js/components/utils/view_utils.js #: cms/templates/js/add-xblock-component-menu-problem.underscore #: cms/templates/js/add-xblock-component-menu.underscore #: cms/templates/js/certificate-editor.underscore @@ -112,6 +112,11 @@ msgstr "확인" #: cms/templates/js/group-configuration-editor.underscore #: cms/templates/js/section-name-edit.underscore #: cms/templates/js/xblock-string-field-editor.underscore +#: common/static/common/templates/discussion/new-post.underscore +#: common/static/common/templates/discussion/response-comment-edit.underscore +#: common/static/common/templates/discussion/thread-edit.underscore +#: common/static/common/templates/discussion/thread-response-edit.underscore +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cancel" msgstr "취소" @@ -2006,6 +2011,18 @@ msgstr "코멘트를 삭제하는데 오류가 발생했습니다. 다시 시도 msgid "Are you sure you want to delete this response?" msgstr "이 답변을 삭제하시겠습니까?" +#: common/static/common/js/components/utils/view_utils.js +msgid "Required field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces in this field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces or special characters in this field." +msgstr "" + #: common/static/common/js/components/views/paging_header.js msgid "Showing %(first_index)s out of %(num_items)s total" msgstr "총 %(num_items)s개 중 %(first_index)s 보기" @@ -2163,6 +2180,7 @@ msgstr "게시된 날짜" #: common/static/js/vendor/ova/catch/js/catch.js #: lms/static/js/courseware/credit_progress.js +#: common/static/common/templates/discussion/forum-actions.underscore #: lms/templates/discovery/facet.underscore #: lms/templates/edxnotes/note-item.underscore msgid "More" @@ -2234,21 +2252,35 @@ msgid "An unexpected error occurred. Please try again." msgstr "" #: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "last activity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "open slots" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/collections/topic.js #: lms/templates/edxnotes/tab-item.underscore msgid "name" msgstr "이름" -#: lms/djangoapps/teams/static/teams/js/collections/team.js -msgid "open_slots" -msgstr "open_slots" - #. Translators: This refers to the number of teams (a count of how many teams #. there are) #: lms/djangoapps/teams/static/teams/js/collections/topic.js msgid "team count" msgstr "팀 인원 수" +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: cms/templates/js/certificate-editor.underscore +#: cms/templates/js/content-group-editor.underscore +#: cms/templates/js/group-configuration-editor.underscore +msgid "Create" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +msgid "Update" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/edit_team.js msgid "Team Name (Required) *" msgstr "" @@ -2273,6 +2305,7 @@ msgid "Language" msgstr "언어" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "" "The language that team members primarily use to communicate with each other." msgstr "" @@ -2283,6 +2316,7 @@ msgid "Country" msgstr "국가" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "The country that team members primarily identify with." msgstr "" @@ -2315,20 +2349,48 @@ msgstr "" msgid "You are not currently a member of any team." msgstr "" +#. Translators: "and others" refers to fact that additional members of a team +#. exist that are not displayed. +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "and others" +msgstr "" + +#. Translators: 'date' is a placeholder for a fuzzy, relative timestamp (see: +#. https://github.com/rmm5t/jquery-timeago) +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "Last Activity %(date)s" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/team_card.js msgid "View %(span_start)s %(team_name)s %(span_end)s" msgstr "%(span_start)s %(team_name)s %(span_end)s 보기" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js #: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "An error occurred. Try again." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "Leave this team?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "" +"If you leave, you can no longer post in this team's discussions. Your place " +"will be available to another learner." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/static/js/verify_student/views/reverify_view.js +#: lms/templates/verify_student/review_photos_step.underscore +msgid "Confirm" +msgstr "확인" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "You already belong to another team." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "This team is full." msgstr "" @@ -2345,37 +2407,62 @@ msgstr "" msgid "teams" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Teams" +msgstr "팀" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "" "See all teams in your course, organized by topic. Join a team to collaborate" " with other learners who are interested in the same topic as you are." msgstr "강좌에서 주제별로 조직된 모든 팀을 보세요. 관심사가 같은 다른 학습자들과 협력하기 위해 팀에 참여하세요." -#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "Teams" -msgstr "팀" - #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "My Team" msgstr "" #. Translators: sr_start and sr_end surround text meant only for screen -#. readers. The whole string will be shown to users as "Browse teams" if they -#. are using a screenreader, and "Browse" otherwise. +#. readers. +#. The whole string will be shown to users as "Browse teams" if they are using +#. a +#. screenreader, and "Browse" otherwise. #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Browse %(sr_start)s teams %(sr_end)s" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"Create a new team if you can't find existing teams to join, or if you would " -"like to learn with friends you know." +msgid "Team Search" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Showing results for \"%(searchString)s\"" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Create a New Team" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"Create a new team if you can't find an existing team to join, or if you " +"would like to learn with friends you know." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Edit Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"If you make significant changes, make sure you notify members of the team " +"before making these changes." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Search teams" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "All Topics" msgstr "" @@ -2397,15 +2484,27 @@ msgid "%(team_count)s Team" msgid_plural "%(team_count)s Teams" msgstr[0] "%(team_count)s 팀" +#: lms/djangoapps/teams/static/teams/js/views/topic_card.js +msgid "Topic" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/topic_card.js msgid "View Teams in the %(topic_name)s Topic" msgstr "%(topic_name)s 주제의 팀 보기" +#. Translators: this string is shown at the bottom of the teams page +#. to find a team to join or else to create a new one. There are three +#. links that need to be included in the message: +#. 1. Browse teams in other topics +#. 2. search teams +#. 3. create a new team +#. Be careful to start each link with the appropriate start indicator +#. (e.g. {browse_span_start} for #1) and finish it with {span_end}. #: lms/djangoapps/teams/static/teams/js/views/topic_teams.js msgid "" -"Try {browse_span_start}browsing all teams{span_end} or " -"{search_span_start}searching team descriptions{span_end}. If you still can't" -" find a team to join, {create_span_start}create a new team in this " +"{browse_span_start}Browse teams in other topics{span_end} or " +"{search_span_start}search teams{span_end} in this topic. If you still can't " +"find a team to join, {create_span_start}create a new team in this " "topic{span_end}." msgstr "" @@ -2605,7 +2704,7 @@ msgstr "다음 이용자들을 성공적으로 등록했습니다." msgid "" "Successfully sent enrollment emails to the following users. They will be " "allowed to enroll once they register:" -msgstr "성공적으로 등록 이메일을 다음 이용자들에게 발송했습니다. 이용자들이 등록을 하면 .. 용어 확인이 필요합니다." +msgstr "등록 이메일을 다음 이용자들에게 발송했습니다. " #. Translators: A list of users appears after this sentence; #: lms/static/coffee/src/instructor_dashboard/membership.js @@ -2987,7 +3086,7 @@ msgstr "본문: " #: lms/static/coffee/src/instructor_dashboard/util.js msgid "No tasks currently running." -msgstr "실행중인 작업이 없습니다." +msgstr "작업이 없습니다." #: lms/static/coffee/src/instructor_dashboard/util.js msgid "File Name" @@ -3527,7 +3626,7 @@ msgstr "{platform_name}에서 귀하를 나타낼 이름입니다. 아이디는 #: lms/static/js/student_account/views/account_settings_factory.js msgid "Full Name" -msgstr "이름" +msgstr "실명" #: lms/static/js/student_account/views/account_settings_factory.js msgid "" @@ -3763,11 +3862,6 @@ msgstr "신분증 사진을 찍어 주세요." msgid "Review your info" msgstr "입력 정보를 확인하세요." -#: lms/static/js/verify_student/views/reverify_view.js -#: lms/templates/verify_student/review_photos_step.underscore -msgid "Confirm" -msgstr "확인" - #: lms/static/js/verify_student/views/step_view.js msgid "An error has occurred. Please try reloading the page." msgstr "오류가 발생했습니다. 페이지를 다시 불러오세요." @@ -4309,6 +4403,7 @@ msgid "Date Added" msgstr "" #: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore msgid "Type" msgstr "" @@ -4338,7 +4433,7 @@ msgstr "" #: cms/static/js/views/assets.js cms/static/js/views/assets.js.c #: cms/templates/js/asset-upload-modal.underscore msgid "Upload New File" -msgstr "" +msgstr "파일 업로드" #: cms/static/js/views/assets.js cms/static/js/views/assets.js.c msgid "Load Another File" @@ -4862,18 +4957,6 @@ msgid "" "more than <%=limit%> characters." msgstr "" -#: cms/static/js/views/utils/view_utils.js -msgid "Required field." -msgstr "" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces in this field." -msgstr "" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces or special characters in this field." -msgstr "영어 알파벳을 입력하고, 공백이나 특수문자를 사용하지 마세요." - #: cms/static/js/views/utils/xblock_utils.js msgid "component" msgstr "" @@ -4963,11 +5046,526 @@ msgstr "" msgid "Due Date" msgstr "" +#: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore +msgid "Previous" +msgstr "" + #: cms/templates/js/previous-video-upload-list.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore #: lms/templates/verify_student/enrollment_confirmation_step.underscore msgid "Status" msgstr "상태" +#: common/static/common/templates/image-modal.underscore +msgid "Large" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom In" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom Out" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Page number" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Enter the page number you'd like to quickly navigate to." +msgstr "" + +#: common/static/common/templates/components/paging-header.underscore +msgid "Sorted by" +msgstr "" + +#: common/static/common/templates/components/search-field.underscore +msgid "Clear search" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "DISCUSSION HOME:" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +#: lms/templates/commerce/provider.underscore +#: lms/templates/commerce/receipt.underscore +#: lms/templates/discovery/course_card.underscore +msgid "gettext(" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Find discussions" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Focus in on specific topics" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Search for specific posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Sort by date, vote, or comments" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Engage with posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Upvote posts and good responses" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Report Forum Misuse" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Follow posts for updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Receive updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Toggle Notifications Setting" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "" +"Check this box to receive an email digest once a day notifying you about " +"new, unread activity from posts you are following." +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Mark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Unmark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-close.underscore +msgid "Open" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Endorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Unendorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Follow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Unfollow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Pin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Unpin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report abuse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Unreport" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-vote.underscore +msgid "Vote for this post," +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Visible To:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "All Groups" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "" +"Discussion admins, moderators, and TAs can make their posts visible to all " +"students or specify a single cohort." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Title:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add a clear and descriptive title to encourage participation." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Enter your question or comment" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "follow this post" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously to classmates" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add Post" +msgstr "" + +#: common/static/common/templates/discussion/post-user-display.underscore +msgid "Community TA" +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +#: common/static/common/templates/discussion/thread.underscore +msgid "This thread is closed." +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +msgid "View discussion" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Editing comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Update comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#, python-format +msgid "posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Reported" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Editing post" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Edit post title" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Update post" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "answered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "unanswered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Pinned" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "Following" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Staff" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Community TA" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +msgid "fmt" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "" +"%(comments_count)s %(span_sr_open)scomments (%(unread_comments_count)s " +"unread comments)%(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "%(comments_count)s %(span_sr_open)scomments %(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Editing response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Update response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "fmts" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "Add a comment" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "This post is visible only to %(group_name)s." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "This post is visible to everyone." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "%(post_type)s posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Closed" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "Related to: %(courseware_title_linked)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Post type:" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Question" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "" +"Questions raise issues that need answers. Discussions share ideas and start " +"conversations." +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Add a Response" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Post a response:" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Expand discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Collapse discussion" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Topic Area:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Discussion topics; current selection is:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Filter topics" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Add your post to a relevant topic to help others find it." +msgstr "" + +#: common/static/common/templates/discussion/user-profile.underscore +msgid "Active Threads" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates.underscore +msgid "username or email" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "No results" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Course Key" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download URL" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Grade" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Last Updated" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download the user's certificate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Not available" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate the user's certificate" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be created." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be updated." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Enter information to describe your team. You cannot change these details " +"after you create the team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Optional Characteristics" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Help other learners decide whether to join your team by specifying some " +"characteristics for your team. Choose carefully, because fewer people might " +"be interested in joining your team if it seems too restrictive." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Create team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Update team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team creating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team updating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-actions.underscore +msgid "Are you having trouble finding a team to join?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Join Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "New Post" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team Details" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "You are a member of this team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team member profiles" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team capacity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "country" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "language" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Leave Team" +msgstr "" + +#: lms/static/js/fixtures/donation.underscore +#: lms/templates/dashboard/donation.underscore +msgid "Donate" +msgstr "기부" + #: lms/templates/ccx/schedule.underscore msgid "Expand All" msgstr "" @@ -5008,12 +5606,6 @@ msgstr "" msgid "Subsection" msgstr "" -#: lms/templates/commerce/provider.underscore -#: lms/templates/commerce/receipt.underscore -#: lms/templates/discovery/course_card.underscore -msgid "gettext(" -msgstr "" - #: lms/templates/commerce/provider.underscore #, python-format msgid "%s" @@ -5103,10 +5695,6 @@ msgstr "" msgid "End My Exam" msgstr "" -#: lms/templates/dashboard/donation.underscore -msgid "Donate" -msgstr "기부" - #: lms/templates/discovery/course_card.underscore msgid "LEARN MORE" msgstr "" @@ -5236,11 +5824,11 @@ msgstr "신규 학습 집단 추가" #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Enter the name of the cohort" -msgstr "" +msgstr "학습집단명을 입력하세요." #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cohort Name" -msgstr "학습 집단명" +msgstr "학습집단명" #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cohort Assignment Method" @@ -5538,7 +6126,7 @@ msgstr "" #: lms/templates/student_account/register.underscore msgid "Create an account using" -msgstr "가입하기" +msgstr "계정 연동하기" #: lms/templates/student_account/register.underscore #, python-format @@ -6021,6 +6609,16 @@ msgstr "" msgid "status" msgstr "" +#: cms/templates/js/add-xblock-component-button.underscore +msgid "Add Component:" +msgstr "" + +#: cms/templates/js/add-xblock-component-menu-problem.underscore +#: cms/templates/js/add-xblock-component-menu.underscore +#, python-format +msgid "%(type)s Component Template Menu" +msgstr "" + #: cms/templates/js/add-xblock-component-menu-problem.underscore msgid "Common Problem Types" msgstr "" @@ -6095,6 +6693,11 @@ msgstr "" msgid "Certificate Details" msgstr "" +#: cms/templates/js/certificate-details.underscore +#: cms/templates/js/certificate-editor.underscore +msgid "Course Title" +msgstr "" + #: cms/templates/js/certificate-details.underscore #: cms/templates/js/certificate-editor.underscore msgid "Course Title Override" @@ -6139,19 +6742,13 @@ msgid "" msgstr "" #: cms/templates/js/certificate-editor.underscore -msgid "Add Signatory" +msgid "Add Additional Signatory" msgstr "" #: cms/templates/js/certificate-editor.underscore msgid "(Up to 4 signatories are allowed for a certificate)" msgstr "" -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/group-configuration-editor.underscore -msgid "Create" -msgstr "" - #: cms/templates/js/certificate-web-preview.underscore msgid "Choose mode" msgstr "" @@ -6263,11 +6860,11 @@ msgstr "" #: cms/templates/js/course-outline.underscore #: cms/templates/js/publish-xblock.underscore msgid "Unscheduled" -msgstr "" +msgstr "지정되지 않음" #: cms/templates/js/course-outline.underscore msgid "Graded as:" -msgstr "" +msgstr "과제 유형" #: cms/templates/js/course-outline.underscore msgid "Due:" @@ -6436,7 +7033,7 @@ msgstr "" #: cms/templates/js/grading-editor.underscore msgid "Grade as:" -msgstr "" +msgstr "과제 유형" #: cms/templates/js/group-configuration-details.underscore #: cms/templates/js/group-configuration-editor.underscore @@ -6576,10 +7173,6 @@ msgstr "" msgid "Add your first textbook" msgstr "" -#: cms/templates/js/paging-header.underscore -msgid "Previous" -msgstr "" - #: cms/templates/js/previous-video-upload-list.underscore msgid "Previous Uploads" msgstr "" diff --git a/conf/locale/pt_BR/LC_MESSAGES/django.mo b/conf/locale/pt_BR/LC_MESSAGES/django.mo index 9d2de4108f748ea84dceee97036a87de876b9ef9..4d012ef644f3076cabd040bec6f3b09b9d17086c 100644 GIT binary patch delta 38892 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 HIQjno%)RB# delta 39206 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 diff --git a/conf/locale/pt_BR/LC_MESSAGES/django.po b/conf/locale/pt_BR/LC_MESSAGES/django.po index 49080c44c3..b38de5e4ad 100644 --- a/conf/locale/pt_BR/LC_MESSAGES/django.po +++ b/conf/locale/pt_BR/LC_MESSAGES/django.po @@ -17,6 +17,7 @@ # Francisco Cantarutti , 2014 # G.Ribas , 2014 # Guilherme Batista Ferreira , 2015 +# Guilherme Tadiello , 2015 # Gustavo Henrique de Almeida Gonçalves , 2015 # Gustavo Henrique de Almeida Gonçalves , 2015 # Heitor Althmann , 2014 @@ -111,6 +112,7 @@ # G.Ribas , 2014 # Gilson Leite Siqueira Junior , 2014 # Gislene Kucker Arantes , 2014 +# Guilherme Tadiello , 2015 # Gustavo Henrique de Almeida Gonçalves , 2015 # Gustavo Henrique de Almeida Gonçalves , 2015 # Hudson Martins dos Santos , 2015 @@ -223,7 +225,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:18+0000\n" +"POT-Creation-Date: 2015-09-04 14:07+0000\n" "PO-Revision-Date: 2015-07-20 00:15+0000\n" "Last-Translator: javiercencig \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/open-edx/edx-platform/language/pt_BR/)\n" @@ -1386,10 +1388,6 @@ msgstr "certa" msgid "incorrect" msgstr "errada" -#: common/lib/capa/capa/inputtypes.py -msgid "partially correct" -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "incomplete" msgstr "incompleta" @@ -1412,10 +1410,6 @@ msgstr "" msgid "This is incorrect." msgstr "" -#: common/lib/capa/capa/inputtypes.py -msgid "This is partially correct." -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "This is unanswered." msgstr "" @@ -4955,7 +4949,14 @@ msgid "{month} {day}, {year}" msgstr "" #: lms/djangoapps/certificates/views/webview.py -msgid "a course of study offered by {partner_name}, through {platform_name}." +msgid "" +"a course of study offered by {partner_short_name}, an online learning " +"initiative of {partner_long_name} through {platform_name}." +msgstr "" + +#: lms/djangoapps/certificates/views/webview.py +msgid "" +"a course of study offered by {partner_short_name}, through {platform_name}." msgstr "" #. Translators: Accomplishments describe the awards/certifications obtained by @@ -5055,13 +5056,13 @@ msgstr "" #: lms/djangoapps/certificates/views/webview.py msgid "" "This is a valid {platform_name} certificate for {user_name}, who " -"participated in {partner_name} {course_number}" +"participated in {partner_short_name} {course_number}" msgstr "" #. Translators: This text is bound to the HTML 'title' element of the page #. and appears in the browser title bar #: lms/djangoapps/certificates/views/webview.py -msgid "{partner_name} {course_number} Certificate | {platform_name}" +msgid "{partner_short_name} {course_number} Certificate | {platform_name}" msgstr "" #. Translators: This text fragment appears after the student's name @@ -5220,6 +5221,14 @@ msgid "" "{payment_support_link}." msgstr "" +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "{course_id} is not a valid course key." +msgstr "" + +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "Course {course_id} does not exist." +msgstr "" + #: lms/djangoapps/course_wiki/tab.py lms/djangoapps/course_wiki/views.py #: lms/templates/wiki/base.html msgid "Wiki" @@ -5758,6 +5767,23 @@ msgstr "" msgid "File is not attached." msgstr "" +#: lms/djangoapps/instructor/views/api.py +msgid "Could not find problem with this location." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"The problem responses report is being created. To view the status of the " +"report, see Pending Tasks below." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"A problem responses report generation task is already in progress. Check the" +" 'Pending Tasks' table for the status of the task. When completed, the " +"report will be available for download in the table below." +msgstr "" + #: lms/djangoapps/instructor/views/api.py msgid "Invoice number '{num}' does not exist." msgstr "" @@ -6148,6 +6174,10 @@ msgstr "" msgid "CourseMode price updated successfully" msgstr "" +#: lms/djangoapps/instructor/views/instructor_dashboard.py +msgid "No end date set" +msgstr "" + #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "Enrollment data is now available in {dashboard_link}." msgstr "" @@ -6242,18 +6272,6 @@ msgstr "E-mail externo" msgid "Grades for assignment \"{name}\"" msgstr "Notas da tarefa \"{name}\"" -#: lms/djangoapps/instructor/views/legacy.py -msgid "Found {num} records to dump." -msgstr "Foram encontrados {num} registros a serem excluídos." - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Couldn't find module with that urlname." -msgstr "Não foi possível encontrar o módulo com este nome de url." - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Student state for problem {problem}" -msgstr "Status do estudante para o problema {problem}" - #: lms/djangoapps/instructor/views/legacy.py msgid "Grades from {course_id}" msgstr "Notas do curso {course_id}" @@ -6423,6 +6441,12 @@ msgstr "excluído" msgid "emailed" msgstr "E-mail enviado" +#. Translators: This is a past-tense verb that is inserted into task progress +#. messages as {action}. +#: lms/djangoapps/instructor_task/tasks.py +msgid "generated" +msgstr "" + #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -6435,12 +6459,6 @@ msgstr "avaliado" msgid "problem distribution graded" msgstr "problema de distribuição avaliado" -#. Translators: This is a past-tense verb that is inserted into task progress -#. messages as {action}. -#: lms/djangoapps/instructor_task/tasks.py -msgid "generated" -msgstr "" - #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -7908,6 +7926,7 @@ msgid "Optional language the team uses as ISO 639-1 code." msgstr "" #: lms/djangoapps/teams/plugins.py +#: lms/djangoapps/teams/templates/teams/teams.html msgid "Teams" msgstr "" @@ -7920,11 +7939,11 @@ msgid "course_id must be provided" msgstr "" #: lms/djangoapps/teams/views.py -msgid "The supplied topic id {topic_id} is not valid" +msgid "text_search and order_by cannot be provided together" msgstr "" #: lms/djangoapps/teams/views.py -msgid "text_search is not yet supported." +msgid "The supplied topic id {topic_id} is not valid" msgstr "" #. Translators: 'ordering' is a string describing a way @@ -9680,6 +9699,10 @@ msgstr "Ajuda" msgid "Sign Out" msgstr "" +#: common/lib/capa/capa/templates/codeinput.html +msgid "{programming_language} editor" +msgstr "" + #: common/templates/license.html msgid "All Rights Reserved" msgstr "" @@ -12293,8 +12316,10 @@ msgid "Section:" msgstr "Seção:" #: lms/templates/courseware/legacy_instructor_dashboard.html -msgid "Problem urlname:" -msgstr "Nome do URL do problema:" +msgid "" +"To download a CSV listing student responses to a given problem, visit the " +"Data Download section of the Instructor Dashboard." +msgstr "" #: lms/templates/courseware/legacy_instructor_dashboard.html msgid "" @@ -14187,6 +14212,20 @@ msgstr "" msgid "Generate Proctored Exam Results Report" msgstr "" +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "" +"To generate a CSV file that lists all student answers to a given problem, " +"enter the location of the problem (from its Staff Debug Info)." +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Problem location: " +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Download a CSV of problem responses" +msgstr "" + #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" "For smaller courses, click to list profile information for enrolled students" @@ -16604,41 +16643,50 @@ msgid "This module is not enabled." msgstr "" #: cms/templates/certificates.html -msgid "" -"Upon successful completion of your course, learners receive a certificate to" -" acknowledge their accomplishment. If you are a course team member with the " -"Admin role in Studio, you can configure your course certificate." +msgid "Working with Certificates" msgstr "" #: cms/templates/certificates.html msgid "" -"Click {em_start}Add your first certificate{em_end} to add a certificate " -"configuration. Upload the organization logo to be used on the certificate, " -"and specify at least one signatory. You can include up to four signatories " -"for a certificate. You can also upload a signature image file for each " -"signatory. {em_start}Note:{em_end} Signature images are used only for " -"verified certificates. Optionally, specify a different course title to use " -"on your course certificate. You might want to use a different title if, for " -"example, the official course name is too long to display well on a " -"certificate." +"Specify a course title to use on the certificate if the course's official " +"title is too long to be displayed well." msgstr "" #: cms/templates/certificates.html msgid "" -"Select a course mode and click {em_start}Preview Certificate{em_end} to " -"preview the certificate that a learner in the selected enrollment track " -"would receive. When the certificate is ready for issuing, click " -"{em_start}Activate.{em_end} To stop issuing an active certificate, click " -"{em_start}Deactivate{em_end}." +"For verified certificates, specify between one and four signatories and " +"upload the associated images." msgstr "" #: cms/templates/certificates.html msgid "" -" To edit the certificate configuration, hover over the top right corner of " -"the form and click {em_start}Edit{em_end}. To delete a certificate, hover " -"over the top right corner of the form and click the delete icon. In general," -" do not delete certificates after a course has started, because some " -"certificates might already have been issued to learners." +"To edit or delete a certificate before it is activated, hover over the top " +"right corner of the form and select {em_start}Edit{em_end} or the delete " +"icon." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To view a sample certificate, choose a course mode and select " +"{em_start}Preview Certificate{em_end}." +msgstr "" + +#: cms/templates/certificates.html +msgid "Issuing Certificates to Learners" +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To begin issuing certificates, a course team member with the Admin role " +"selects {em_start}Activate{em_end}. Course team members without the Admin " +"role cannot edit or delete an activated certificate." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"{em_start}Do not{em_end} delete certificates after a course has started; " +"learners who have already earned certificates will no longer be able to " +"access them." msgstr "" #: cms/templates/certificates.html diff --git a/conf/locale/pt_BR/LC_MESSAGES/djangojs.mo b/conf/locale/pt_BR/LC_MESSAGES/djangojs.mo index 8a76fe7434fd4ac10ee3275a7c7c96d1ac91921c..836ed8adac6ffc56a51a7850b7c2ab4e04f51de8 100644 GIT binary patch delta 65 zcmbO{m3i`1<_#5PMwYq;CJKfoRt9F;20*|S;IA8$T9#RynV+ZYl30>zrC?-WXsT-f MS7)(#RoTm60CrImPyhe` delta 65 zcmbO{m3i`1<_#5PMi#n8h6;uzR)*%<20*|S;IA8$T9#RynV+ZYl30>zrC?-WXsT-f QR%c*jWn#E_RoTm60CoZsNB{r; diff --git a/conf/locale/pt_BR/LC_MESSAGES/djangojs.po b/conf/locale/pt_BR/LC_MESSAGES/djangojs.po index 6bbec3370f..520b7ea46d 100644 --- a/conf/locale/pt_BR/LC_MESSAGES/djangojs.po +++ b/conf/locale/pt_BR/LC_MESSAGES/djangojs.po @@ -112,6 +112,7 @@ # Francisco de Assis Ventura Filho , 2015 # G , 2014 # Guilherme Henrique Spiller , 2015 +# Gustavo Bertoli, 2015 # Hudson Martins dos Santos , 2015 # Jaqueline Knebel Wildner , 2015 # Leonardo Flores Zambaldi , 2014 @@ -151,8 +152,8 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:17+0000\n" -"PO-Revision-Date: 2015-08-21 02:41+0000\n" +"POT-Creation-Date: 2015-09-04 14:06+0000\n" +"PO-Revision-Date: 2015-09-04 14:08+0000\n" "Last-Translator: Sarina Canelake \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/open-edx/edx-platform/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -197,8 +198,8 @@ msgstr "OK" #: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js #: cms/static/js/views/modals/base_modal.js #: cms/static/js/views/modals/course_outline_modals.js -#: cms/static/js/views/utils/view_utils.js #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/js/components/utils/view_utils.js msgid "Cancel" msgstr "Cancelar" @@ -2124,6 +2125,18 @@ msgstr "" msgid "Are you sure you want to delete this response?" msgstr "Você tem certeza de que deseja apagar esta resposta?" +#: common/static/common/js/components/utils/view_utils.js +msgid "Required field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces in this field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces or special characters in this field." +msgstr "" + #: common/static/common/js/components/views/paging_header.js msgid "Showing %(first_index)s out of %(num_items)s total" msgstr "Exibindo %(first_index)s de um total de %(num_items)s" @@ -2358,13 +2371,16 @@ msgid "An unexpected error occurred. Please try again." msgstr "" #: lms/djangoapps/teams/static/teams/js/collections/team.js -#: lms/djangoapps/teams/static/teams/js/collections/topic.js -#: lms/templates/edxnotes/tab-item.underscore -msgid "name" +msgid "last activity" msgstr "" #: lms/djangoapps/teams/static/teams/js/collections/team.js -msgid "open_slots" +msgid "open slots" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/collections/topic.js +#: lms/templates/edxnotes/tab-item.underscore +msgid "name" msgstr "" #. Translators: This refers to the number of teams (a count of how many teams @@ -2373,6 +2389,17 @@ msgstr "" msgid "team count" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: cms/templates/js/certificate-editor.underscore +#: cms/templates/js/content-group-editor.underscore +#: cms/templates/js/group-configuration-editor.underscore +msgid "Create" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +msgid "Update" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/edit_team.js msgid "Team Name (Required) *" msgstr "" @@ -2397,6 +2424,7 @@ msgid "Language" msgstr "Idioma" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "" "The language that team members primarily use to communicate with each other." msgstr "" @@ -2407,6 +2435,7 @@ msgid "Country" msgstr "País" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "The country that team members primarily identify with." msgstr "" @@ -2439,20 +2468,47 @@ msgstr "" msgid "You are not currently a member of any team." msgstr "" +#. Translators: "and others" refers to fact that additional members of a team +#. exist that are not displayed. +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "and others" +msgstr "" + +#. Translators: 'date' is a placeholder for a fuzzy, relative timestamp (see: +#. https://github.com/rmm5t/jquery-timeago) +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "Last Activity %(date)s" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/team_card.js msgid "View %(span_start)s %(team_name)s %(span_end)s" msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js #: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "An error occurred. Try again." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "Leave this team?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "" +"If you leave, you can no longer post in this team's discussions. Your place " +"will be available to another learner." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/static/js/verify_student/views/reverify_view.js +msgid "Confirm" +msgstr "Confirmar" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "You already belong to another team." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "This team is full." msgstr "" @@ -2471,13 +2527,13 @@ msgid "teams" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"See all teams in your course, organized by topic. Join a team to collaborate" -" with other learners who are interested in the same topic as you are." +msgid "Teams" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "Teams" +msgid "" +"See all teams in your course, organized by topic. Join a team to collaborate" +" with other learners who are interested in the same topic as you are." msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js @@ -2485,22 +2541,47 @@ msgid "My Team" msgstr "" #. Translators: sr_start and sr_end surround text meant only for screen -#. readers. The whole string will be shown to users as "Browse teams" if they -#. are using a screenreader, and "Browse" otherwise. +#. readers. +#. The whole string will be shown to users as "Browse teams" if they are using +#. a +#. screenreader, and "Browse" otherwise. #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Browse %(sr_start)s teams %(sr_end)s" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"Create a new team if you can't find existing teams to join, or if you would " -"like to learn with friends you know." +msgid "Team Search" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Showing results for \"%(searchString)s\"" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Create a New Team" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"Create a new team if you can't find an existing team to join, or if you " +"would like to learn with friends you know." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Edit Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"If you make significant changes, make sure you notify members of the team " +"before making these changes." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Search teams" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "All Topics" msgstr "" @@ -2523,15 +2604,27 @@ msgid_plural "%(team_count)s Teams" msgstr[0] "" msgstr[1] "" +#: lms/djangoapps/teams/static/teams/js/views/topic_card.js +msgid "Topic" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/topic_card.js msgid "View Teams in the %(topic_name)s Topic" msgstr "" +#. Translators: this string is shown at the bottom of the teams page +#. to find a team to join or else to create a new one. There are three +#. links that need to be included in the message: +#. 1. Browse teams in other topics +#. 2. search teams +#. 3. create a new team +#. Be careful to start each link with the appropriate start indicator +#. (e.g. {browse_span_start} for #1) and finish it with {span_end}. #: lms/djangoapps/teams/static/teams/js/views/topic_teams.js msgid "" -"Try {browse_span_start}browsing all teams{span_end} or " -"{search_span_start}searching team descriptions{span_end}. If you still can't" -" find a team to join, {create_span_start}create a new team in this " +"{browse_span_start}Browse teams in other topics{span_end} or " +"{search_span_start}search teams{span_end} in this topic. If you still can't " +"find a team to join, {create_span_start}create a new team in this " "topic{span_end}." msgstr "" @@ -3954,10 +4047,6 @@ msgstr "Tire uma foto do seu documento de identidade" msgid "Review your info" msgstr "Revise suas informações" -#: lms/static/js/verify_student/views/reverify_view.js -msgid "Confirm" -msgstr "Confirmar" - #: lms/static/js/verify_student/views/step_view.js msgid "An error has occurred. Please try reloading the page." msgstr "Ocorreu um erro. Por favor, tente atualizar a página." @@ -4327,6 +4416,7 @@ msgstr "" #: cms/static/js/factories/manage_users.js #: cms/static/js/factories/manage_users_lib.js +#: common/static/common/templates/discussion/post-user-display.underscore msgid "Staff" msgstr "" @@ -4516,6 +4606,7 @@ msgid "Date Added" msgstr "" #: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore msgid "Type" msgstr "" @@ -5074,18 +5165,6 @@ msgid "" "more than <%=limit%> characters." msgstr "" -#: cms/static/js/views/utils/view_utils.js -msgid "Required field." -msgstr "" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces in this field." -msgstr "" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces or special characters in this field." -msgstr "" - #: cms/static/js/views/utils/xblock_utils.js msgid "component" msgstr "" @@ -5175,11 +5254,526 @@ msgstr "" msgid "Due Date" msgstr "" +#: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore +msgid "Previous" +msgstr "" + #: cms/templates/js/previous-video-upload-list.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore #: lms/templates/verify_student/enrollment_confirmation_step.underscore msgid "Status" msgstr "" +#: common/static/common/templates/image-modal.underscore +msgid "Large" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom In" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom Out" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Page number" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Enter the page number you'd like to quickly navigate to." +msgstr "" + +#: common/static/common/templates/components/paging-header.underscore +msgid "Sorted by" +msgstr "" + +#: common/static/common/templates/components/search-field.underscore +msgid "Clear search" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "DISCUSSION HOME:" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +#: lms/templates/commerce/provider.underscore +#: lms/templates/commerce/receipt.underscore +#: lms/templates/discovery/course_card.underscore +msgid "gettext(" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Find discussions" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Focus in on specific topics" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Search for specific posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Sort by date, vote, or comments" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Engage with posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Upvote posts and good responses" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Report Forum Misuse" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Follow posts for updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Receive updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Toggle Notifications Setting" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "" +"Check this box to receive an email digest once a day notifying you about " +"new, unread activity from posts you are following." +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Mark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Unmark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-close.underscore +msgid "Open" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Endorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Unendorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Follow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Unfollow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Pin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Unpin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report abuse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Unreport" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-vote.underscore +msgid "Vote for this post," +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Visible To:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "All Groups" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "" +"Discussion admins, moderators, and TAs can make their posts visible to all " +"students or specify a single cohort." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Title:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add a clear and descriptive title to encourage participation." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Enter your question or comment" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "follow this post" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously to classmates" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add Post" +msgstr "" + +#: common/static/common/templates/discussion/post-user-display.underscore +msgid "Community TA" +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +#: common/static/common/templates/discussion/thread.underscore +msgid "This thread is closed." +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +msgid "View discussion" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Editing comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Update comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#, python-format +msgid "posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Reported" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Editing post" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Edit post title" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Update post" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "answered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "unanswered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Pinned" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "Following" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Staff" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Community TA" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +msgid "fmt" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "" +"%(comments_count)s %(span_sr_open)scomments (%(unread_comments_count)s " +"unread comments)%(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "%(comments_count)s %(span_sr_open)scomments %(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Editing response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Update response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "fmts" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "Add a comment" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "This post is visible only to %(group_name)s." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "This post is visible to everyone." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "%(post_type)s posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Closed" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "Related to: %(courseware_title_linked)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Post type:" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Question" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "" +"Questions raise issues that need answers. Discussions share ideas and start " +"conversations." +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Add a Response" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Post a response:" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Expand discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Collapse discussion" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Topic Area:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Discussion topics; current selection is:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Filter topics" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Add your post to a relevant topic to help others find it." +msgstr "" + +#: common/static/common/templates/discussion/user-profile.underscore +msgid "Active Threads" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates.underscore +msgid "username or email" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "No results" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Course Key" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download URL" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Grade" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Last Updated" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download the user's certificate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Not available" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate the user's certificate" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be created." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be updated." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Enter information to describe your team. You cannot change these details " +"after you create the team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Optional Characteristics" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Help other learners decide whether to join your team by specifying some " +"characteristics for your team. Choose carefully, because fewer people might " +"be interested in joining your team if it seems too restrictive." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Create team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Update team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team creating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team updating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-actions.underscore +msgid "Are you having trouble finding a team to join?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Join Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "New Post" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team Details" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "You are a member of this team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team member profiles" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team capacity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "country" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "language" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Leave Team" +msgstr "" + +#: lms/static/js/fixtures/donation.underscore +#: lms/templates/dashboard/donation.underscore +msgid "Donate" +msgstr "" + #: lms/templates/ccx/schedule.underscore msgid "Expand All" msgstr "" @@ -5220,12 +5814,6 @@ msgstr "" msgid "Subsection" msgstr "" -#: lms/templates/commerce/provider.underscore -#: lms/templates/commerce/receipt.underscore -#: lms/templates/discovery/course_card.underscore -msgid "gettext(" -msgstr "" - #: lms/templates/commerce/provider.underscore #, python-format msgid "%s" @@ -5315,10 +5903,6 @@ msgstr "" msgid "End My Exam" msgstr "" -#: lms/templates/dashboard/donation.underscore -msgid "Donate" -msgstr "" - #: lms/templates/discovery/course_card.underscore msgid "LEARN MORE" msgstr "" @@ -6235,6 +6819,16 @@ msgstr "" msgid "status" msgstr "" +#: cms/templates/js/add-xblock-component-button.underscore +msgid "Add Component:" +msgstr "" + +#: cms/templates/js/add-xblock-component-menu-problem.underscore +#: cms/templates/js/add-xblock-component-menu.underscore +#, python-format +msgid "%(type)s Component Template Menu" +msgstr "" + #: cms/templates/js/add-xblock-component-menu-problem.underscore msgid "Common Problem Types" msgstr "" @@ -6309,6 +6903,11 @@ msgstr "" msgid "Certificate Details" msgstr "" +#: cms/templates/js/certificate-details.underscore +#: cms/templates/js/certificate-editor.underscore +msgid "Course Title" +msgstr "" + #: cms/templates/js/certificate-details.underscore #: cms/templates/js/certificate-editor.underscore msgid "Course Title Override" @@ -6353,19 +6952,13 @@ msgid "" msgstr "" #: cms/templates/js/certificate-editor.underscore -msgid "Add Signatory" +msgid "Add Additional Signatory" msgstr "" #: cms/templates/js/certificate-editor.underscore msgid "(Up to 4 signatories are allowed for a certificate)" msgstr "" -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/group-configuration-editor.underscore -msgid "Create" -msgstr "" - #: cms/templates/js/certificate-web-preview.underscore msgid "Choose mode" msgstr "" @@ -6790,10 +7383,6 @@ msgstr "" msgid "Add your first textbook" msgstr "" -#: cms/templates/js/paging-header.underscore -msgid "Previous" -msgstr "" - #: cms/templates/js/previous-video-upload-list.underscore msgid "Previous Uploads" msgstr "" diff --git a/conf/locale/rtl/LC_MESSAGES/django.mo b/conf/locale/rtl/LC_MESSAGES/django.mo index 12c894a5e35cee8c9641e0e243db97937688f002..994257b241a712291e31a7fbad9cee000f5b2ca7 100644 GIT binary patch delta 84418 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 delta 83670 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 diff --git a/conf/locale/rtl/LC_MESSAGES/django.po b/conf/locale/rtl/LC_MESSAGES/django.po index 1f2b947193..14418d68a1 100644 --- a/conf/locale/rtl/LC_MESSAGES/django.po +++ b/conf/locale/rtl/LC_MESSAGES/django.po @@ -37,8 +37,8 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-24 22:03+0000\n" -"PO-Revision-Date: 2015-08-24 22:03:48.240461\n" +"POT-Creation-Date: 2015-09-04 14:15+0000\n" +"PO-Revision-Date: 2015-09-04 14:15:47.324123\n" "Last-Translator: \n" "Language-Team: openedx-translation \n" "MIME-Version: 1.0\n" @@ -1253,10 +1253,6 @@ msgstr "ذخققثذف" msgid "incorrect" msgstr "هرذخققثذف" -#: common/lib/capa/capa/inputtypes.py -msgid "partially correct" -msgstr "حشقفهشممغ ذخققثذف" - #: common/lib/capa/capa/inputtypes.py msgid "incomplete" msgstr "هرذخوحمثفث" @@ -1279,10 +1275,6 @@ msgstr "فاهس هس ذخققثذف." msgid "This is incorrect." msgstr "فاهس هس هرذخققثذف." -#: common/lib/capa/capa/inputtypes.py -msgid "This is partially correct." -msgstr "فاهس هس حشقفهشممغ ذخققثذف." - #: common/lib/capa/capa/inputtypes.py msgid "This is unanswered." msgstr "فاهس هس عرشرسصثقثي." @@ -5028,8 +5020,18 @@ msgid "{month} {day}, {year}" msgstr "{month} {day}, {year}" #: lms/djangoapps/certificates/views/webview.py -msgid "a course of study offered by {partner_name}, through {platform_name}." -msgstr "ش ذخعقسث خب سفعيغ خببثقثي زغ {partner_name}, فاقخعلا {platform_name}." +msgid "" +"a course of study offered by {partner_short_name}, an online learning " +"initiative of {partner_long_name} through {platform_name}." +msgstr "" +"ش ذخعقسث خب سفعيغ خببثقثي زغ {partner_short_name}, شر خرمهرث مثشقرهرل " +"هرهفهشفهدث خب {partner_long_name} فاقخعلا {platform_name}." + +#: lms/djangoapps/certificates/views/webview.py +msgid "" +"a course of study offered by {partner_short_name}, through {platform_name}." +msgstr "" +"ش ذخعقسث خب سفعيغ خببثقثي زغ {partner_short_name}, فاقخعلا {platform_name}." #. Translators: Accomplishments describe the awards/certifications obtained by #. students on this platform @@ -5141,16 +5143,16 @@ msgstr "{platform_name} شذنرخصمثيلثس فاث بخممخصهرل سف #: lms/djangoapps/certificates/views/webview.py msgid "" "This is a valid {platform_name} certificate for {user_name}, who " -"participated in {partner_name} {course_number}" +"participated in {partner_short_name} {course_number}" msgstr "" "فاهس هس ش دشمهي {platform_name} ذثقفهبهذشفث بخق {user_name}, صاخ " -"حشقفهذهحشفثي هر {partner_name} {course_number}" +"حشقفهذهحشفثي هر {partner_short_name} {course_number}" #. Translators: This text is bound to the HTML 'title' element of the page #. and appears in the browser title bar #: lms/djangoapps/certificates/views/webview.py -msgid "{partner_name} {course_number} Certificate | {platform_name}" -msgstr "{partner_name} {course_number} ذثقفهبهذشفث | {platform_name}" +msgid "{partner_short_name} {course_number} Certificate | {platform_name}" +msgstr "{partner_short_name} {course_number} ذثقفهبهذشفث | {platform_name}" #. Translators: This text fragment appears after the student's name #. (displayed in a large font) on the certificate @@ -5319,6 +5321,14 @@ msgstr "" "هب غخعق ذخعقسث يخثس رخف شححثشق خر غخعق يشسازخشقي, ذخرفشذف " "{payment_support_link}." +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "{course_id} is not a valid course key." +msgstr "{course_id} هس رخف ش دشمهي ذخعقسث نثغ." + +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "Course {course_id} does not exist." +msgstr "ذخعقسث {course_id} يخثس رخف ثطهسف." + #: lms/djangoapps/course_wiki/tab.py lms/djangoapps/course_wiki/views.py #: lms/templates/wiki/base.html msgid "Wiki" @@ -5864,6 +5874,28 @@ msgstr "عسثقرشوث {user} شمقثشيغ ثطهسفس." msgid "File is not attached." msgstr "بهمث هس رخف شففشذاثي." +#: lms/djangoapps/instructor/views/api.py +msgid "Could not find problem with this location." +msgstr "ذخعمي رخف بهري حقخزمثو صهفا فاهس مخذشفهخر." + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"The problem responses report is being created. To view the status of the " +"report, see Pending Tasks below." +msgstr "" +"فاث حقخزمثو قثسحخرسثس قثحخقف هس زثهرل ذقثشفثي. فخ دهثص فاث سفشفعس خب فاث " +"قثحخقف, سثث حثريهرل فشسنس زثمخص." + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"A problem responses report generation task is already in progress. Check the" +" 'Pending Tasks' table for the status of the task. When completed, the " +"report will be available for download in the table below." +msgstr "" +"ش حقخزمثو قثسحخرسثس قثحخقف لثرثقشفهخر فشسن هس شمقثشيغ هر حقخلقثسس. ذاثذن فاث" +" 'حثريهرل فشسنس' فشزمث بخق فاث سفشفعس خب فاث فشسن. صاثر ذخوحمثفثي, فاث " +"قثحخقف صهمم زث شدشهمشزمث بخق يخصرمخشي هر فاث فشزمث زثمخص." + #: lms/djangoapps/instructor/views/api.py msgid "Invoice number '{num}' does not exist." msgstr "هردخهذث رعوزثق '{num}' يخثس رخف ثطهسف." @@ -6292,6 +6324,10 @@ msgstr "ذخعقسثوخيث صهفا فاث وخيث سمعل({mode_slug}) يخ msgid "CourseMode price updated successfully" msgstr "ذخعقسثوخيث حقهذث عحيشفثي سعذذثسسبعممغ" +#: lms/djangoapps/instructor/views/instructor_dashboard.py +msgid "No end date set" +msgstr "رخ ثري يشفث سثف" + #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "Enrollment data is now available in {dashboard_link}." msgstr "ثرقخمموثرف يشفش هس رخص شدشهمشزمث هر {dashboard_link}." @@ -6389,18 +6425,6 @@ msgstr "ثطفثقرشم ثوشهم" msgid "Grades for assignment \"{name}\"" msgstr "لقشيثس بخق شسسهلروثرف \"{name}\"" -#: lms/djangoapps/instructor/views/legacy.py -msgid "Found {num} records to dump." -msgstr "بخعري {num} قثذخقيس فخ يعوح." - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Couldn't find module with that urlname." -msgstr "ذخعمير'ف بهري وخيعمث صهفا فاشف عقمرشوث." - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Student state for problem {problem}" -msgstr "سفعيثرف سفشفث بخق حقخزمثو {problem}" - #: lms/djangoapps/instructor/views/legacy.py msgid "Grades from {course_id}" msgstr "لقشيثس بقخو {course_id}" @@ -6569,6 +6593,12 @@ msgstr "يثمثفثي" msgid "emailed" msgstr "ثوشهمثي" +#. Translators: This is a past-tense verb that is inserted into task progress +#. messages as {action}. +#: lms/djangoapps/instructor_task/tasks.py +msgid "generated" +msgstr "لثرثقشفثي" + #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -6581,12 +6611,6 @@ msgstr "لقشيثي" msgid "problem distribution graded" msgstr "حقخزمثو يهسفقهزعفهخر لقشيثي" -#. Translators: This is a past-tense verb that is inserted into task progress -#. messages as {action}. -#: lms/djangoapps/instructor_task/tasks.py -msgid "generated" -msgstr "لثرثقشفثي" - #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -9457,15 +9481,6 @@ msgstr "سشدث بشهمثي بخق عسثق حقثبثقثرذث '{key}' صه msgid "No data provided for user preference update" msgstr "رخ يشفش حقخدهيثي بخق عسثق حقثبثقثرذث عحيشفث" -#: openedx/core/lib/api/paginators.py -msgid "Page is not 'last', nor can it be converted to an int." -msgstr "حشلث هس رخف 'مشسف', رخق ذشر هف زث ذخردثقفثي فخ شر هرف." - -#: openedx/core/lib/api/paginators.py -#, python-format -msgid "Invalid page (%(page_number)s): %(message)s" -msgstr "هردشمهي حشلث (%(page_number)s): %(message)s" - #: openedx/core/lib/api/view_utils.py msgid "This value is invalid." msgstr "فاهس دشمعث هس هردشمهي." @@ -12753,8 +12768,12 @@ msgid "Section:" msgstr "سثذفهخر:" #: lms/templates/courseware/legacy_instructor_dashboard.html -msgid "Problem urlname:" -msgstr "حقخزمثو عقمرشوث:" +msgid "" +"To download a CSV listing student responses to a given problem, visit the " +"Data Download section of the Instructor Dashboard." +msgstr "" +"فخ يخصرمخشي ش ذسد مهسفهرل سفعيثرف قثسحخرسثس فخ ش لهدثر حقخزمثو, دهسهف فاث " +"يشفش يخصرمخشي سثذفهخر خب فاث هرسفقعذفخق يشسازخشقي." #: lms/templates/courseware/legacy_instructor_dashboard.html msgid "" @@ -14764,6 +14783,22 @@ msgstr "" msgid "Generate Proctored Exam Results Report" msgstr "لثرثقشفث حقخذفخقثي ثطشو قثسعمفس قثحخقف" +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "" +"To generate a CSV file that lists all student answers to a given problem, " +"enter the location of the problem (from its Staff Debug Info)." +msgstr "" +"فخ لثرثقشفث ش ذسد بهمث فاشف مهسفس شمم سفعيثرف شرسصثقس فخ ش لهدثر حقخزمثو, " +"ثرفثق فاث مخذشفهخر خب فاث حقخزمثو (بقخو هفس سفشبب يثزعل هربخ)." + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Problem location: " +msgstr "حقخزمثو مخذشفهخر: " + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Download a CSV of problem responses" +msgstr "يخصرمخشي ش ذسد خب حقخزمثو قثسحخرسثس" + #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" "For smaller courses, click to list profile information for enrolled students" diff --git a/conf/locale/rtl/LC_MESSAGES/djangojs.mo b/conf/locale/rtl/LC_MESSAGES/djangojs.mo index f671e3f3ce04413cd5c3a9fa75ab1e17a772d886..6cffe673b28c8a0500fa221f8182b72835e5d0eb 100644 GIT binary patch delta 34931 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 delta 33580 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 Ie6{m`02DKWQUCw| diff --git a/conf/locale/rtl/LC_MESSAGES/djangojs.po b/conf/locale/rtl/LC_MESSAGES/djangojs.po index d42d82dda1..d39887470b 100644 --- a/conf/locale/rtl/LC_MESSAGES/djangojs.po +++ b/conf/locale/rtl/LC_MESSAGES/djangojs.po @@ -26,8 +26,8 @@ msgid "" msgstr "" "Project-Id-Version: 0.1a\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-24 22:03+0000\n" -"PO-Revision-Date: 2015-08-24 22:03:48.948707\n" +"POT-Creation-Date: 2015-09-04 14:15+0000\n" +"PO-Revision-Date: 2015-09-04 14:15:47.640544\n" "Last-Translator: \n" "Language-Team: openedx-translation \n" "MIME-Version: 1.0\n" @@ -73,8 +73,8 @@ msgstr "خن" #: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js #: cms/static/js/views/modals/base_modal.js #: cms/static/js/views/modals/course_outline_modals.js -#: cms/static/js/views/utils/view_utils.js #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/js/components/utils/view_utils.js #: cms/templates/js/add-xblock-component-menu-problem.underscore #: cms/templates/js/add-xblock-component-menu.underscore #: cms/templates/js/certificate-editor.underscore @@ -89,6 +89,7 @@ msgstr "خن" #: common/static/common/templates/discussion/response-comment-edit.underscore #: common/static/common/templates/discussion/thread-edit.underscore #: common/static/common/templates/discussion/thread-response-edit.underscore +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cancel" msgstr "ذشرذثم" @@ -2084,6 +2085,18 @@ msgstr "صث اشي سخوث فقخعزمث يثمثفهرل فاهس ذخووث msgid "Are you sure you want to delete this response?" msgstr "شقث غخع سعقث غخع صشرف فخ يثمثفث فاهس قثسحخرسث?" +#: common/static/common/js/components/utils/view_utils.js +msgid "Required field." +msgstr "قثضعهقثي بهثمي." + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces in this field." +msgstr "حمثشسث يخ رخف عسث شرغ سحشذثس هر فاهس بهثمي." + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces or special characters in this field." +msgstr "حمثشسث يخ رخف عسث شرغ سحشذثس خق سحثذهشم ذاشقشذفثقس هر فاهس بهثمي." + #: common/static/common/js/components/views/paging_header.js msgid "Showing %(first_index)s out of %(num_items)s total" msgstr "ساخصهرل %(first_index)s خعف خب %(num_items)s فخفشم" @@ -2268,6 +2281,7 @@ msgid "Public" msgstr "حعزمهذ" #: common/static/js/vendor/ova/catch/js/catch.js +#: common/static/common/templates/components/search-field.underscore #: lms/djangoapps/support/static/support/templates/certificates.underscore msgid "Search" msgstr "سثشقذا" @@ -2330,21 +2344,35 @@ msgid "An unexpected error occurred. Please try again." msgstr "شر عرثطحثذفثي ثققخق خذذعققثي. حمثشسث فقغ شلشهر." #: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "last activity" +msgstr "مشسف شذفهدهفغ" + +#: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "open slots" +msgstr "خحثر سمخفس" + #: lms/djangoapps/teams/static/teams/js/collections/topic.js #: lms/templates/edxnotes/tab-item.underscore msgid "name" msgstr "رشوث" -#: lms/djangoapps/teams/static/teams/js/collections/team.js -msgid "open_slots" -msgstr "خحثر_سمخفس" - #. Translators: This refers to the number of teams (a count of how many teams #. there are) #: lms/djangoapps/teams/static/teams/js/collections/topic.js msgid "team count" msgstr "فثشو ذخعرف" +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: cms/templates/js/certificate-editor.underscore +#: cms/templates/js/content-group-editor.underscore +#: cms/templates/js/group-configuration-editor.underscore +msgid "Create" +msgstr "ذقثشفث" + +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +msgid "Update" +msgstr "عحيشفث" + #: lms/djangoapps/teams/static/teams/js/views/edit_team.js msgid "Team Name (Required) *" msgstr "فثشو رشوث (قثضعهقثي) *" @@ -2416,20 +2444,50 @@ msgstr "فثشو يثسذقهحفهخر ذشررخف اشدث وخقث فاشر msgid "You are not currently a member of any team." msgstr "غخع شقث رخف ذعققثرفمغ ش وثوزثق خب شرغ فثشو." +#. Translators: "and others" refers to fact that additional members of a team +#. exist that are not displayed. +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "and others" +msgstr "شري خفاثقس" + +#. Translators: 'date' is a placeholder for a fuzzy, relative timestamp (see: +#. https://github.com/rmm5t/jquery-timeago) +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "Last Activity %(date)s" +msgstr "مشسف شذفهدهفغ %(date)s" + #: lms/djangoapps/teams/static/teams/js/views/team_card.js msgid "View %(span_start)s %(team_name)s %(span_end)s" msgstr "دهثص %(span_start)s %(team_name)s %(span_end)s" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js #: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "An error occurred. Try again." msgstr "شر ثققخق خذذعققثي. فقغ شلشهر." -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "Leave this team?" +msgstr "مثشدث فاهس فثشو?" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "" +"If you leave, you can no longer post in this team's discussions. Your place " +"will be available to another learner." +msgstr "" +"هب غخع مثشدث, غخع ذشر رخ مخرلثق حخسف هر فاهس فثشو'س يهسذعسسهخرس. غخعق حمشذث " +"صهمم زث شدشهمشزمث فخ شرخفاثق مثشقرثق." + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/static/js/verify_student/views/reverify_view.js +#: lms/templates/verify_student/review_photos_step.underscore +msgid "Confirm" +msgstr "ذخربهقو" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "You already belong to another team." msgstr "غخع شمقثشيغ زثمخرل فخ شرخفاثق فثشو." -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "This team is full." msgstr "فاهس فثشو هس بعمم." @@ -2447,6 +2505,10 @@ msgstr "شمم فثشوس" msgid "teams" msgstr "فثشوس" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Teams" +msgstr "فثشوس" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "" "See all teams in your course, organized by topic. Join a team to collaborate" @@ -2455,33 +2517,56 @@ msgstr "" "سثث شمم فثشوس هر غخعق ذخعقسث, خقلشرهظثي زغ فخحهذ. تخهر ش فثشو فخ ذخممشزخقشفث" " صهفا خفاثق مثشقرثقس صاخ شقث هرفثقثسفثي هر فاث سشوث فخحهذ شس غخع شقث." -#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "Teams" -msgstr "فثشوس" - #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "My Team" msgstr "وغ فثشو" #. Translators: sr_start and sr_end surround text meant only for screen -#. readers. The whole string will be shown to users as "Browse teams" if they -#. are using a screenreader, and "Browse" otherwise. +#. readers. +#. The whole string will be shown to users as "Browse teams" if they are using +#. a +#. screenreader, and "Browse" otherwise. #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Browse %(sr_start)s teams %(sr_end)s" msgstr "زقخصسث %(sr_start)s فثشوس %(sr_end)s" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"Create a new team if you can't find existing teams to join, or if you would " -"like to learn with friends you know." -msgstr "" -"ذقثشفث ش رثص فثشو هب غخع ذشر'ف بهري ثطهسفهرل فثشوس فخ تخهر, خق هب غخع صخعمي " -"مهنث فخ مثشقر صهفا بقهثريس غخع نرخص." +msgid "Team Search" +msgstr "فثشو سثشقذا" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Showing results for \"%(searchString)s\"" +msgstr "ساخصهرل قثسعمفس بخق \"%(searchString)s\"" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Create a New Team" msgstr "ذقثشفث ش رثص فثشو" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"Create a new team if you can't find an existing team to join, or if you " +"would like to learn with friends you know." +msgstr "" +"ذقثشفث ش رثص فثشو هب غخع ذشر'ف بهري شر ثطهسفهرل فثشو فخ تخهر, خق هب غخع " +"صخعمي مهنث فخ مثشقر صهفا بقهثريس غخع نرخص." + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Edit Team" +msgstr "ثيهف فثشو" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"If you make significant changes, make sure you notify members of the team " +"before making these changes." +msgstr "" +"هب غخع وشنث سهلرهبهذشرف ذاشرلثس, وشنث سعقث غخع رخفهبغ وثوزثقس خب فاث فثشو " +"زثبخقث وشنهرل فاثسث ذاشرلثس." + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Search teams" +msgstr "سثشقذا فثشوس" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "All Topics" msgstr "شمم فخحهذس" @@ -2504,20 +2589,32 @@ msgid_plural "%(team_count)s Teams" msgstr[0] "%(team_count)s فثشو" msgstr[1] "%(team_count)s فثشوس" +#: lms/djangoapps/teams/static/teams/js/views/topic_card.js +msgid "Topic" +msgstr "فخحهذ" + #: lms/djangoapps/teams/static/teams/js/views/topic_card.js msgid "View Teams in the %(topic_name)s Topic" msgstr "دهثص فثشوس هر فاث %(topic_name)s فخحهذ" +#. Translators: this string is shown at the bottom of the teams page +#. to find a team to join or else to create a new one. There are three +#. links that need to be included in the message: +#. 1. Browse teams in other topics +#. 2. search teams +#. 3. create a new team +#. Be careful to start each link with the appropriate start indicator +#. (e.g. {browse_span_start} for #1) and finish it with {span_end}. #: lms/djangoapps/teams/static/teams/js/views/topic_teams.js msgid "" -"Try {browse_span_start}browsing all teams{span_end} or " -"{search_span_start}searching team descriptions{span_end}. If you still can't" -" find a team to join, {create_span_start}create a new team in this " +"{browse_span_start}Browse teams in other topics{span_end} or " +"{search_span_start}search teams{span_end} in this topic. If you still can't " +"find a team to join, {create_span_start}create a new team in this " "topic{span_end}." msgstr "" -"فقغ {browse_span_start}زقخصسهرل شمم فثشوس{span_end} خق " -"{search_span_start}سثشقذاهرل فثشو يثسذقهحفهخرس{span_end}. هب غخع سفهمم ذشر'ف" -" بهري ش فثشو فخ تخهر, {create_span_start}ذقثشفث ش رثص فثشو هر فاهس " +"{browse_span_start}زقخصسث فثشوس هر خفاثق فخحهذس{span_end} خق " +"{search_span_start}سثشقذا فثشوس{span_end} هر فاهس فخحهذ. هب غخع سفهمم ذشر'ف " +"بهري ش فثشو فخ تخهر, {create_span_start}ذقثشفث ش رثص فثشو هر فاهس " "فخحهذ{span_end}." #: lms/djangoapps/teams/static/teams/js/views/topics.js @@ -3955,11 +4052,6 @@ msgstr "فشنث ش حاخفخ خب غخعق هي" msgid "Review your info" msgstr "قثدهثص غخعق هربخ" -#: lms/static/js/verify_student/views/reverify_view.js -#: lms/templates/verify_student/review_photos_step.underscore -msgid "Confirm" -msgstr "ذخربهقو" - #: lms/static/js/verify_student/views/step_view.js msgid "An error has occurred. Please try reloading the page." msgstr "شر ثققخق اشس خذذعققثي. حمثشسث فقغ قثمخشيهرل فاث حشلث." @@ -5144,18 +5236,6 @@ msgstr "" "فاث ذخوزهرثي مثرلفا خب فاث خقلشرهظشفهخر شري مهزقشقغ ذخيث بهثميس ذشررخف زث " "وخقث فاشر <%=limit%> ذاشقشذفثقس." -#: cms/static/js/views/utils/view_utils.js -msgid "Required field." -msgstr "قثضعهقثي بهثمي." - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces in this field." -msgstr "حمثشسث يخ رخف عسث شرغ سحشذثس هر فاهس بهثمي." - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces or special characters in this field." -msgstr "حمثشسث يخ رخف عسث شرغ سحشذثس خق سحثذهشم ذاشقشذفثقس هر فاهس بهثمي." - #: cms/static/js/views/utils/xblock_utils.js msgid "component" msgstr "ذخوحخرثرف" @@ -5279,6 +5359,14 @@ msgstr "حشلث رعوزثق" msgid "Enter the page number you'd like to quickly navigate to." msgstr "ثرفثق فاث حشلث رعوزثق غخع'ي مهنث فخ ضعهذنمغ رشدهلشفث فخ." +#: common/static/common/templates/components/paging-header.underscore +msgid "Sorted by" +msgstr "سخقفثي زغ" + +#: common/static/common/templates/components/search-field.underscore +msgid "Clear search" +msgstr "ذمثشق سثشقذا" + #: common/static/common/templates/discussion/discussion-home.underscore msgid "DISCUSSION HOME:" msgstr "يهسذعسسهخر اخوث:" @@ -5682,8 +5770,12 @@ msgid "Regenerate the user's certificate" msgstr "قثلثرثقشفث فاث عسثق'س ذثقفهبهذشفث" #: lms/djangoapps/teams/static/teams/templates/edit-team.underscore -msgid "Your team could not be created!" -msgstr "غخعق فثشو ذخعمي رخف زث ذقثشفثي!" +msgid "Your team could not be created." +msgstr "غخعق فثشو ذخعمي رخف زث ذقثشفثي." + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be updated." +msgstr "غخعق فثشو ذخعمي رخف زث عحيشفثي." #: lms/djangoapps/teams/static/teams/templates/edit-team.underscore msgid "" @@ -5708,18 +5800,26 @@ msgstr "" "زث هرفثقثسفثي هر تخهرهرل غخعق فثشو هب هف سثثوس فخخ قثسفقهذفهدث." #: lms/djangoapps/teams/static/teams/templates/edit-team.underscore -msgid "{primaryButtonTitle} {span_start}a new team{span_end}" -msgstr "{primaryButtonTitle} {span_start}ش رثص فثشو{span_end}" +msgid "Create team." +msgstr "ذقثشفث فثشو." #: lms/djangoapps/teams/static/teams/templates/edit-team.underscore -msgid "Cancel {span_start}a new team{span_end}" -msgstr "ذشرذثم {span_start}ش رثص فثشو{span_end}" +msgid "Update team." +msgstr "عحيشفث فثشو." + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team creating." +msgstr "ذشرذثم فثشو ذقثشفهرل." + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team updating." +msgstr "ذشرذثم فثشو عحيشفهرل." #: lms/djangoapps/teams/static/teams/templates/team-actions.underscore msgid "Are you having trouble finding a team to join?" msgstr "شقث غخع اشدهرل فقخعزمث بهريهرل ش فثشو فخ تخهر?" -#: lms/djangoapps/teams/static/teams/templates/team-join.underscore +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore msgid "Join Team" msgstr "تخهر فثشو" @@ -6893,6 +6993,16 @@ msgstr "يقشل شري يقخح خق ذمهذن اثقث فخ عحمخشي ده msgid "status" msgstr "سفشفعس" +#: cms/templates/js/add-xblock-component-button.underscore +msgid "Add Component:" +msgstr "شيي ذخوحخرثرف:" + +#: cms/templates/js/add-xblock-component-menu-problem.underscore +#: cms/templates/js/add-xblock-component-menu.underscore +#, python-format +msgid "%(type)s Component Template Menu" +msgstr "%(type)s ذخوحخرثرف فثوحمشفث وثرع" + #: cms/templates/js/add-xblock-component-menu-problem.underscore msgid "Common Problem Types" msgstr "ذخووخر حقخزمثو فغحثس" @@ -6967,6 +7077,11 @@ msgstr "هي" msgid "Certificate Details" msgstr "ذثقفهبهذشفث يثفشهمس" +#: cms/templates/js/certificate-details.underscore +#: cms/templates/js/certificate-editor.underscore +msgid "Course Title" +msgstr "ذخعقسث فهفمث" + #: cms/templates/js/certificate-details.underscore #: cms/templates/js/certificate-editor.underscore msgid "Course Title Override" @@ -7013,19 +7128,13 @@ msgstr "" "ذثقفهبهذشفثس. مثشدث زمشرن فخ عسث فاث خببهذهشم ذخعقسث فهفمث." #: cms/templates/js/certificate-editor.underscore -msgid "Add Signatory" -msgstr "شيي سهلرشفخقغ" +msgid "Add Additional Signatory" +msgstr "شيي شييهفهخرشم سهلرشفخقغ" #: cms/templates/js/certificate-editor.underscore msgid "(Up to 4 signatories are allowed for a certificate)" msgstr "(عح فخ 4 سهلرشفخقهثس شقث شممخصثي بخق ش ذثقفهبهذشفث)" -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/group-configuration-editor.underscore -msgid "Create" -msgstr "ذقثشفث" - #: cms/templates/js/certificate-web-preview.underscore msgid "Choose mode" msgstr "ذاخخسث وخيث" diff --git a/conf/locale/ru/LC_MESSAGES/django.mo b/conf/locale/ru/LC_MESSAGES/django.mo index 91b0c8574c2b4ea8ba5547d822510fe02b44c9c2..89a2e224a7f3b46670981198e9e77168ea68deaf 100644 GIT binary patch delta 7945 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\n" "Language-Team: Russian (http://www.transifex.com/open-edx/edx-platform/language/ru/)\n" @@ -1341,10 +1341,6 @@ msgstr "" msgid "incorrect" msgstr "" -#: common/lib/capa/capa/inputtypes.py -msgid "partially correct" -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "incomplete" msgstr "" @@ -1367,10 +1363,6 @@ msgstr "" msgid "This is incorrect." msgstr "" -#: common/lib/capa/capa/inputtypes.py -msgid "This is partially correct." -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "This is unanswered." msgstr "" @@ -4691,7 +4683,14 @@ msgid "{month} {day}, {year}" msgstr "{day} {month}, {year}" #: lms/djangoapps/certificates/views/webview.py -msgid "a course of study offered by {partner_name}, through {platform_name}." +msgid "" +"a course of study offered by {partner_short_name}, an online learning " +"initiative of {partner_long_name} through {platform_name}." +msgstr "" + +#: lms/djangoapps/certificates/views/webview.py +msgid "" +"a course of study offered by {partner_short_name}, through {platform_name}." msgstr "" #. Translators: Accomplishments describe the awards/certifications obtained by @@ -4791,13 +4790,13 @@ msgstr "" #: lms/djangoapps/certificates/views/webview.py msgid "" "This is a valid {platform_name} certificate for {user_name}, who " -"participated in {partner_name} {course_number}" +"participated in {partner_short_name} {course_number}" msgstr "" #. Translators: This text is bound to the HTML 'title' element of the page #. and appears in the browser title bar #: lms/djangoapps/certificates/views/webview.py -msgid "{partner_name} {course_number} Certificate | {platform_name}" +msgid "{partner_short_name} {course_number} Certificate | {platform_name}" msgstr "" #. Translators: This text fragment appears after the student's name @@ -4954,6 +4953,14 @@ msgid "" "{payment_support_link}." msgstr "" +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "{course_id} is not a valid course key." +msgstr "" + +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "Course {course_id} does not exist." +msgstr "" + #: lms/djangoapps/course_wiki/tab.py lms/djangoapps/course_wiki/views.py #: lms/templates/wiki/base.html msgid "Wiki" @@ -5475,6 +5482,23 @@ msgstr "" msgid "File is not attached." msgstr "" +#: lms/djangoapps/instructor/views/api.py +msgid "Could not find problem with this location." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"The problem responses report is being created. To view the status of the " +"report, see Pending Tasks below." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"A problem responses report generation task is already in progress. Check the" +" 'Pending Tasks' table for the status of the task. When completed, the " +"report will be available for download in the table below." +msgstr "" + #: lms/djangoapps/instructor/views/api.py msgid "Invoice number '{num}' does not exist." msgstr "" @@ -5854,6 +5878,10 @@ msgstr "" msgid "CourseMode price updated successfully" msgstr "" +#: lms/djangoapps/instructor/views/instructor_dashboard.py +msgid "No end date set" +msgstr "" + #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "Enrollment data is now available in {dashboard_link}." msgstr "" @@ -5955,18 +5983,6 @@ msgstr "" msgid "Grades for assignment \"{name}\"" msgstr "" -#: lms/djangoapps/instructor/views/legacy.py -msgid "Found {num} records to dump." -msgstr "" - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Couldn't find module with that urlname." -msgstr "" - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Student state for problem {problem}" -msgstr "" - #: lms/djangoapps/instructor/views/legacy.py msgid "Grades from {course_id}" msgstr "" @@ -6129,6 +6145,12 @@ msgstr "удалено" msgid "emailed" msgstr "" +#. Translators: This is a past-tense verb that is inserted into task progress +#. messages as {action}. +#: lms/djangoapps/instructor_task/tasks.py +msgid "generated" +msgstr "" + #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -6141,12 +6163,6 @@ msgstr "оценено" msgid "problem distribution graded" msgstr "" -#. Translators: This is a past-tense verb that is inserted into task progress -#. messages as {action}. -#: lms/djangoapps/instructor_task/tasks.py -msgid "generated" -msgstr "" - #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -7526,6 +7542,7 @@ msgid "Optional language the team uses as ISO 639-1 code." msgstr "" #: lms/djangoapps/teams/plugins.py +#: lms/djangoapps/teams/templates/teams/teams.html msgid "Teams" msgstr "" @@ -7538,11 +7555,11 @@ msgid "course_id must be provided" msgstr "" #: lms/djangoapps/teams/views.py -msgid "The supplied topic id {topic_id} is not valid" +msgid "text_search and order_by cannot be provided together" msgstr "" #: lms/djangoapps/teams/views.py -msgid "text_search is not yet supported." +msgid "The supplied topic id {topic_id} is not valid" msgstr "" #. Translators: 'ordering' is a string describing a way @@ -9240,6 +9257,10 @@ msgstr "Помощь" msgid "Sign Out" msgstr "" +#: common/lib/capa/capa/templates/codeinput.html +msgid "{programming_language} editor" +msgstr "" + #: common/templates/license.html msgid "All Rights Reserved" msgstr "Все права защищены" @@ -11736,8 +11757,10 @@ msgid "Section:" msgstr "Раздел:" #: lms/templates/courseware/legacy_instructor_dashboard.html -msgid "Problem urlname:" -msgstr "Ссылка на задачу:" +msgid "" +"To download a CSV listing student responses to a given problem, visit the " +"Data Download section of the Instructor Dashboard." +msgstr "" #: lms/templates/courseware/legacy_instructor_dashboard.html msgid "" @@ -13522,6 +13545,20 @@ msgstr "" msgid "Generate Proctored Exam Results Report" msgstr "" +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "" +"To generate a CSV file that lists all student answers to a given problem, " +"enter the location of the problem (from its Staff Debug Info)." +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Problem location: " +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Download a CSV of problem responses" +msgstr "" + #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" "For smaller courses, click to list profile information for enrolled students" @@ -14310,7 +14347,7 @@ msgstr "Добавить модератора" #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "Discussion Community TAs" -msgstr "" +msgstr "Старосты сообщества" #: lms/templates/instructor/instructor_dashboard_2/membership.html msgid "" @@ -15827,41 +15864,50 @@ msgid "This module is not enabled." msgstr "" #: cms/templates/certificates.html -msgid "" -"Upon successful completion of your course, learners receive a certificate to" -" acknowledge their accomplishment. If you are a course team member with the " -"Admin role in Studio, you can configure your course certificate." +msgid "Working with Certificates" msgstr "" #: cms/templates/certificates.html msgid "" -"Click {em_start}Add your first certificate{em_end} to add a certificate " -"configuration. Upload the organization logo to be used on the certificate, " -"and specify at least one signatory. You can include up to four signatories " -"for a certificate. You can also upload a signature image file for each " -"signatory. {em_start}Note:{em_end} Signature images are used only for " -"verified certificates. Optionally, specify a different course title to use " -"on your course certificate. You might want to use a different title if, for " -"example, the official course name is too long to display well on a " -"certificate." +"Specify a course title to use on the certificate if the course's official " +"title is too long to be displayed well." msgstr "" #: cms/templates/certificates.html msgid "" -"Select a course mode and click {em_start}Preview Certificate{em_end} to " -"preview the certificate that a learner in the selected enrollment track " -"would receive. When the certificate is ready for issuing, click " -"{em_start}Activate.{em_end} To stop issuing an active certificate, click " -"{em_start}Deactivate{em_end}." +"For verified certificates, specify between one and four signatories and " +"upload the associated images." msgstr "" #: cms/templates/certificates.html msgid "" -" To edit the certificate configuration, hover over the top right corner of " -"the form and click {em_start}Edit{em_end}. To delete a certificate, hover " -"over the top right corner of the form and click the delete icon. In general," -" do not delete certificates after a course has started, because some " -"certificates might already have been issued to learners." +"To edit or delete a certificate before it is activated, hover over the top " +"right corner of the form and select {em_start}Edit{em_end} or the delete " +"icon." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To view a sample certificate, choose a course mode and select " +"{em_start}Preview Certificate{em_end}." +msgstr "" + +#: cms/templates/certificates.html +msgid "Issuing Certificates to Learners" +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To begin issuing certificates, a course team member with the Admin role " +"selects {em_start}Activate{em_end}. Course team members without the Admin " +"role cannot edit or delete an activated certificate." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"{em_start}Do not{em_end} delete certificates after a course has started; " +"learners who have already earned certificates will no longer be able to " +"access them." msgstr "" #: cms/templates/certificates.html diff --git a/conf/locale/ru/LC_MESSAGES/djangojs.mo b/conf/locale/ru/LC_MESSAGES/djangojs.mo index 577a5d5b7be7d2546daca9e486ecf370a219e254..1b659dfc52fcfe7a5790f8fac64ac2a4b2044c4e 100644 GIT binary patch delta 3498 zcmYM$3rv<(9LMqV%0)$9KrUX9R|G-y6%i0nkhplwge*<4(qVHrHZQ2ymfEX^kuGQW zh?=IQOY??isHk|QG_%`kE|@x}cG(znx#`GOSl?gIv-OU{=bZCA&pH3|Kj(R&quO<| z+U2_w?q6s4G*hA}-auozx{S#QR9@Fl!~Avmn3F_Ab1!?75- zWagrVT8e(S8u>BR{2FMC&updQrlZlha0T^13kKmY*aLsZ?)Vo*U;wiW!M>P-1*ma+ z*cCUT0;ogXzaRbaEb6|C7|8tQTPm9H2KK^x|6MTV33_P%gT2wiC;^!1I2N_yLe#(| zsOMir1+dI%uSBifa{9NS7W5&8GQT+=afrR8CXT3Vw8KL8b0CYQP7m2Rl&%`4fe%2RZgf zP3U#ZaLhwJ_blrEX{f;GqQ+eqMgFzYH|gku?>ZOuAz3#kQHSdq@?%=~r2!wH27HVf zFo3)(Lp@Og$2jd|i(Hd|0}3~=liH=f+|#mt8qNmqV}`}m5Fv_4)YWh zKosfHgmI1usELwLTa@aUg_<}QHC`d=`I(Nsc~tb^QY^)lsK|dpJ#Zhj1s$jd12`}` z%@L^n-lz!@9EYJ&n}P~B6Scr1)B;OU<5wW#`OI=EoGVl9TzDTfz&_N2M^LG1Lr@Uc@b)&>8Oe3p#rQ#jkg@Np#E_$b*r3|Kq9X@Qp@IkdFm8 z5jEfj%*O5L#T&Q;T`~3-)G{1IdkgCMMr1B?9<@a`QRB3sGWmzo_V%fJ^T#`i?cJE5^pbHHs*7E2PWa| zc=FG=GJ%8bRC+L(b_za+bC9f?BgmNM8Y=be$S#>q)Jpp#*xw(cQ1=yKDOO@RevMja zTB5xrlTqW$Nc7nk%IVM{T!p%EGb(ilkT=dWqW1WER0{Q%ClB11hDE6R*J3xU#j&^p zHEt^^Qx8zjdszM?^!lji5LKZjdK=kZvm42-Ip_4>MosY8x$ZaA4m1{ZeaQT#Hyx<^V>l=> z7m3x(My-4Ua=y$?RAw%r?z`i(pP~Yb=1ZeM?|&AREIL+T2A)77GwrCAJwXi^LKOa( zh8iFXmBQ)x29~1&zK`1Lzwt#(rlIH7qQB@jE*ft{!cB2w*?j=((H zg;<8wNKEE8R7QHS4=l>$A}@qlfSS;9+>Tn%E)2s%sI6>5pI)P@R20!Y)Wm*lyk1KW zx-kp);sn$dwIK)DxJKD29*SD|B-BK6o&H5mdn1O^zXKz&9(DSgN0I+1Dm}=HPH8ME zfbpokD?_c!hnn~(YUNi^EA4RlqciPxI(q4!h4Zlni}4|bU>^IdvrvqhZ&4QcS1K$z z6v%Gp!U-HtyA{V_%xL~H;%j&b@8UMxGlnd<`0CEKSD2k+4_t)G=n`CoTTmGaAIpEp z=tV8G+($*JeGC0CA=gg*P~;exLR3nt9M|F$+MBR9-ohe$gcVruj4@wgJ@Tbzs`BiN ze1JV^e}y_jw@}ZQjm@_!GcbaV1&(V_uT>p(!^_B`&2`jD{0rzm9a=VZ631uo}5rwzJigOQeU9$4s9@kl`%$+#+F#Sg;`Vg?$Pf@z{SwYF9d}`IZ z%U#V@R7kP=DD6R%#gyY#Wk{UsfK?Zg=sIYf4{3Luwho3Sx{UQhsKf{%`zhKVQBE|Jg?WM-)rYS2|IMt1*n#V#Ex)A5 KhATP81O5f|+iMp9 delta 3564 zcmXZd4^Yo{9LMp`k4n_96y?84C6>~!68-ZhArz4zCg)^iCKG1He%ngUj*b27n)4^x ziDoS{Vg9p?#%?y89cQ;cCcDk;%y2u$_I&w%zt`vY_WAFaXnojOmDDFc@bdx6EQx zSLN6mHz0pz6F=d`xJ@k?Cl%-H8&^>cTCg4dgMRoQwnaaB?|>oL2m4|MPDJ(d9=5@4 zs0r*sJ>P_0_%-UeZ_$VG%}p{I@D_&Ry=OO!@ugK5VSdZ>5WX_Y(3VyL|L51#5REJMc4V{dxjyj_5ceRa04VYm& z(l#H}ZW`+OS*VFGM)mtf2=UiS-=(56ZnbY5M0UY^i8@?AAb+NXA9eTy)u9*hR)-;| z2t}Yejs9^}|G)JQ9 zV^9O6*ruaGI}|nHQK$tLp%z$z>VE~&pW9TD;e44*_KiAJ2M19NkD)?!4mF`GsEFLb zM0||>F`gr>l^3A~Dn<>o6g9!OQ2kY+wtOS@)%(AbOdJ&#a3cPTV==dzwYMMQddkhH z0jBVo)S;Sz8mJUCz?+zWt5K0^LM`MA)I=`eRJ?|YU_uYt>HSY8qX?v;4&gY|K$9^G zUqE$OjpLtw(xnDs*EdYAfEi%ezsbJC3}8<|1m3Z=pgM(ub3dy)X%9qn@uqU#!JU zY(VvU7Zs^itXl1p-DGme3_~5JcTfXuLAKX4BGEP9+4c8O1GIh4y5AW!@f5q9i;CEM zRDXwXI-W;%!9>Mc6UssL>#iiDJ+4K~=m=`>zrvAt1(UH`KWjz#*p6}`a*j+fYUSmq zi5x<`rr)5pPL#@0TIaX#LDw0=G&)>Jp9r$Q;)BEotlf{iZ9E2M%1)EV5)2LdR6V+iP zdSMP~WqGIwmf#9piJI^u)LsYiQ-H%!?W$1yZ^a14H$E$9HY$CK#RUS1-@N6*|qh5R9E;LdEk zUZ-SqVjkAubkr6-MGmwH9bkoc2x{dsPy@Yc*H_r(8Vshs0XyQE0mNUY{~8q`7*1St zN>fl1n1HLJfQtwelONmHG{|>RqVvXzYijI1jhtc=Tp}1Mqp&StuSv{54<& z6^g_j)I=Il_02c}?_xG4rLw=c98ci`tiq-=V;l}X-Raf}^E0gWvr!RUgWB3UT!s5k zk&1U`8be!?gIaMpD#X>;8nXslTQCwi9%d#gv>R==<5 zxN)cznZp=F+5H4#5cLO6GCpg5y24$_ zX|92>30&>+$Hz^av#g}7q;z3i_N*my(!vuHTm#|~o;{b4n3n8n^bcR#-Mi+};Y%ky NCt^bz>oWFx{|^oNel7q2 diff --git a/conf/locale/ru/LC_MESSAGES/djangojs.po b/conf/locale/ru/LC_MESSAGES/djangojs.po index f420177e64..017aec2adc 100644 --- a/conf/locale/ru/LC_MESSAGES/djangojs.po +++ b/conf/locale/ru/LC_MESSAGES/djangojs.po @@ -101,8 +101,8 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:17+0000\n" -"PO-Revision-Date: 2015-08-21 02:41+0000\n" +"POT-Creation-Date: 2015-09-04 14:06+0000\n" +"PO-Revision-Date: 2015-09-04 14:08+0000\n" "Last-Translator: Sarina Canelake \n" "Language-Team: Russian (http://www.transifex.com/open-edx/edx-platform/language/ru/)\n" "MIME-Version: 1.0\n" @@ -148,8 +148,8 @@ msgstr "ОК" #: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js #: cms/static/js/views/modals/base_modal.js #: cms/static/js/views/modals/course_outline_modals.js -#: cms/static/js/views/utils/view_utils.js #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/js/components/utils/view_utils.js #: cms/templates/js/add-xblock-component-menu-problem.underscore #: cms/templates/js/add-xblock-component-menu.underscore #: cms/templates/js/certificate-editor.underscore @@ -160,6 +160,11 @@ msgstr "ОК" #: cms/templates/js/group-configuration-editor.underscore #: cms/templates/js/section-name-edit.underscore #: cms/templates/js/xblock-string-field-editor.underscore +#: common/static/common/templates/discussion/new-post.underscore +#: common/static/common/templates/discussion/response-comment-edit.underscore +#: common/static/common/templates/discussion/thread-edit.underscore +#: common/static/common/templates/discussion/thread-response-edit.underscore +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cancel" msgstr "Отмена" @@ -323,6 +328,8 @@ msgstr "" #: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js #: lms/static/coffee/src/staff_grading/staff_grading.js +#: common/static/common/templates/discussion/thread-response.underscore +#: common/static/common/templates/discussion/thread.underscore #: lms/templates/verify_student/incourse_reverify.underscore msgid "Submit" msgstr "" @@ -752,6 +759,7 @@ msgstr "Редактировать HTML" #: cms/templates/js/show-textbook.underscore #: cms/templates/js/signatory-details.underscore #: cms/templates/js/xblock-string-field-editor.underscore +#: common/static/common/templates/discussion/forum-action-edit.underscore msgid "Edit" msgstr "" @@ -839,9 +847,11 @@ msgstr "" msgid "Formats" msgstr "" +#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/templates/image-modal.underscore msgid "Fullscreen" msgstr "" @@ -1157,6 +1167,8 @@ msgstr "Новое окно" #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js #: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore msgid "Next" msgstr "" @@ -1874,6 +1886,7 @@ msgstr "" #: common/static/coffee/src/discussion/utils.js #: common/static/coffee/src/discussion/views/discussion_thread_list_view.js #: common/static/coffee/src/discussion/views/discussion_topic_menu_view.js +#: common/static/common/templates/discussion/pagination.underscore msgid "…" msgstr "" @@ -2060,6 +2073,8 @@ msgid "Your post will be discarded." msgstr "" #: common/static/coffee/src/discussion/views/response_comment_show_view.js +#: common/static/common/templates/discussion/post-user-display.underscore +#: common/static/common/templates/discussion/profile-thread.underscore msgid "anonymous" msgstr "" @@ -2075,6 +2090,18 @@ msgstr "" msgid "Are you sure you want to delete this response?" msgstr "" +#: common/static/common/js/components/utils/view_utils.js +msgid "Required field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces in this field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces or special characters in this field." +msgstr "" + #: common/static/common/js/components/views/paging_header.js msgid "Showing %(first_index)s out of %(num_items)s total" msgstr "" @@ -2256,6 +2283,7 @@ msgstr "Дата публикации" #: common/static/js/vendor/ova/catch/js/catch.js #: lms/static/js/courseware/credit_progress.js +#: common/static/common/templates/discussion/forum-actions.underscore #: lms/templates/discovery/facet.underscore #: lms/templates/edxnotes/note-item.underscore msgid "More" @@ -2274,6 +2302,8 @@ msgid "Public" msgstr "" #: common/static/js/vendor/ova/catch/js/catch.js +#: common/static/common/templates/components/search-field.underscore +#: lms/djangoapps/support/static/support/templates/certificates.underscore msgid "Search" msgstr "" @@ -2335,13 +2365,16 @@ msgid "An unexpected error occurred. Please try again." msgstr "" #: lms/djangoapps/teams/static/teams/js/collections/team.js -#: lms/djangoapps/teams/static/teams/js/collections/topic.js -#: lms/templates/edxnotes/tab-item.underscore -msgid "name" +msgid "last activity" msgstr "" #: lms/djangoapps/teams/static/teams/js/collections/team.js -msgid "open_slots" +msgid "open slots" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/collections/topic.js +#: lms/templates/edxnotes/tab-item.underscore +msgid "name" msgstr "" #. Translators: This refers to the number of teams (a count of how many teams @@ -2350,6 +2383,17 @@ msgstr "" msgid "team count" msgstr "количество команд" +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: cms/templates/js/certificate-editor.underscore +#: cms/templates/js/content-group-editor.underscore +#: cms/templates/js/group-configuration-editor.underscore +msgid "Create" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +msgid "Update" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/edit_team.js msgid "Team Name (Required) *" msgstr "" @@ -2374,6 +2418,7 @@ msgid "Language" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "" "The language that team members primarily use to communicate with each other." msgstr "" @@ -2384,6 +2429,7 @@ msgid "Country" msgstr "Страна" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "The country that team members primarily identify with." msgstr "" @@ -2416,20 +2462,48 @@ msgstr "" msgid "You are not currently a member of any team." msgstr "" +#. Translators: "and others" refers to fact that additional members of a team +#. exist that are not displayed. +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "and others" +msgstr "" + +#. Translators: 'date' is a placeholder for a fuzzy, relative timestamp (see: +#. https://github.com/rmm5t/jquery-timeago) +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "Last Activity %(date)s" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/team_card.js msgid "View %(span_start)s %(team_name)s %(span_end)s" msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js #: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "An error occurred. Try again." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "Leave this team?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "" +"If you leave, you can no longer post in this team's discussions. Your place " +"will be available to another learner." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/static/js/verify_student/views/reverify_view.js +#: lms/templates/verify_student/review_photos_step.underscore +msgid "Confirm" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "You already belong to another team." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "This team is full." msgstr "" @@ -2450,13 +2524,13 @@ msgid "teams" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"See all teams in your course, organized by topic. Join a team to collaborate" -" with other learners who are interested in the same topic as you are." +msgid "Teams" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "Teams" +msgid "" +"See all teams in your course, organized by topic. Join a team to collaborate" +" with other learners who are interested in the same topic as you are." msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js @@ -2464,22 +2538,47 @@ msgid "My Team" msgstr "" #. Translators: sr_start and sr_end surround text meant only for screen -#. readers. The whole string will be shown to users as "Browse teams" if they -#. are using a screenreader, and "Browse" otherwise. +#. readers. +#. The whole string will be shown to users as "Browse teams" if they are using +#. a +#. screenreader, and "Browse" otherwise. #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Browse %(sr_start)s teams %(sr_end)s" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"Create a new team if you can't find existing teams to join, or if you would " -"like to learn with friends you know." +msgid "Team Search" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Showing results for \"%(searchString)s\"" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Create a New Team" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"Create a new team if you can't find an existing team to join, or if you " +"would like to learn with friends you know." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Edit Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"If you make significant changes, make sure you notify members of the team " +"before making these changes." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Search teams" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "All Topics" msgstr "" @@ -2504,15 +2603,27 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" +#: lms/djangoapps/teams/static/teams/js/views/topic_card.js +msgid "Topic" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/topic_card.js msgid "View Teams in the %(topic_name)s Topic" msgstr "" +#. Translators: this string is shown at the bottom of the teams page +#. to find a team to join or else to create a new one. There are three +#. links that need to be included in the message: +#. 1. Browse teams in other topics +#. 2. search teams +#. 3. create a new team +#. Be careful to start each link with the appropriate start indicator +#. (e.g. {browse_span_start} for #1) and finish it with {span_end}. #: lms/djangoapps/teams/static/teams/js/views/topic_teams.js msgid "" -"Try {browse_span_start}browsing all teams{span_end} or " -"{search_span_start}searching team descriptions{span_end}. If you still can't" -" find a team to join, {create_span_start}create a new team in this " +"{browse_span_start}Browse teams in other topics{span_end} or " +"{search_span_start}search teams{span_end} in this topic. If you still can't " +"find a team to join, {create_span_start}create a new team in this " "topic{span_end}." msgstr "" @@ -3862,11 +3973,6 @@ msgstr "" msgid "Review your info" msgstr "" -#: lms/static/js/verify_student/views/reverify_view.js -#: lms/templates/verify_student/review_photos_step.underscore -msgid "Confirm" -msgstr "" - #: lms/static/js/verify_student/views/step_view.js msgid "An error has occurred. Please try reloading the page." msgstr "" @@ -4241,6 +4347,7 @@ msgstr "" #: cms/static/js/factories/manage_users.js #: cms/static/js/factories/manage_users_lib.js +#: common/static/common/templates/discussion/post-user-display.underscore msgid "Staff" msgstr "" @@ -4422,9 +4529,10 @@ msgstr "" msgid "Date Added" msgstr "" -#: cms/templates/js/asset-library.underscore +#: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore msgid "Type" -msgstr "Тип" +msgstr "" #: cms/static/js/views/assets.js msgid "File {filename} exceeds maximum size of {maxFileSizeInMBs} MB" @@ -4983,18 +5091,6 @@ msgid "" "more than <%=limit%> characters." msgstr "" -#: cms/static/js/views/utils/view_utils.js -msgid "Required field." -msgstr "" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces in this field." -msgstr "" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces or special characters in this field." -msgstr "" - #: cms/static/js/views/utils/xblock_utils.js msgid "component" msgstr "" @@ -5084,11 +5180,526 @@ msgstr "" msgid "Due Date" msgstr "" +#: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore +msgid "Previous" +msgstr "" + #: cms/templates/js/previous-video-upload-list.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore #: lms/templates/verify_student/enrollment_confirmation_step.underscore msgid "Status" msgstr "" +#: common/static/common/templates/image-modal.underscore +msgid "Large" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom In" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom Out" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Page number" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Enter the page number you'd like to quickly navigate to." +msgstr "" + +#: common/static/common/templates/components/paging-header.underscore +msgid "Sorted by" +msgstr "" + +#: common/static/common/templates/components/search-field.underscore +msgid "Clear search" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "DISCUSSION HOME:" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +#: lms/templates/commerce/provider.underscore +#: lms/templates/commerce/receipt.underscore +#: lms/templates/discovery/course_card.underscore +msgid "gettext(" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Find discussions" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Focus in on specific topics" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Search for specific posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Sort by date, vote, or comments" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Engage with posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Upvote posts and good responses" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Report Forum Misuse" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Follow posts for updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Receive updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Toggle Notifications Setting" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "" +"Check this box to receive an email digest once a day notifying you about " +"new, unread activity from posts you are following." +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Mark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Unmark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-close.underscore +msgid "Open" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Endorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Unendorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Follow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Unfollow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Pin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Unpin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report abuse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Unreport" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-vote.underscore +msgid "Vote for this post," +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Visible To:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "All Groups" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "" +"Discussion admins, moderators, and TAs can make their posts visible to all " +"students or specify a single cohort." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Title:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add a clear and descriptive title to encourage participation." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Enter your question or comment" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "follow this post" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously to classmates" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add Post" +msgstr "" + +#: common/static/common/templates/discussion/post-user-display.underscore +msgid "Community TA" +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +#: common/static/common/templates/discussion/thread.underscore +msgid "This thread is closed." +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +msgid "View discussion" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Editing comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Update comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#, python-format +msgid "posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Reported" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Editing post" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Edit post title" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Update post" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "answered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "unanswered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Pinned" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "Following" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Staff" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Community TA" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +msgid "fmt" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "" +"%(comments_count)s %(span_sr_open)scomments (%(unread_comments_count)s " +"unread comments)%(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "%(comments_count)s %(span_sr_open)scomments %(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Editing response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Update response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "fmts" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "Add a comment" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "This post is visible only to %(group_name)s." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "This post is visible to everyone." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "%(post_type)s posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Closed" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "Related to: %(courseware_title_linked)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Post type:" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Question" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "" +"Questions raise issues that need answers. Discussions share ideas and start " +"conversations." +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Add a Response" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Post a response:" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Expand discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Collapse discussion" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Topic Area:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Discussion topics; current selection is:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Filter topics" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Add your post to a relevant topic to help others find it." +msgstr "" + +#: common/static/common/templates/discussion/user-profile.underscore +msgid "Active Threads" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates.underscore +msgid "username or email" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "No results" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Course Key" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download URL" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Grade" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Last Updated" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download the user's certificate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Not available" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate the user's certificate" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be created." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be updated." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Enter information to describe your team. You cannot change these details " +"after you create the team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Optional Characteristics" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Help other learners decide whether to join your team by specifying some " +"characteristics for your team. Choose carefully, because fewer people might " +"be interested in joining your team if it seems too restrictive." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Create team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Update team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team creating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team updating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-actions.underscore +msgid "Are you having trouble finding a team to join?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Join Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "New Post" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team Details" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "You are a member of this team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team member profiles" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team capacity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "country" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "language" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Leave Team" +msgstr "" + +#: lms/static/js/fixtures/donation.underscore +#: lms/templates/dashboard/donation.underscore +msgid "Donate" +msgstr "" + #: lms/templates/ccx/schedule.underscore msgid "Expand All" msgstr "" @@ -5129,12 +5740,6 @@ msgstr "" msgid "Subsection" msgstr "" -#: lms/templates/commerce/provider.underscore -#: lms/templates/commerce/receipt.underscore -#: lms/templates/discovery/course_card.underscore -msgid "gettext(" -msgstr "" - #: lms/templates/commerce/provider.underscore #, python-format msgid "%s" @@ -5224,10 +5829,6 @@ msgstr "" msgid "End My Exam" msgstr "" -#: lms/templates/dashboard/donation.underscore -msgid "Donate" -msgstr "" - #: lms/templates/discovery/course_card.underscore msgid "LEARN MORE" msgstr "ПОДРОБНЕЕ" @@ -6148,6 +6749,16 @@ msgstr "" msgid "status" msgstr "" +#: cms/templates/js/add-xblock-component-button.underscore +msgid "Add Component:" +msgstr "" + +#: cms/templates/js/add-xblock-component-menu-problem.underscore +#: cms/templates/js/add-xblock-component-menu.underscore +#, python-format +msgid "%(type)s Component Template Menu" +msgstr "" + #: cms/templates/js/add-xblock-component-menu-problem.underscore msgid "Common Problem Types" msgstr "Часто встречающиеся типы заданий" @@ -6222,6 +6833,11 @@ msgstr "" msgid "Certificate Details" msgstr "" +#: cms/templates/js/certificate-details.underscore +#: cms/templates/js/certificate-editor.underscore +msgid "Course Title" +msgstr "" + #: cms/templates/js/certificate-details.underscore #: cms/templates/js/certificate-editor.underscore msgid "Course Title Override" @@ -6266,19 +6882,13 @@ msgid "" msgstr "" #: cms/templates/js/certificate-editor.underscore -msgid "Add Signatory" +msgid "Add Additional Signatory" msgstr "" #: cms/templates/js/certificate-editor.underscore msgid "(Up to 4 signatories are allowed for a certificate)" msgstr "" -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/group-configuration-editor.underscore -msgid "Create" -msgstr "" - #: cms/templates/js/certificate-web-preview.underscore msgid "Choose mode" msgstr "" @@ -6706,10 +7316,6 @@ msgstr "" msgid "Add your first textbook" msgstr "" -#: cms/templates/js/paging-header.underscore -msgid "Previous" -msgstr "" - #: cms/templates/js/previous-video-upload-list.underscore msgid "Previous Uploads" msgstr "" diff --git a/conf/locale/zh_CN/LC_MESSAGES/django.mo b/conf/locale/zh_CN/LC_MESSAGES/django.mo index ac803d8b9d954cdb29928b1d689aa5dea893fc4d..16231f892d9a0d278cafdfea92da93c31ee36084 100644 GIT binary patch delta 48037 zcmYh^1(*~^yN2Q3*~Q%*7F*oi3GVK?xVr>`3=rI5@!$j}1P$))?ivUV0YX9u63+8Z zegC;KS0;B=b#-}l_YAu*YINMQ-^caejUO`8J$i)lSb_ zi>t8%*5BoM<8Ti?$BMf>??=qL$MfdmHGGV{_Iln5Y_!kw7UEajf(!S1-Ycwo!1E@1 zp5OcCpyzET;XK9&qVPkWcaiwa!=5)3J09`8V)z7=p8lxkh2wk7g$<8+UOOCvz3~;s z!|>ytmk4`fbR3IOFamw}1LmWCZy|xCBwWOt_yQAS@)Mqy9rIu+Y=H@JFlNSSm>hRv zH@t!svFu6Di;NRc`KO~Auo4+qZxg1*y_lZ*y*mWrV$dmfVtiDE$t+$7)xeTwLySqh zCyvJXY-J|;WkdD$>KDt{yN=O)mdKqg#->iIGAE`}2S3-e>* zvz}KItD;8W2UHIaqt3s9=`rY>=Vif+sC+dsEe^mRa2{%{6+F-QYcA@Z_qH~^F2L`;T1Vl>=~&+#~F&Np9hBXtDT zs3*-ZKK4R2Xe7qL>8JvhTKZ;G{sR`jikj2kPz?*dw2RE3Kzz7g9K--BvUhRg1Fe$*N&k1_EG=ERGrAr89YMkY0?fw@unYoZ$H zKSv-Tf!AipRX6m>Fh1#NP$Q8SYhh_rkEWp-G7sb78r*`r@w*^K@EQ_-dEN7>VTT*+ zB;0~S@G&M(TiV`qi*5jFPNraToQ(-7XcMj_e(V;*h<$E5m!NjVIiw)(DQXdZMvYvC zJKEo#R{%?6CoG6-P`lt)Y^AY?b=NhZ2X^4VXjF#ZF)Jp&=Z=?0&22M`j_pwu^}_FP z1a8AG*cP|mXVftHudX50u?X?uSOa%qxSv4u2X2VFpn5V8HT08EBe57YMY}K*&tpn_ zYw_3*-Fdk%73pPBBi0H-gDCqq&-)j1K5~mM#}j99^lQ;nC7`)%gz8a8b0EebJ{~p4 zvn;*}H4YgwTRo_%x zgFpKTXjL|O>lVi}tV8@1#>CWrxE^Ff6;KM}V+BlxjZq`l2V>wwRK;^J3U0x)xEnPh zcQHHuhPBZj@0}a6Hdvm7?pPGJpbC6#$3I~i;*tM!>6KBJ()!pNyI~u=Z|UX!^1Kk@ z%~0jELS09?p*l7QX@lPzOMq$d2EAwRV~4*zuQL9P`SF_%ZY}gjPVlB-UL5(48}e;9 zmiSpz{)Qhp&Xi5WY`E`}>-me%p4WxrZ&4%J{EHSN^WT<$hH9WW91{^AXD&kZV5=QJ zfST(Qs5NmPHK)%|J&XFUOHYL9iKj-bkusPXt6@Csf_Jq4hY(POO~1N^^ul_?2cil* ziz?uj9e;#c<*zUeez5eUUQpoX5{hw1&xI|q6sn<%Pz_&Y@qOr5!N&<`1TJC=yopV) zNKjDV5o-o&ksZc7cn9-g9A8l2d7vy-Cmw-XY`>xwXK=79Hx+8gGom__9TQ@a;2?is zQPdzoL(&Yj8@gMD<*1(QG*6-y(M^j#MRni<#zkLSr;4q0=4?=t}v7!u7*MM~6Al|(I?%BX^Bp?cN{bKxM=Vq1$E!8524xrNIA8r9>d z(Vgi~$BUynQVUaP|Fcw)$<6s`5 zsjvXnL^W^}>JmH|HKGxy1}#LLzYG03@gxCV+drc!EEU^X9aV8t)b*h&s^xug2u{Qv z7(I@gs_#%kJKUUwp~TmshW<3F;`^v_UdLhoYjH%0>xMcNs-i5Y^gO6FP!Y3X4b+r; zXX&F+`6r>SY%@{$)}co9I%-5?#dA}X9Mz$$s1Yd^kNvM9sX&4jR~yvg>4$2-WXys; zq6#{T`S2EMD&oX<1t!Dn#IvHVoDES!zX?_DHq^+RKsDelhT?0#1>z=fbC?G+a-fYl z&iom3kbVU~sMG^$6fP^-EN zs-;6wBQgcGs8*pW-iQlvKWd6vCU!k+kJ>$huu2e9g1QOaPZH!^!qQ3I+De#=#i#wB zj({4l6xHIDs2*-ZHRKekz`Ga;KUn-lD%?L~5jL;x&E9qC#F$F`JqY3GQyxAl~&lu#r!KJtnBf^5b8CX73kT(!-VmYjr zIVkX%ZZ3`^{usltXO^JAHz5~rGVxMb-H4sVS;Svsc^sY1jo9gI?0;PnZ<3&){|gJ_ zC)A@;{_H`4FAy5xH^hfyZ9If}P)U@-jZ|N(NPG?E!9P$_mLX@5R~NIPrqXXtL`~t` zoa}!snl&V7uJ)kf7jOaohMIyAx!hcDLS29^qAIwHn#)J1srh8_xVc>q!%$O`A2lUa zQH!}P26mU9Kw1)}pcc_a)CFT7YB60vJxJU}t@clLJbIp>z$d4asGfzQ8k7U`V}8^~ zb;9m=XHXru ziCUa5Q6EU6=XcKsVW@b0q#VE3i@QwHLwIKUqy@8MeVlcsGi@!C`$Q_fELM1)DV>}>p4gWw*X{jRa=G4mUget!mHpgk0OD%d$pcbYn>UKd-%tX9Ds%HyPi)NV} z--B8Uhfoc?h`QjsMJ?W-V($EesF5g+I$i zFY3Z_1~moGE&d4y6Hi*)t&N$e@|K}?!$H(qxQ1%jGgP^sQT4?y!Tz61AZrQtKyesL z5HC~GwRjj-Cq5N*LAi_jv0EwEvz(>f2o=W0q?bS~*4bDT*J43@j9NpfzH#}7qdGGB z8}`4p-E0!nqUD$Y_gKaUs0-5*)X2O-4e4K~HSiU+zoVCN`#UXa>WZR9tTn29zok#Y zY{a*scFV6iP?^B*m;(!!b#v1m^APWix&Zx%1@JPK!sz9kRZu-0k6hZlBd80_aa4zX zMK$yvoQfgkgS=)q6N{k#4+6U6X0H(Bb;ou%5HF*KzDC6$?`NEkTCCM71$m?JG$!TV zQKz!o|6RD*|3>;nyoKAU26;CyqMCb{?N;4A8Lh*kq(`X{IM45$C9sKv0yTrY_xKcb z)45kG$XkqkYrDBhRL3o*Fw_(jMy=*DW@YS2ycTLZ9zd<~lh^~V;%KZ;*QKAqnCj9E z0?#?{7&Vj^>IDV4rgpFDM&hXXQhkm%Wjj>oQn{coS4P z%TbGOCnm$=sONzPsPeKkW=cZ|lp|0F+o3XUN44-GD&sx#18O_PYvLA9CDe$GzD5|_4nzR4a(iJ3R#G|Nd{Y%sXNSqdKF7u({ zjVwMGb>0$8jtA`cZPRP%7HbBxAZo2tLf!qEp%(7|KY`W+qZq7_D4A^HKK}|55@P@|75h7g1NJcbEm! zw0147jJg80Lp7iqYMYHf4gCbvNX$kJ`6g5YFQ9sQ*L;K;$(P88`@Ohr+?*CfWvqzh zum)-yMW7bfc2rMaqPEc|Ge%oC)G5pys5Mdw)x%n-T~Hr2GHp-|7>G%<{}%)TT$53& z{S2z*k5L7^L(O$aJ6CZAQ~~)>Q`88xm|CM6*bUX-!KjhgfSS^CSQ;N-VNBni-9!Ce zGXfgQ*{C62jB3a#)apNA@q4HWKcIT#>)>uaaZwG-gz8~M)V04kmc@Rk5!->9q7$f_ z)^F(737-h40r5JzDM*eQy0oaCg<($2WASjzOuP$fam}#wRj9SF8CBjs^SGs7K#kBH zRD)i2WdCbBd?rCdp0tyzFeBoIhX~Uc?gkkDq{svQRg--NI27jYp*~#PWCyD`2edZe;4A8qyt= zZz^hvc3^&dir-+W9`3oJCFUYN6SY>3pcbM35dpO@bx-$HS_E4XpN$&2zfp7c8MWwQ z^m08-hMKaBsAs&qs2-KWyf^~q;a2Q{wR#764RAj;#3X$Jw`;%GgMbRYk6MhsqY4b^ z>#pI6QL8l{mc%Nk#WN0dvzd$C@Br4tT>XN)aP(s+-9s9qMzSUTh5c|g zb{Xu-4Ibi-$3VY&n3jO{YXMXNB~f!<4%M*AsMXy7wH8{Ny-@jw;c6U>yD|4r*U(p} z2Kv}#swW|;p3JCn^7t8l9Vl%X>R~?O9Z~y#K5EE+LG9a%*ck7idR%CjYiN1Yny7+m za1*nGrT0aR=t$J{Vxq;D52K(wB>Y5zdUy}B;S1CnNHW}2oEfVT&xabyVW|C|bcCDp z+^Fr=0JGy9)Knfp<-3pCb|0_}CjH*6g~5ITIY`)s>d_<26~s*kR}xP@%AIfuD-+K( z+I=-M5bG1qHpVTs;i!s^V+*{G%3o@1kk=8%p&IrFYQ)owb5rBbN1zM|xzhMY!Kd>gge zpQ9=ap5~56!(PObp?hQ2+ckszA4cGqCH#(BJRea*8)v2)vh=8)6hkeZdZ-H8 zpys{{X2BV#3iqNax`OJ^L-SA6d68zhk&QKr{jY72odm7s#;Ca)h*~s@P(ynjwHR-r zrY7lZ*U+@6>qS9SIjvEPYYOW8L#XS^pQvpaHpeaYQK$w__Y=_2>_*MeHPq1FK@I6g zRF7iLb@|fcHsU2wBlR9NQZeSahNVIEFf;1>+*lmT*l|B=-D)JS|lU8r&_byHCpLy5OR zoj($_xF@3OS-q6~uems22Yy3s!=PpE87?grB0d7U;7+`WVL!SC2Q7Ca7tc(L+7&5K z=jBE%>W-HFJ!;X;L3MD!a`wMYSVzKnJb>CR(^t5s;d7|D&9TzWT^m$SHd%ZpswdG_ zx%+uqtWCTbR>JkD#r!vF3cjG$M6}gh%7gg97C!;aQQtMLpb@CKpNCq#%TX=eWFA0O zcpkM)pQ0{MuPy!$s)62GcVUW(iswhwQyjHRs-Vj8wb+1w#ECXMOywR_r+sR)JU8`I_mdsxPbQ?>H_f^)g#|} z*V34%^f1hfMNmC&jasywQ27U<8vH#r#~G-R`~x)tUr;@c^s}4dRG3ctzX<_77!1Lp zxCGVH+m`+><|LkOgDa>uYEd;tUCH{QMqq+D1J&RK7>pZGJ>FvR{g{FHVO*~L|BOI3 zoU+kXunRR;hfqDZfa>9GR6&nX+wc!m17d7)L!J&b0tHdKsG`L?phju{s=TqNDT=_r z&;P8n0~@gm2Xm^TL0(@hzR%reH{v$pw@_;+V!!)nwtGMO{}Txz2i%-^2i-TJ8Sxv^ z2cU*}Czi%bSOF6ra)0vC6m@;Lj>;eVuzQ-Wg@cJlpsojTkGS(&qnKH-=qub37MSz+23LWiJPL zO|cgi!86z$qg-(f?2np~g{YyvjJkk*M4g}Os{2Fh=2%ht{|N!@?_Ag1m9GV6CEgdc ziWgxRUd6Kb1y%7k*WK|!s43cn3$g4C_ki&L)ze5f-AAz^sO!u3SPl1L73%k5+;T(K z0J9SxhRX1hrGG?CL5AC|;LfP{B-BIcCDeKG?zqKS5>@di%);8*fm#C(@4EDL_uMwU zkN!*?@b0^9kr|s1t&RO~9jYPeesyc42P(bJmExYv4LmLq4HK zGS@@5joV{o;?p0p|8?QGO@ew9^*6V;YG5(qQ&B^G8g)~O{K);OS4z~}Hp4|Y!qU?{ z4)W-f*BUj{Wu68FehFm=UL>C3nQOq`s0OBg&i>cj_I~a@g3ZMt#J8b(Sm1^GQ?U9t znfNkXiFseTk-CYimG6~1{~qcA;|oSY-|z1EA}UrPo(l6~M;wPg_zBb}kny$qwrUV+ z@!i4M81;?&)3C)@hIoOut|0@kHSs8axbr(>IPv|cZJYL;TMOYBkN8T|O=$<_#?z=Z z#`fkOug@nD1RdMNk)rniv&3V>Il8$#4j2@y*5t_#0|J7yH{S!cLfl_;l3T*^OGv zA5e?0?guxe<54|dgT=J}uMsFsLV|x>L+YV=)EQO4a7=}_u>gKVT}pF*bT^SYSdRES zR0HmzMlRYX*O7#%4y3}!SO~R7N@6tX_sSB8h1F3fHbp(Lw8v7|9W@2(%{{1*IgK&! zDr(9epep!?n)9H~uAvD~Gv)D zrNuv^8Wi=5o5J|Ggm@0rJ>?v(!9M@Gr|i^Uc|2#EzW&PopFki}kS}lv-t6-QhWG($ zj*|xaymQzCM`NiFpVt+SqNXBWBwt{EcS1EVZe(9zXwzai@i0_J#-JJ)f$Go#jEO%* z_WJ_Q|2s+0Gub(;fPbPYC>F&X?}geWqfv`Hg!!Wc1p+LnH=9symkCZM+2Ni2^~Q3d9V=?iSbvZ(9BLewtVfm*DGQA2(m zwOhWTwqvPSzQ7f8Bx>~^L+$%>SOh;~E$#n;v3-Fb92kRY*$4a%zlq}uY^&X<2Z+nq z5TnI)Yo!(LCq5c=O|KX)&?E0VR6{o66nu-iPz{gohW=;N1I;e%PW@i21irx2>0sPK zJbyx8;OFz6VMXGL61i3W1dFg+CMRYj@OToRH-h62lllT5wc00h6`n%%xM^}Xf^ASE zHvqLpB2f2&b?9dfynO_;h~A@m`V~`P{uFL))I!C>QHyD?ISVyq8!$JXMGf&+%#7Jn zy7TH|TH?Jh0wZufW=iGr2Og;or*a8VQ@aY5qvn1eYL#BL_;ZVYMGa}9G;WH@qE>rT z)M5@tE!v)_^M{}oV+3ju|A-}UeHyyj0_i-!#+13;Hrjw)h(E!mST~RB+0S^I_(Lp= z8}j-BKalhcwfK7Eb3LDrjfoe^@6MZs+V@8=Cw|4&+W$EVSO(PUK4S5ESdDmsg1*25 zMYuU1%aDE@KVgbOKJP0gDeMdU%xID#zQ8l#R@BI}Eb69g6l%9@#U6MG>uUd(E#?b6 zt{rFN#{UEm3#D5oOu`3M?T(Be5TKvnXB84b^zm>R*Ke@BnI#i*QM^iS3TmMi z*;EY06R0_Tj%sk+%D%w&g;P;iyfdf~c#l~zMHM%t6;R)NeuqVIHY(pmKLOnq|3+=E z>Q#M#k6srroOs1*uBWR|BU8M(FYwcHqfyTdMQXT)j>L`3{bAJoy?-qmVk}Mi5>$l` zYP*g^spF3OGZWC4}{oVsh_-dxC z=T0bsx=S@MJE7)!Fltdv$0)c1b*VjoT9g-2&j1RNUxks0Z$LF@8>*ax7C(nEw1{pJ z&@On4T3nGDxJzd?vpS|By$5PHOhGkZ6^7s@jD*`z=kGx^{Gp}4KrQmOsD=hNbn%4f z*W82=&=svLHpkJZf`3B|=`++_>~B;ja$_~Dg6i>XR09^G8nyz}fOV)T z-D~L=8nORX@HG;2-+qiL;5{n+3u@?MHg**zK}}U!)KKO?xsMNM5nvp#Bs`l2q;Gt7gi z+x8pO6ooc*$1C^=XbSqGF16E84cUsC<0I(9bEpPgMD^q$sv&=&8Wy#g8|sv(p-*RK zMU6;a)QFTYE1;&vUz30;tdFX&9cu1-poX?DYS9g{^cj{u7gg|L492ynYx~cr^Do-* zYp4c2z&!XIHH9gg2lDy7%mmc39H^cYG^?QYdkc&AwfI=neqMYH->H?Rbg?li`iDATBV&M1xMiWqmrI-!(pr+y(s(@H6-OVTr6)%TbusP=7(mDq3 z65kr`^ETs*R_+5#rPj{LSeo?9m>CnbakuS~m{t3KCIR(mzj?)cj#?XEF%(m_b&ID2 zE+gIsRbZ5MZV~22<*$jM*wx~bP;v;y7Sd7DvBK6|^nhTb+mb!Y$c zRh*Z+hcEDTc}Oq!5o|bybHYhngxPw#&;6%xIPt=L+@sb`Y)`yVU*|p?OgyZgyK64P zaN>pf`vSkrG6#1M&-JY@@H6JmzV*9@%%KC^qIix=$q;X#o1-nL#S-H?_W+R>yAdCc z+BF|gBN%m%TZAc4i#Zc&7vx3_bpg}}cS5bLkr=py`w3{sH=%~;IBI`CMpgU)wW`w$ zcF%x?un_UZsEV$mcEPWxUGTxuLx#9=W1-4Tk1F>YRK;~s4e>W85ShSm)SQn+Eyg9N zhW&yI@wBCP8R|YA55q2`f5P0@fsxcm%)v~!*5a429P!7fD`mD}uKX%azt@t0PV9?W zaSWEkO%{KPYDmiAZWZUnGQ?|O2AqaP@E0tAZ!oY1M!5XTP#xTdx@R0UF9l@(-6x=) zzd|)6^7pR7WT-1#F8qu|QO667bOlv08=7s+Ua0bhqAH$^x-u?At(gO;hFrk-+W&V6 zXb#^h0i%v`8B(Bnp4s9hQ9Z6|@t&w59b)nM=4w2Orbz>_wBwlWU`=*-O&@3e~P8gLN#PHCe!o(FP3l~zi{9VMy5x%=DFMJgCAVM zG3L9c;S{I>vY-ksh-yd)+>f|K zqWTkcVwT0OqB5w8Dx)4$nxT3)7Hi>3RD(WP`d5q~o_dK}w42O3*p>9COWFTAp&tRY zcrYqH5mixyxdPRY9jKmPM6Ho~sQjNS?px;KsZkBfh+3rOP-|c$YEe!`UBWLeWB;q7 zL_fL=nXxqSyr_!$pei1Q+UIkzAHGFx%MQz3g+oyJN1D@6T2-VYtr~=obMrbRl;IpWqzk-_5 zKXEyRtatG>sC+xIIQkD*!oOyupIrqp&19nv(-232uoR0VZWQ`5$d??UzLpvAA4 zx6OxGnd8rqMeFzSZ*Z%96zT%B6AR!uEQFCZx|>f4)V*OPhM{kht0)VqVa3g|s1d4S z#~WI_GpfPgqAt;6Fp>8ERsw4ADf2F>fVbwqW{k~lEhI%9&uJDzonOh~O)cKh;)76A zG}huvPz_nHxc2{EJ8;SlTt_X+rok+nE`WhJP)eia8!WUHAE35j&^C8o0n~Z5E#4NjNQa@;#&}eD(@^ECL`~t* zZR~$#xI}^qxM{vZJ;i$4-Be`8z@kFsYl!MmXH9xN=&c z(!2OAVWcHYLp@-uK{f0Os>0i-2D~;uTY9vet|2KgJ;w{98r}@mppmEtlzFJ#bPhG5 zQFgfz^d}*pf~%rVXk_v3sEmUwJ^{6D=AefDD8|B%sD?(}?aGORDkr7I^P(D53U$Hh zfa=hXPQSN}fcE`K)STTz74QtZ;#VAmUH7<(o}vnPZTj}Q3KF5xOQ1Sb3pK>eQ61@T z>7!BgL#W96<7mRaU)bi+M&uFfNF>z zb^aVXzDmcn|9274wf!KffJdljxj&Qvlk9gVrpCO)b7Es`g*v{=jvq8HqRM%ID(AJC z@PKP@5mbGh(VvmPBm&B~8THh99aTWIgU-aLDM*i61B+0P*=JBa4LRiUB{4IYc~IXE zmPGZu5vsu*QRnqIWcz=FWteFhmZLtcuESZl7uBHphuw*-QEQ|hhI0FzfZAT`j<`QT z4LRzjWCv=551}e9d(53*#cY1e?+Wfof-($2RWuT{ucukY4X6=1WbvoikN79ln(1}i z6+9Q~5nqRz^Pm&1p~+E~^xUYmQU^66&HMzkjk=;5@EvL&4@Wg*Icl+OviMn4zFQW5 zfEvozrthRXFA*v|oms%rD_Oig>bl_XNI)%HfU0O8s%5v#7pR_mLNzGiDK`>nQ594` zJ$yFCv_39em>N%?@p(H*e{qgKPh^T#ocDQih{w3-^A6yTn2eu4@!DVV1%7;P*k$)% z5buinqtd2Wii``eFWy0|`Z`zL(62+Sjda)CRPDf}#IIv{9CY0^_yDS*XHg^fE9ye@ z6azp1pYew4c@-?of%d2`6c%9_ykVxi>C#)GK4Q&9&E+Z7v*H!hcg1OMxhc(!s<e#!5-OnzY-)Bi`(a$tM_}O6iMfa`K+XLb?1-uFx^KD0pgOb^gYhH= zroj9aRnMPy+5hth1l@BzpN~4Q4pq?(iyuPG>3NGMzVCXP9<@!2Tf8ai=G52Xt573( z0B7TI{0+l@bqy^4!0#4Aw+HUy^%~S%#dzpUfeDCbLlsmCbsMc<@u8@%;YL|}GL9ua z)8eUrbLVA5bs#&c!M#xc~8)7K-MKyRPG6H^YJ^@wqGip`uw)jO<3-93s40-Abo{Gvh&*B?U741Zo zbJC7qGhd-DJi*W0pOViPCREwWrHT)e_QL&fq zZdu73h_y*ygUbIIl`r^}GcM|Gm^2>e5mr;qQ0E!h1qZ&YKpF7;Qs%>4n%$JGUUgmWC+LRxEr;2lD~0( z7}W$-QFGK{8;jZnOK=3PLEQy&ymeR55vWV<5mb4;KYU&v4F7}uUxC1766RuxckX_@ z6$cP6@F!nB1@Tb{_1W+AU%tT4|7Uvd3;aa$dpu0~zQ0`qM}FW(Du^G(bC~oWU*K=M zd5Wiqm;dO}<9%{JPx$L6_J0HiI(~LT^%;{8kM_lVot_poH95@usGb!=4dGPO;+u!n za1D0HzftG4|JT_KPY~~mxv}I|XAeIC&EaBHfxFG4sGHDv)Eq`1Xj>s0JLj_&L;hw=Mn}b-nR_CZN?HHz+u;h+1MN;{C7(-m~pzt%GU*fqk7314C>sMtyEriJIaos0-QeF@pK?UjhkY zx&n%$TGq(o?NALGZcecDnWzSCMCCt*s_?RT3pHX7P$L==%Z*faRK8NEHB}*&KREE` z@gqo3%T}QZJYb$RZ<$ZczfdFNiyh4V;ZH(Q=Osp^r$;p)A8Lx~qss4S@!=So_zXV* zZHHy3mhD0na1gc1FQN(viQ_6rVrD>nPRN6*s6J{$zQvq433dK%)JL`7Q6rf#uB#^( z>bC4JNIHP1Fd!v-H%7-Q1T(rGJac zzZ5kBhcWQ?|6L$Zj)XU6fh2C|ze8Qw7NMqKFKVu@;Wrp5X>j0axFY5w?nhO$8P$=y zsO|k0wGERe3l99!Ss8O_GWNf=k1x3!vdCs)R13o_p3mZCu@vdGPz{-ilW;G#$7(5p z15dr1Q8%@al)-^7F6yF&{v4_!S5f7^PRah)(0{gs_^DhE(x5U_v3Nt&1IP&T4ywY! zsa^UaY)t$kYOd?0aYH>B4-(&iS`&Rj-N<}z&hit`fz_xAcc2<{6xHI}*ash?ZmSK` z1_wTREyD`LFPX{Hx%+=BEJXTBRC)JMk7h4Xi}x?o)O7vM|*IdaWm^)FLe#h_nB?6VTmjIBKXC zU|n2+D)=L+z$lrWu~F%XES}EdSu9=<)$681Vxk~!*V)+rb4f^( zJvi_)-#btr8dK*8_LgD~tc3A%x|>N;)DTWW?S{oz7C&JlES1Y$2j-v}avC)y4^R)M zf1r9^IJfI?z1-}7^}LlObVr>q2sPvrP!&!$m!k^ajZ^<>M#{@3lY7zx?2GpfSbs70~{b)mU}x)}xMb@?)*&a00Fa3t#ZPSjA}LtO{{ zMO9QdpKC}Z%uBo`YHCLK?Z6srNWw-`h0*f66APglRMFy1P(AF7D&Sj-FG3CNI*T7i z_52DR$J?lKmKSj4Zbu#WA19#IdJa{p{8UVs=$M& z5jcV2_!JXkwGVDM#=qPG#&!C3<57d1>c`;XD zF0;5<8FgL*R0o=)K6dxPbhrpL(g!iG?*DfQsHO3WyP-~jidROpxGt&z;iv|TLM_gp zFe6?!|Ha0{Gn8=W4Mm+d!Q6mq*cDU*Ze!rj|2|kkjFRp^Ce#I}ENVoqp&IfARlpZB zq?AjKfx0jyMK!!8>Pp%eb$)Bq2oJLOWK=mTOR@j8sMeF99_>X{^bA$Nd&~G0RY2s@ z&Sa>3+07!TiYuVXt7V3xrl2RP!qJvK$>Ix2``w8@lAsFKn+GhzWmHACPz60T|F!gl z-?$3XqVnZIRa6o+^ySUY7)*SM9gje*iFtkkD)=a>fZM2sJj0s!84F;wGVW9D2-Ih} zBdDQGU)FV?I1VRX0rli_9CayAQqDD`BdP(DQ1whh)#G1CK#OW4Y6x#&a(sx&_^%z0 zQQq||A1b{lssR;I=Y?B(XAE4JP&cVXsC)8rVX1+f|No~YwzP(4pp-Q^2K4S7ENjMY#bsa(Tt?*^!NZ}e-s z_zB1<<|5QJ{AX0bXU!|-ZB)-5VlI4T>8WbEf-|5lFnLhrRyUiYI?~M?R@3hP5hRr2 zz+zO(@1qvaKW2(rt|29`KI!F9Lp~2D;Re)sC2PCY-w@Tq6&M{in|o20?h~jE+^x<2 zS3yrn&)ZC4*_)OGDEkzCKUQ54Z-Zx*NI`k1Wf@?iBEA<5T6Mf2M7M~io{Lb zwmyyrIG((jTdcQHyC-II#o2$I2(%$#E^27M;2w zjCStIR~vOD8-e+74YtF(7BAP{^>6^DC4Cj%#gq6BS9fsFmoq_{j zzgNOT#2=uZ0atW(1-(W+Sj6k%Za!Ub4Dl0K3~P4{4*b2JlTbaZ(#@@nHmIACAJw3< z_&vTsb*yi9_P?&_JG;A2voBDKDsK-rL^V(uCu3c_jQuckPgmeVb3bZ3KEQaGv6oxz zg-|2a4vXVl)Kp)^a4g!J{jb~P54~N6m#DeR(#Q3*66(QZ1*!oTFePT}>nbRN>RC_J zcAJjMzYRO$1Jnpt?dQG;8HL(K>ro?hz)wIeyJ-iK^mjeZiX}+ziTWOIJr2eDI2Bud zt8cFuO4NwO8{kGP2WmvSS$rXCWbUFGn0BDM3s%7V#QmKK=)$lFHRoqgJxctYYk6VR z5cWnjbcMwqT0F@h9;1W!e1N*Ubs6l+%QwXJv=wU6_C@u0K59*D#g^LtAwyjY+hTeS ztVH$T6sl*R&7@3~o_zA7(x+oNT#p*^cc`_JdYG%QE$Z$#5jCaPQTLd?u_P86uJhP` z{R08MctrL5G-@P%N42=nh~U64q0~Zswekkn(BsVCyQ#S}(p@hijdITohfqCUG}D^bX-@j5jto@J}Vp!Ft5Ij&pN=0M)?KQJd@&VP5NK@S!NNQF<-2?iXgHTu65mVX!x+zR2K_|{fUE6=gvUmhl zaI|U8#AbTbkmg1eR1>wjTcUQyNYoT0n(i!tDz_ab!$GKeXKE2Cu!sazv>L16FQ`=- z6yXZ4g_()>Lp`@IM6HFBs1fkZa3j(X)sTr8iW@OIUc_Sf6%%8znXbci`~PE$49DXl%sDSO@b8JA#YjQ?obM08UN4+9-+lG+b%AS0 z-i2D!?EmHjPI2Ng?20`WxvyMrqppm#7Q5Xs6xH&WOWX*g!HLAfQ0bddBX`uiWZp-O z+$+@F2QPKkjpUe*`n_rdRKPIQoJN=nP;8* z15j&Y6sqDS<`&eHAN!I0uMF4hz&ljIk(XOVW*9185wkvO1bW%=siV3ANUEVg77u&I?xlfsyCpvOM$h)-bo$DT$pWLaNw6u zo1*@7dlW9k{ivR``N=ihkGigm!}fRrk6`Zg!GYg^d~f*LN(Kf4!J%JgNcLPz{W6+}(yVpyC5j9hr^;aT}(=JSW@}R&6Xr{Q3#@ zzy2g6=}EUw`(S$FJ8&o7L2a`+r-HrKcnPy$!PCKkzrQaW)zIgtDJ*!#O+g1##};Bs zJcHWKInKJZ)d*GYw|)YevrVW6iD#&SN}h9n#M%Ro5#NZHaNzl1ZyHv=5FGf)$$O|( z|J_A5$MaF~!`KNQV*{*p$u^cy?l`%Q-cF2{|?+qiMp;={KLapY1QL8@Q zO?QP%jVdT7YL2T|ybY?Mesc+`1BXx-q6et_pD`R0-Ewo^9|QaU7Xm8y9O_c}0yTGa zZo9=Z91|1&gv&Ah9XIFOQJ3zJyRO27Setl048>8Xa#x_X=|NOOuA@5q76YIEQ{Hno zk?N?Hk3p^871#q$q1H&T`>vO)Ew?IpP?#B@~hh&IZ)-bLVchahF$RlcEo}Y z*#9*MEF$m&{*Jn^jDP69G@6FGO=kMd*$VY*w?Ck!ChKEYK_SdddIJn4easW*D%1#^ zK$ZK*e2Kb3zI(#{*MTo~Ampjb7{iQjCNo1(CuXvE9<#7n%B)~kH|v>A&DLh8r+!yq zPfPd~btN2%8oKG0z7f^q?dB0nzld6_H_Vro{?+1`pSv~W&qyE@2dZIq?2Ou< zvr!dnLQTLSx%~Uz1e7uO zr5nn)sFtQjRa^#DKxHh0ZBPwcVQxU>+lks<2h5w6{th)oAI(^=T>elD{QPew0xB@S zSu${d-{-^Fq}NAHMO!=G&5nO-@sX$oOg3j)`h1J8Fn=<)n7gFz{|7DM1gatDEq>Gd z6*Waq&B(vI>q7?Ag`_fSO8Q!SA?mtt!s36UMkd{BXED@>*F(R0){207(Af_3Le1?^ z)c&1pu0b{MC@TMX^O~jKwfIw11+Ojs8C72J8+U#J)cL92*#6Hzg61fjSrYZhrM6|P zZ#F}%jW!k^fojk=i$`D>@p-5Q9I*7WsC-wKJ& z%xm$g7H@<}NbiNZeUC$ZPq@>(X8wtpNssr3dmt(5C!is2f;yo;>Shyxn%gxP%BA%R zUM2qiU2xzR49@)NZnF*ka?c4{FjU7;kKIY$yDv7gU^?R8p~_ugZb8-SKSdxdfhVX% z7VU4>gG{K!*$A`Yb=1&@d~gj-kJ^@{%_gWTXJ4$3V^Md}yOtj7A9r3_RKAi(gZy3{ z0(D5}gz@O-Fc{lKiM|v0X>3hPTEUl(htPJBgH$Cw>{Qc8jNA}=dGFRc9 zk+)tct>7$#R}hX$<%bFH$Q=03y$aD ze0~@{@QRK8N1RZWmh>U1JmL6uFoJ?BlkT^8M^5C2*S%jzt4{@0D7Y|b_i+?yPk8U* zoN1)}@3o%_eH_n2x&M3RCcehX4AbAg_BRQGI60I=ehq-X)0dCWobZ53x^vbATuAzP z!ew}mrqJ%z!zrBiiL@P7X|n%RewTA{^A6?s|6UQ~*Q*rg*X13i>u($itiXGZ6*}DI z@qXdtWb{a{ql9A<-h&mWWIEwZygSoay~>*|#&5S#-v3_F$X}4MKa%j*fAaBrE&TpJ z|2s*mrqkoZ92{yx)s4*EthECu;2(}#qQr0Mm_5%}AU6zpK- zouRC<7M?=h^&I=kTU$KvdPrgy3e@X5;kKNxk{-6C<=d#7kA~i`|FnJy;XME8WnMe? z25I9t_X+mJ7M9)}KUw}=oO_*eV{86rkSP`wHsw8=3?anzQe)2(zm5Glc_1hK!TULB zb%4EHJE zFETHtz*$(%DriNaX$fz|)#Tkpcod_g*RP~a#KQQMbM)HG@mG|cig$m~_3BMpR%=9L zza>88gzUU^-_|RgWtc_bqbCOiWp)4%1e87L^Kh6VlCFf9A7=hV3K# zmh_v1hwu*PaBb4+ar_AJxExE(`L9XKLR_y?c$@SEy2YfU(*M0m6Zn&iH+WAVgI)x^ z{uH3s0t)>^`XLhe?JAF(UErl#ZWqcqf@4UVZXGJjdGoBC>@I8I|NCjcdeVzWqW|kv z1Ft9){+`5?oHT;>U@Ig##}ZKJ_gL2|Y))nTrRRZHcFvhk8Oh1NoOgSUb-*8~BsK5) z*1;m2TZ6p(tqy@NBXsgIo<9PwX4Z&(#M6;!DGi8ZXCkE#K5P_n!O0OMO=~?0hj z>3AZ-%XxRP-YbpAJ1^KO8BSQQW4zZ{o{v=gfa6a&uLa@ul*@-{z5E`(isjw6lXSm6 z$GebK{0pu8NY4gwd@2R(BV3XK{`ZPbT(3!3oXWOwEEn%f%1aqrc~7N`VRp`UgvzDg-=TsuS59jUBZ@vvBuzbIo_;c6*Jtw7s9qwtTKB0=1|7jw>AnX0>O7Nx-KFT=>$a|l(*W}f! z7UeA?Ei+{uA*sSap5@?aPHsqI_Wzvtm~cXRRfCf@ zSUUegN#OMt@v4?K*d|H`+EdOXEJm5ru@{YRi;sxwb=A(-w-k^5cmE6=;eUKg@~&B- z-xI!SLt2Om4szl@6#m%?`oWIfwaWP>Bk<9r40)oEXAJ4XumKJDnX+eE#f=EpApH!+ z(}%4LWc(EelOZlwk|ciqNfB=@sY@wx3|SZR4x*Thr1htGy+%6%zo1f-V--1;m3(?t zu&Vgv{{OG}97{@kouw@&PixZN@m|M!7UgE(Sf3D9MRE$%i(jM-yx#EtHdLV3Mk_oE znfYgB0Yi(h(G$%$7UPyu0$eWpPeBRl4_a}cjjyL(w z`FF_Iop&+HUQ7Bl-uuaWlQex^ok6;PBCY66Yfe$1UW*9pHJl9m{(0b~PtUPA>Ax?& zaP`($S~z9Iq4IXTQ}I4T8OJ&Pzt$i=kXU3cmsW` z(F#P?5ow0aIhcqB+;jQ8P#U1WH)RxdLVbA?gM50$=Ut5aJ$a8Htqyr=^X8vi^5PJW zMVXVR@H)pAl9rM8E{^Y@{L~!(miViP+6xl+>-=XLt5a$p&RESm3F)OcqaA4lF_g19 z6OK%JbV~0{=`DGu`Oo>OEzDsrJO5jYi8%K$wI<*_M8`>ANLmc)*dB>LZt2JYy;gEy z0|)-#9g~ckN#`3UZ#!|lf(Q>GkB>@oau3e9=vQVkr>P1YbnAjFNGu_ z-(M88)hby^ycp-SqKy572l3YH2G%4^uY_308k0uLZ9WC-H5Pkta!e{NNO%Ho9~pne z{-pKf*eLQ%vk{q0xIV`^Sivfzl>W!-Bj;7-oH@Mz_o`+2;?vkXoY#OxCGwNlih>`J z>kx@MDLgS5=1~BD6VLy@<`6$jKD~BO=+yrl8%g{i@o1DaiE|s_G78U(Ka!q{<9P`u zwNZLQxC-GTTp!jR_;m zt3ibrYsiu%*$OkrGIo(AW?cI&OtOXSvZMuFOXHm|W9&rCScfr#X)rNE44Kcl_uS|C zzs~cVdw%D8zUO<+|KDfXn?12b|hX=p-u?Ap*IxFZlPe|B<&0f4upRLERveo zTKMg$*SEcv$|nxOlWjFq5$-?$4R4gp>zt-^@&FoAh-2Z36^A!U2M=Lcu_*Egcn7G} zQcUm>;11}?`;^^vu_54{<%NzT00T*O=s;-@`+#AUY5Wj8kG!Q0b4Fx71Kzi8@L%Dv z)H|_ccYKa6JJqm^^zG!X`7>Akqis_X1AJ6%80R>e&gihI`Z50&;TC#ct;6@iTg3UG zVUx#jrfc4p0l(6>5Z(h_;2ZKZdY-5j*UznoPzUf!icj!F&L2Z~f`; zb!Y`y0IVTmpDL#a^&fS3H0Lz>#=sGiUu0h4{F^o7yCv}y9I>|a``V7y$4vS6+inJ( zR53v#xr%8F6Z0kJ6FrEZ&^(m0AN-%;JmreS4(d|2jORY`D%2MOTt+tmUMdT$X4VyS zW>B94eiV+`pTbCzF(hJB5I+xb65a-~{PZa{PvZdUml50y)`#BH_z~^35_y}w>eTwv49a#o>v60j&DJHqRs&N#qJM}oCC;hvXyPw<%{&Cw}{{JNoGXd@+Tt`XI zXxM^aW5mYd8^BwOGWIb77pS}8VW)>AJa(+U2U70V!=<-m?xq%ClX$8mUke$g1?)EL-0f3Vbp`c#HP|G zRs)y!+!?JLwKDM1;P;m~@?|N%_By7lk}R>1Vp&Mecno>Y6gJp;i%V_;+AMf&zptIp6`bk+cxhdr z8Rru4%flB7VbBSLjrJ|cC-5_fv#E=nWAQ++dYtDMQL+}IQDTD?PeYln%XwQ02wKBX52#QrC4kW*eN7ECH-eE3AY(H2Q z+8#tNc*W4YN{j*Pk9G$azLmKH`~-Pa{HElx=4eVr+d`{Y0g`L+#d>@7CYmz!Py}gj z9V`6VocqH4Lb1)%KVnjUR$PpxFK7OYmuVNA3^1{5`80I}NFaHx!p#u~q2Vw4L~0dj z7@&*2pk7gzeg%F|7ZkxXI4|%z3~R!$Wt>}ZUauS%H0#s572L~;@ntdyLHRwb-DW`A zqQjq3>xIx-iZ>Aw3)JmnId`On-AA&9{QG#AC@HyZKXs@UC zH5!k=T#5PA+rV9ezm^wt9#9xXBGwziX1x>lX|5`RFdsMx_*O)-;MRka!>|MyrVFGK z+tV|Qp6PJr5lf@@3%sp18B-;&0M&0`?c?J=0fN|nb(owtDoM`cv@XB=KfnMNc>mFb zrG8Bwu$o}ys8?d>Q~J;0hv0?~*V!oiZ7!ZGxRA5(x>I{AKRwtjh;ukTL4luii8T;c z(3A=O9DxD2pJ9RTxspcIEO=MAJJ5(Eh7w!QClnBCcfS zO8M2m6q4bPcF;5)&~CXjZ`7+?h1d$i6$@t-%e1Di9kCWJmQL=0-XhM0XhqOx!k@5o zbMV2O`+%=Tt1sNH#rXK&p=dO4(^*KBA=e}sM*IQqfqT*zCIsvbaXpw9u@MU#XW?6_ zm1Corc2Q5J=Xdbs@XE5pOwI+=*D<4&Jhh0mq_7b3CcGEteZ&+57ZJre;whXv!@o!4 zAViliv=3aPl>@ii=hR1_A?5(D2K-FzLv?Deog)m@D2+MBL0Hl3H+iC9*@v> zoTDKJAd5xOY@sQT`W@=q7`h<-R;s6Y1&A5sE>SFz=!)zDy%&C*C!unM6*|DQZAF5fN zMdr~nhrF%4#n+9&a{-nRe`AQ)XwI`}+6<`*zDS#=(Odxj6`~8lTH-? ze@7C=I$LZ#raviMd2hft^6Bqkw-7y`SOyv%B8b0Ho$+YqY5gSlNCw;O0EZvxv3@T8 zPVpKW_oX2k(j|n&HsTA&-+`yWxkzlyU2!A!2JfL)xeVSc>H*X&3><483eRqx(40=5 zP0uEHnaatPpG)lK0>J@73cw3+`Qm@VmcN4kiaU5{ zp39nahaZqU@$cKp9b zSMVwL3(y>N?DiL!*lIi(%`l=9S}j%2T^Beb|8N>d(g{*F#U=ah9v;z-zX0M;;BQ&b z&|y#yOW|UNk(DiRdmN4&FA-FyZoo(N0vgwCXbB(dxT=+<^gc)TdY0h(j=^14{psf9 RZb|WXD(P*x*44=`<6pO_;<^9; delta 48293 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 O!WlEo8+ti4$@v@RZd~F3 diff --git a/conf/locale/zh_CN/LC_MESSAGES/django.po b/conf/locale/zh_CN/LC_MESSAGES/django.po index 76f8d184ec..fc8a5e4748 100644 --- a/conf/locale/zh_CN/LC_MESSAGES/django.po +++ b/conf/locale/zh_CN/LC_MESSAGES/django.po @@ -263,7 +263,7 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:18+0000\n" +"POT-Creation-Date: 2015-09-04 14:07+0000\n" "PO-Revision-Date: 2015-06-18 03:04+0000\n" "Last-Translator: louyihua \n" "Language-Team: Chinese (China) (http://www.transifex.com/open-edx/edx-platform/language/zh_CN/)\n" @@ -1400,10 +1400,6 @@ msgstr "正确" msgid "incorrect" msgstr "不正确" -#: common/lib/capa/capa/inputtypes.py -msgid "partially correct" -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "incomplete" msgstr "不完整" @@ -1426,10 +1422,6 @@ msgstr "" msgid "This is incorrect." msgstr "" -#: common/lib/capa/capa/inputtypes.py -msgid "This is partially correct." -msgstr "" - #: common/lib/capa/capa/inputtypes.py msgid "This is unanswered." msgstr "" @@ -4732,7 +4724,14 @@ msgid "{month} {day}, {year}" msgstr "" #: lms/djangoapps/certificates/views/webview.py -msgid "a course of study offered by {partner_name}, through {platform_name}." +msgid "" +"a course of study offered by {partner_short_name}, an online learning " +"initiative of {partner_long_name} through {platform_name}." +msgstr "" + +#: lms/djangoapps/certificates/views/webview.py +msgid "" +"a course of study offered by {partner_short_name}, through {platform_name}." msgstr "" #. Translators: Accomplishments describe the awards/certifications obtained by @@ -4832,13 +4831,13 @@ msgstr "" #: lms/djangoapps/certificates/views/webview.py msgid "" "This is a valid {platform_name} certificate for {user_name}, who " -"participated in {partner_name} {course_number}" +"participated in {partner_short_name} {course_number}" msgstr "" #. Translators: This text is bound to the HTML 'title' element of the page #. and appears in the browser title bar #: lms/djangoapps/certificates/views/webview.py -msgid "{partner_name} {course_number} Certificate | {platform_name}" +msgid "{partner_short_name} {course_number} Certificate | {platform_name}" msgstr "" #. Translators: This text fragment appears after the student's name @@ -4992,6 +4991,14 @@ msgid "" "{payment_support_link}." msgstr "" +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "{course_id} is not a valid course key." +msgstr "" + +#: lms/djangoapps/commerce/api/v1/serializers.py +msgid "Course {course_id} does not exist." +msgstr "" + #: lms/djangoapps/course_wiki/tab.py lms/djangoapps/course_wiki/views.py #: lms/templates/wiki/base.html msgid "Wiki" @@ -5512,6 +5519,23 @@ msgstr "" msgid "File is not attached." msgstr "" +#: lms/djangoapps/instructor/views/api.py +msgid "Could not find problem with this location." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"The problem responses report is being created. To view the status of the " +"report, see Pending Tasks below." +msgstr "" + +#: lms/djangoapps/instructor/views/api.py +msgid "" +"A problem responses report generation task is already in progress. Check the" +" 'Pending Tasks' table for the status of the task. When completed, the " +"report will be available for download in the table below." +msgstr "" + #: lms/djangoapps/instructor/views/api.py msgid "Invoice number '{num}' does not exist." msgstr "" @@ -5898,6 +5922,10 @@ msgstr "" msgid "CourseMode price updated successfully" msgstr "" +#: lms/djangoapps/instructor/views/instructor_dashboard.py +msgid "No end date set" +msgstr "" + #: lms/djangoapps/instructor/views/instructor_dashboard.py msgid "Enrollment data is now available in {dashboard_link}." msgstr "选课数据现已可通过{dashboard_link}查看。" @@ -5991,18 +6019,6 @@ msgstr "外部邮箱" msgid "Grades for assignment \"{name}\"" msgstr " 作业“{name}”的成绩" -#: lms/djangoapps/instructor/views/legacy.py -msgid "Found {num} records to dump." -msgstr "共有 {num} 条记录需要转储" - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Couldn't find module with that urlname." -msgstr "无法找到该地址对应的模块" - -#: lms/djangoapps/instructor/views/legacy.py -msgid "Student state for problem {problem}" -msgstr "{problem}问答的学生状态" - #: lms/djangoapps/instructor/views/legacy.py msgid "Grades from {course_id}" msgstr "课程“{course_id}”的成绩" @@ -6166,6 +6182,12 @@ msgstr "已删除" msgid "emailed" msgstr "已邮件通知" +#. Translators: This is a past-tense verb that is inserted into task progress +#. messages as {action}. +#: lms/djangoapps/instructor_task/tasks.py +msgid "generated" +msgstr "" + #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -6178,12 +6200,6 @@ msgstr "已评价" msgid "problem distribution graded" msgstr "" -#. Translators: This is a past-tense verb that is inserted into task progress -#. messages as {action}. -#: lms/djangoapps/instructor_task/tasks.py -msgid "generated" -msgstr "" - #. Translators: This is a past-tense verb that is inserted into task progress #. messages as {action}. #: lms/djangoapps/instructor_task/tasks.py @@ -7611,6 +7627,7 @@ msgid "Optional language the team uses as ISO 639-1 code." msgstr "" #: lms/djangoapps/teams/plugins.py +#: lms/djangoapps/teams/templates/teams/teams.html msgid "Teams" msgstr "" @@ -7623,11 +7640,11 @@ msgid "course_id must be provided" msgstr "" #: lms/djangoapps/teams/views.py -msgid "The supplied topic id {topic_id} is not valid" +msgid "text_search and order_by cannot be provided together" msgstr "" #: lms/djangoapps/teams/views.py -msgid "text_search is not yet supported." +msgid "The supplied topic id {topic_id} is not valid" msgstr "" #. Translators: 'ordering' is a string describing a way @@ -9347,6 +9364,10 @@ msgstr "帮助" msgid "Sign Out" msgstr "退出" +#: common/lib/capa/capa/templates/codeinput.html +msgid "{programming_language} editor" +msgstr "" + #: common/templates/license.html msgid "All Rights Reserved" msgstr "保留所有权利" @@ -11849,8 +11870,10 @@ msgid "Section:" msgstr "章:" #: lms/templates/courseware/legacy_instructor_dashboard.html -msgid "Problem urlname:" -msgstr "问题的URL地址:" +msgid "" +"To download a CSV listing student responses to a given problem, visit the " +"Data Download section of the Instructor Dashboard." +msgstr "" #: lms/templates/courseware/legacy_instructor_dashboard.html msgid "" @@ -13640,6 +13663,20 @@ msgstr "" msgid "Generate Proctored Exam Results Report" msgstr "" +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "" +"To generate a CSV file that lists all student answers to a given problem, " +"enter the location of the problem (from its Staff Debug Info)." +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Problem location: " +msgstr "" + +#: lms/templates/instructor/instructor_dashboard_2/data_download.html +msgid "Download a CSV of problem responses" +msgstr "" + #: lms/templates/instructor/instructor_dashboard_2/data_download.html msgid "" "For smaller courses, click to list profile information for enrolled students" @@ -15942,41 +15979,50 @@ msgid "This module is not enabled." msgstr "" #: cms/templates/certificates.html -msgid "" -"Upon successful completion of your course, learners receive a certificate to" -" acknowledge their accomplishment. If you are a course team member with the " -"Admin role in Studio, you can configure your course certificate." +msgid "Working with Certificates" msgstr "" #: cms/templates/certificates.html msgid "" -"Click {em_start}Add your first certificate{em_end} to add a certificate " -"configuration. Upload the organization logo to be used on the certificate, " -"and specify at least one signatory. You can include up to four signatories " -"for a certificate. You can also upload a signature image file for each " -"signatory. {em_start}Note:{em_end} Signature images are used only for " -"verified certificates. Optionally, specify a different course title to use " -"on your course certificate. You might want to use a different title if, for " -"example, the official course name is too long to display well on a " -"certificate." +"Specify a course title to use on the certificate if the course's official " +"title is too long to be displayed well." msgstr "" #: cms/templates/certificates.html msgid "" -"Select a course mode and click {em_start}Preview Certificate{em_end} to " -"preview the certificate that a learner in the selected enrollment track " -"would receive. When the certificate is ready for issuing, click " -"{em_start}Activate.{em_end} To stop issuing an active certificate, click " -"{em_start}Deactivate{em_end}." +"For verified certificates, specify between one and four signatories and " +"upload the associated images." msgstr "" #: cms/templates/certificates.html msgid "" -" To edit the certificate configuration, hover over the top right corner of " -"the form and click {em_start}Edit{em_end}. To delete a certificate, hover " -"over the top right corner of the form and click the delete icon. In general," -" do not delete certificates after a course has started, because some " -"certificates might already have been issued to learners." +"To edit or delete a certificate before it is activated, hover over the top " +"right corner of the form and select {em_start}Edit{em_end} or the delete " +"icon." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To view a sample certificate, choose a course mode and select " +"{em_start}Preview Certificate{em_end}." +msgstr "" + +#: cms/templates/certificates.html +msgid "Issuing Certificates to Learners" +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"To begin issuing certificates, a course team member with the Admin role " +"selects {em_start}Activate{em_end}. Course team members without the Admin " +"role cannot edit or delete an activated certificate." +msgstr "" + +#: cms/templates/certificates.html +msgid "" +"{em_start}Do not{em_end} delete certificates after a course has started; " +"learners who have already earned certificates will no longer be able to " +"access them." msgstr "" #: cms/templates/certificates.html diff --git a/conf/locale/zh_CN/LC_MESSAGES/djangojs.mo b/conf/locale/zh_CN/LC_MESSAGES/djangojs.mo index 858d4c7b1620f01662a2f200f998ad48c6aff630..6e2f01139dbbefcd605bc7778f3ff36cd9fae66f 100644 GIT binary patch delta 23418 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, 2015 # Changyue Wang , 2015 # CharlotteDing , 2015 # jsgang , 2014-2015 @@ -127,8 +128,8 @@ msgid "" msgstr "" "Project-Id-Version: edx-platform\n" "Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n" -"POT-Creation-Date: 2015-08-21 14:17+0000\n" -"PO-Revision-Date: 2015-08-21 12:22+0000\n" +"POT-Creation-Date: 2015-09-04 14:06+0000\n" +"PO-Revision-Date: 2015-09-04 14:08+0000\n" "Last-Translator: Sarina Canelake \n" "Language-Team: Chinese (China) (http://www.transifex.com/open-edx/edx-platform/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -174,8 +175,8 @@ msgstr "是的" #: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js #: cms/static/js/views/modals/base_modal.js #: cms/static/js/views/modals/course_outline_modals.js -#: cms/static/js/views/utils/view_utils.js #: common/lib/xmodule/xmodule/js/src/html/edit.js +#: common/static/common/js/components/utils/view_utils.js #: cms/templates/js/add-xblock-component-menu-problem.underscore #: cms/templates/js/add-xblock-component-menu.underscore #: cms/templates/js/certificate-editor.underscore @@ -186,6 +187,11 @@ msgstr "是的" #: cms/templates/js/group-configuration-editor.underscore #: cms/templates/js/section-name-edit.underscore #: cms/templates/js/xblock-string-field-editor.underscore +#: common/static/common/templates/discussion/new-post.underscore +#: common/static/common/templates/discussion/response-comment-edit.underscore +#: common/static/common/templates/discussion/thread-edit.underscore +#: common/static/common/templates/discussion/thread-response-edit.underscore +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore #: lms/templates/instructor/instructor_dashboard_2/cohort-form.underscore msgid "Cancel" msgstr "取消" @@ -195,17 +201,6 @@ msgstr "取消" #: cms/static/js/views/manage_users_and_roles.js #: cms/static/js/views/show_textbook.js #: common/static/js/vendor/ova/catch/js/catch.js -#: cms/templates/js/certificate-details.underscore -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-details.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/course-outline.underscore -#: cms/templates/js/course_grade_policy.underscore -#: cms/templates/js/group-configuration-details.underscore -#: cms/templates/js/group-configuration-editor.underscore -#: cms/templates/js/show-textbook.underscore -#: cms/templates/js/signatory-editor.underscore -#: cms/templates/js/xblock-outline.underscore msgid "Delete" msgstr "删除" @@ -371,6 +366,8 @@ msgstr "您的成绩达不到要求,不能进行下一步骤。" #: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js #: lms/static/coffee/src/staff_grading/staff_grading.js +#: common/static/common/templates/discussion/thread-response.underscore +#: common/static/common/templates/discussion/thread.underscore #: lms/templates/verify_student/incourse_reverify.underscore msgid "Submit" msgstr "提交" @@ -791,18 +788,10 @@ msgstr "文档属性" msgid "Edit HTML" msgstr "编辑 HTML" -#. #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-# #. Translators: this is a message from the raw HTML editor displayed in the #. browser when a user needs to edit HTML #: common/lib/xmodule/xmodule/js/src/html/edit.js #: common/static/js/vendor/ova/catch/js/catch.js -#: cms/templates/js/certificate-details.underscore -#: cms/templates/js/content-group-details.underscore -#: cms/templates/js/course_info_handouts.underscore -#: cms/templates/js/group-configuration-details.underscore -#: cms/templates/js/show-textbook.underscore -#: cms/templates/js/signatory-details.underscore -#: cms/templates/js/xblock-string-field-editor.underscore msgid "Edit" msgstr "编辑" @@ -2107,6 +2096,18 @@ msgstr "在删除这条评论时出错,请再试一遍。" msgid "Are you sure you want to delete this response?" msgstr "你确定要删除这个回复吗" +#: common/static/common/js/components/utils/view_utils.js +msgid "Required field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces in this field." +msgstr "" + +#: common/static/common/js/components/utils/view_utils.js +msgid "Please do not use any spaces or special characters in this field." +msgstr "" + #: common/static/common/js/components/views/paging_header.js msgid "Showing %(first_index)s out of %(num_items)s total" msgstr "" @@ -2264,6 +2265,7 @@ msgstr "发表日期" #: common/static/js/vendor/ova/catch/js/catch.js #: lms/static/js/courseware/credit_progress.js +#: common/static/common/templates/discussion/forum-actions.underscore #: lms/templates/discovery/facet.underscore #: lms/templates/edxnotes/note-item.underscore msgid "More" @@ -2341,20 +2343,34 @@ msgstr "标签:" msgid "An unexpected error occurred. Please try again." msgstr "" +#: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "last activity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/collections/team.js +msgid "open slots" +msgstr "" + #: lms/templates/edxnotes/tab-item.underscore msgid "name" msgstr "名称" -#: lms/djangoapps/teams/static/teams/js/collections/team.js -msgid "open_slots" -msgstr "" - #. Translators: This refers to the number of teams (a count of how many teams #. there are) #: lms/djangoapps/teams/static/teams/js/collections/topic.js msgid "team count" msgstr "" +#: cms/templates/js/certificate-editor.underscore +#: cms/templates/js/content-group-editor.underscore +#: cms/templates/js/group-configuration-editor.underscore +msgid "Create" +msgstr "创建" + +#: lms/djangoapps/teams/static/teams/js/views/edit_team.js +msgid "Update" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/edit_team.js msgid "Team Name (Required) *" msgstr "" @@ -2379,6 +2395,7 @@ msgid "Language" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "" "The language that team members primarily use to communicate with each other." msgstr "" @@ -2389,6 +2406,7 @@ msgid "Country" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/edit_team.js +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore msgid "The country that team members primarily identify with." msgstr "" @@ -2421,20 +2439,46 @@ msgstr "" msgid "You are not currently a member of any team." msgstr "" +#. Translators: "and others" refers to fact that additional members of a team +#. exist that are not displayed. +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "and others" +msgstr "" + +#. Translators: 'date' is a placeholder for a fuzzy, relative timestamp (see: +#. https://github.com/rmm5t/jquery-timeago) +#: lms/djangoapps/teams/static/teams/js/views/team_card.js +msgid "Last Activity %(date)s" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/team_card.js msgid "View %(span_start)s %(team_name)s %(span_end)s" msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js #: lms/djangoapps/teams/static/teams/js/views/team_profile.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "An error occurred. Try again." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "Leave this team?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile.js +msgid "" +"If you leave, you can no longer post in this team's discussions. Your place " +"will be available to another learner." +msgstr "" + +#: lms/templates/verify_student/review_photos_step.underscore +msgid "Confirm" +msgstr "确认" + +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "You already belong to another team." msgstr "" -#: lms/djangoapps/teams/static/teams/js/views/team_join.js +#: lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js msgid "This team is full." msgstr "" @@ -2452,13 +2496,13 @@ msgid "teams" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"See all teams in your course, organized by topic. Join a team to collaborate" -" with other learners who are interested in the same topic as you are." +msgid "Teams" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "Teams" +msgid "" +"See all teams in your course, organized by topic. Join a team to collaborate" +" with other learners who are interested in the same topic as you are." msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js @@ -2466,22 +2510,47 @@ msgid "My Team" msgstr "" #. Translators: sr_start and sr_end surround text meant only for screen -#. readers. The whole string will be shown to users as "Browse teams" if they -#. are using a screenreader, and "Browse" otherwise. +#. readers. +#. The whole string will be shown to users as "Browse teams" if they are using +#. a +#. screenreader, and "Browse" otherwise. #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Browse %(sr_start)s teams %(sr_end)s" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js -msgid "" -"Create a new team if you can't find existing teams to join, or if you would " -"like to learn with friends you know." +msgid "Team Search" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Showing results for \"%(searchString)s\"" msgstr "" #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "Create a New Team" msgstr "" +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"Create a new team if you can't find an existing team to join, or if you " +"would like to learn with friends you know." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Edit Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "" +"If you make significant changes, make sure you notify members of the team " +"before making these changes." +msgstr "" + +#: lms/djangoapps/teams/static/teams/js/views/teams_tab.js +msgid "Search teams" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/teams_tab.js msgid "All Topics" msgstr "" @@ -2503,15 +2572,27 @@ msgid "%(team_count)s Team" msgid_plural "%(team_count)s Teams" msgstr[0] "" +#: lms/djangoapps/teams/static/teams/js/views/topic_card.js +msgid "Topic" +msgstr "" + #: lms/djangoapps/teams/static/teams/js/views/topic_card.js msgid "View Teams in the %(topic_name)s Topic" msgstr "" +#. Translators: this string is shown at the bottom of the teams page +#. to find a team to join or else to create a new one. There are three +#. links that need to be included in the message: +#. 1. Browse teams in other topics +#. 2. search teams +#. 3. create a new team +#. Be careful to start each link with the appropriate start indicator +#. (e.g. {browse_span_start} for #1) and finish it with {span_end}. #: lms/djangoapps/teams/static/teams/js/views/topic_teams.js msgid "" -"Try {browse_span_start}browsing all teams{span_end} or " -"{search_span_start}searching team descriptions{span_end}. If you still can't" -" find a team to join, {create_span_start}create a new team in this " +"{browse_span_start}Browse teams in other topics{span_end} or " +"{search_span_start}search teams{span_end} in this topic. If you still can't " +"find a team to join, {create_span_start}create a new team in this " "topic{span_end}." msgstr "" @@ -3851,10 +3932,6 @@ msgstr "" msgid "Review your info" msgstr "" -#: lms/templates/verify_student/review_photos_step.underscore -msgid "Confirm" -msgstr "确认" - #: lms/static/js/verify_student/views/step_view.js msgid "An error has occurred. Please try reloading the page." msgstr "发生了一个错误。请重新加载这个页面。" @@ -4397,7 +4474,7 @@ msgstr "您的文件已经被删除" msgid "Date Added" msgstr "添加日期" -#: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore +#: cms/static/js/views/assets.js msgid "Type" msgstr "类型" @@ -4952,18 +5029,6 @@ msgid "" "more than <%=limit%> characters." msgstr "机构和知识库编号字段合在一起不能超过 <%=limit%> 个字符" -#: cms/static/js/views/utils/view_utils.js -msgid "Required field." -msgstr "必须填写的字段。" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces in this field." -msgstr "此字段的内容不能包含空格。" - -#: cms/static/js/views/utils/view_utils.js -msgid "Please do not use any spaces or special characters in this field." -msgstr "此字段的内容不能包含空格或特殊字符。" - #: cms/static/js/views/utils/xblock_utils.js msgid "component" msgstr "组件" @@ -5053,11 +5118,526 @@ msgstr "" msgid "Due Date" msgstr "截止日期" +#: cms/templates/js/paging-header.underscore +#: common/static/common/templates/components/paging-footer.underscore +#: common/static/common/templates/discussion/pagination.underscore +msgid "Previous" +msgstr "" + #: cms/templates/js/previous-video-upload-list.underscore +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore #: lms/templates/verify_student/enrollment_confirmation_step.underscore msgid "Status" msgstr "状态" +#: common/static/common/templates/image-modal.underscore +msgid "Large" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom In" +msgstr "" + +#: common/static/common/templates/image-modal.underscore +msgid "Zoom Out" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Page number" +msgstr "" + +#: common/static/common/templates/components/paging-footer.underscore +msgid "Enter the page number you'd like to quickly navigate to." +msgstr "" + +#: common/static/common/templates/components/paging-header.underscore +msgid "Sorted by" +msgstr "" + +#: common/static/common/templates/components/search-field.underscore +msgid "Clear search" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "DISCUSSION HOME:" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +#: lms/templates/commerce/provider.underscore +#: lms/templates/commerce/receipt.underscore +#: lms/templates/discovery/course_card.underscore +msgid "gettext(" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Find discussions" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Focus in on specific topics" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Search for specific posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Sort by date, vote, or comments" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Engage with posts" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Upvote posts and good responses" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Report Forum Misuse" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Follow posts for updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Receive updates" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "Toggle Notifications Setting" +msgstr "" + +#: common/static/common/templates/discussion/discussion-home.underscore +msgid "" +"Check this box to receive an email digest once a day notifying you about " +"new, unread activity from posts you are following." +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Mark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-answer.underscore +msgid "Unmark as Answer" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-close.underscore +msgid "Open" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Endorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-endorse.underscore +msgid "Unendorse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Follow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-follow.underscore +msgid "Unfollow" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Pin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-pin.underscore +msgid "Unpin" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report abuse" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Report" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-report.underscore +msgid "Unreport" +msgstr "" + +#: common/static/common/templates/discussion/forum-action-vote.underscore +msgid "Vote for this post," +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Visible To:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "All Groups" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "" +"Discussion admins, moderators, and TAs can make their posts visible to all " +"students or specify a single cohort." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Title:" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add a clear and descriptive title to encourage participation." +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Enter your question or comment" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "follow this post" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "post anonymously to classmates" +msgstr "" + +#: common/static/common/templates/discussion/new-post.underscore +msgid "Add Post" +msgstr "" + +#: common/static/common/templates/discussion/post-user-display.underscore +msgid "Community TA" +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +#: common/static/common/templates/discussion/thread.underscore +msgid "This thread is closed." +msgstr "" + +#: common/static/common/templates/discussion/profile-thread.underscore +msgid "View discussion" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Editing comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-edit.underscore +msgid "Update comment" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#, python-format +msgid "posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/response-comment-show.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Reported" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Editing post" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Edit post title" +msgstr "" + +#: common/static/common/templates/discussion/thread-edit.underscore +msgid "Update post" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "answered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "unanswered question" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Pinned" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "Following" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Staff" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +msgid "By: Community TA" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#: common/static/common/templates/discussion/thread-response-show.underscore +msgid "fmt" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "" +"%(comments_count)s %(span_sr_open)scomments (%(unread_comments_count)s " +"unread comments)%(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-list-item.underscore +#, python-format +msgid "%(comments_count)s %(span_sr_open)scomments %(span_close)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Editing response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-edit.underscore +msgid "Update response" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "marked as answer %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s by %(user)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response-show.underscore +#, python-format +msgid "endorsed %(time_ago)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "fmts" +msgstr "" + +#: common/static/common/templates/discussion/thread-response.underscore +msgid "Add a comment" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "This post is visible only to %(group_name)s." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "This post is visible to everyone." +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "%(post_type)s posted %(time_ago)s by %(author)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +msgid "Closed" +msgstr "" + +#: common/static/common/templates/discussion/thread-show.underscore +#, python-format +msgid "Related to: %(courseware_title_linked)s" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Post type:" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Question" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "Discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread-type.underscore +msgid "" +"Questions raise issues that need answers. Discussions share ideas and start " +"conversations." +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Add a Response" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Post a response:" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Expand discussion" +msgstr "" + +#: common/static/common/templates/discussion/thread.underscore +msgid "Collapse discussion" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Topic Area:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Discussion topics; current selection is:" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Filter topics" +msgstr "" + +#: common/static/common/templates/discussion/topic.underscore +msgid "Add your post to a relevant topic to help others find it." +msgstr "" + +#: common/static/common/templates/discussion/user-profile.underscore +msgid "Active Threads" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates.underscore +msgid "username or email" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "No results" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Course Key" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download URL" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Grade" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Last Updated" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Download the user's certificate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Not available" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate" +msgstr "" + +#: lms/djangoapps/support/static/support/templates/certificates_results.underscore +msgid "Regenerate the user's certificate" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be created." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Your team could not be updated." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Enter information to describe your team. You cannot change these details " +"after you create the team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Optional Characteristics" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "" +"Help other learners decide whether to join your team by specifying some " +"characteristics for your team. Choose carefully, because fewer people might " +"be interested in joining your team if it seems too restrictive." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Create team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Update team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team creating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/edit-team.underscore +msgid "Cancel team updating." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-actions.underscore +msgid "Are you having trouble finding a team to join?" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile-header-actions.underscore +msgid "Join Team" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "New Post" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team Details" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "You are a member of this team." +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team member profiles" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Team capacity" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "country" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "language" +msgstr "" + +#: lms/djangoapps/teams/static/teams/templates/team-profile.underscore +msgid "Leave Team" +msgstr "" + +#: lms/static/js/fixtures/donation.underscore +#: lms/templates/dashboard/donation.underscore +msgid "Donate" +msgstr "捐助" + #: lms/templates/ccx/schedule.underscore msgid "Expand All" msgstr "" @@ -5098,12 +5678,6 @@ msgstr "" msgid "Subsection" msgstr "" -#: lms/templates/commerce/provider.underscore -#: lms/templates/commerce/receipt.underscore -#: lms/templates/discovery/course_card.underscore -msgid "gettext(" -msgstr "" - #: lms/templates/commerce/provider.underscore #, python-format msgid "%s" @@ -5193,10 +5767,6 @@ msgstr "" msgid "End My Exam" msgstr "" -#: lms/templates/dashboard/donation.underscore -msgid "Donate" -msgstr "捐助" - #: lms/templates/discovery/course_card.underscore msgid "LEARN MORE" msgstr "" @@ -6115,6 +6685,16 @@ msgstr "拖放文件至此处或点击这里来上传视频文件。" msgid "status" msgstr "" +#: cms/templates/js/add-xblock-component-button.underscore +msgid "Add Component:" +msgstr "" + +#: cms/templates/js/add-xblock-component-menu-problem.underscore +#: cms/templates/js/add-xblock-component-menu.underscore +#, python-format +msgid "%(type)s Component Template Menu" +msgstr "" + #: cms/templates/js/add-xblock-component-menu-problem.underscore msgid "Common Problem Types" msgstr "常见问题类型" @@ -6189,6 +6769,11 @@ msgstr "" msgid "Certificate Details" msgstr "" +#: cms/templates/js/certificate-details.underscore +#: cms/templates/js/certificate-editor.underscore +msgid "Course Title" +msgstr "" + #: cms/templates/js/certificate-details.underscore #: cms/templates/js/certificate-editor.underscore msgid "Course Title Override" @@ -6233,19 +6818,13 @@ msgid "" msgstr "" #: cms/templates/js/certificate-editor.underscore -msgid "Add Signatory" +msgid "Add Additional Signatory" msgstr "" #: cms/templates/js/certificate-editor.underscore msgid "(Up to 4 signatories are allowed for a certificate)" msgstr "" -#: cms/templates/js/certificate-editor.underscore -#: cms/templates/js/content-group-editor.underscore -#: cms/templates/js/group-configuration-editor.underscore -msgid "Create" -msgstr "创建" - #: cms/templates/js/certificate-web-preview.underscore msgid "Choose mode" msgstr "" @@ -6670,10 +7249,6 @@ msgstr "您尚未向该课程添加任何课本。" msgid "Add your first textbook" msgstr "添加第一本课本" -#: cms/templates/js/paging-header.underscore -msgid "Previous" -msgstr "" - #: cms/templates/js/previous-video-upload-list.underscore msgid "Previous Uploads" msgstr "过去上传的文件" From 0adea67662d4f1ef68d4551d1786fa337e271699 Mon Sep 17 00:00:00 2001 From: Zia Fazal Date: Mon, 7 Sep 2015 12:23:45 +0500 Subject: [PATCH 95/98] hide shopping cart menu Hide shopping cart menu only if request is coming from a micro site and requested page is from courseware. --- .../shoppingcart/tests/test_views.py | 29 +++++++++++++++++-- lms/templates/navigation.html | 2 +- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/shoppingcart/tests/test_views.py b/lms/djangoapps/shoppingcart/tests/test_views.py index 75793197fd..76b0b04e7b 100644 --- a/lms/djangoapps/shoppingcart/tests/test_views.py +++ b/lms/djangoapps/shoppingcart/tests/test_views.py @@ -1375,9 +1375,34 @@ class ShoppingCartViewsTests(SharedModuleStoreTestCase, XssTestMixin): self.assertEqual(resp.status_code, 200) self.assertIn(' - % if should_display_shopping_cart_func() and not microsite.is_request_in_microsite(): # see shoppingcart.context_processor.user_has_cart_context_processor + % if should_display_shopping_cart_func() and not (course and microsite.is_request_in_microsite()): # see shoppingcart.context_processor.user_has_cart_context_processor